3 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
我有同樣的問題。我cell.setCellType(Cell.CELL_TYPE_STRING);
在讀取字符串值之前做了此操作,無論用戶如何格式化單元格,它都能解決問題。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)您提出問題時(shí),我認(rèn)為我們沒有上過這個(gè)課,但是今天有一個(gè)簡(jiǎn)單的答案。
您要做的是使用DataFormatter類。您為此傳遞一個(gè)單元格,它會(huì)盡力返回一個(gè)字符串,其中包含Excel將對(duì)該單元格顯示的內(nèi)容。如果將字符串單元格傳遞給它,則將字符串取回。如果您向其傳遞一個(gè)應(yīng)用了格式設(shè)置規(guī)則的數(shù)字單元格,它將根據(jù)它們格式化數(shù)字并返回字符串。
對(duì)于您的情況,我假設(shè)數(shù)字單元格已應(yīng)用整數(shù)格式設(shè)置規(guī)則。如果您要求DataFormatter格式化這些單元格,它將返回一個(gè)包含整數(shù)字符串的字符串。
另外,請(qǐng)注意,很多人建議這樣做cell.setCellType(Cell.CELL_TYPE_STRING),但是Apache POI JavaDocs清楚地表明您不應(yīng)該這樣做!進(jìn)行該setCellType調(diào)用將導(dǎo)致格式設(shè)置松散,因?yàn)閖avadocs解釋了將格式轉(zhuǎn)換為剩余格式的唯一方法是使用DataFormatter類。
添加回答
舉報(bào)