我正在試圖使用POI庫從Excel表格中讀取精確的字符串值。問題在於,要求用戶將單元格類型明確設置爲文本是不可接受的,因此Excel會自動將數字輸入轉換爲數字值。POI從數字excel單元中獲取原始值
當我triing來獲取值回爲一個字符串,發生以下問題:
我triing使用
Cell.getStringValue()
功能。它引發一個異常,因爲我的字段被隱式設置爲數字類型字段。我正在檢查字段類型,如果我注意到這是一個數字字段,我將它轉換爲一個字符串或者
Double.toString
或Cell.toString()
,我的字段使用小數轉換,偶數如果它是一個整數值。 例如,我在字段中寫入數字'1'。它會自動轉換爲1數字值。當我試圖找回字符串值時,我得到「1.0」字符串值,這是有問題的。
有沒有辦法在這種情況下取回原始字符串?我可以提出的唯一解決辦法是禁止在用戶輸入中使用小數。
的確很討厭。如果用戶可以看到excel的修改,這不會成爲問題,但是由於excel將顯示的值修剪回'1',這很糟糕。也許將修剪編程爲「excel-like」可能會奏效,但現在需要付出很多努力。 – Robert
啊,如果你只是想像excel那樣格式化單元格,會看到[getCellStyle](https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html#getCellStyle())和[DataFormatter](https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html) –
嗯,這是一個可接受的解決方法:)修剪也很簡單,我不是真的很熟悉Java實用程序庫,所以它沒有立即出現在我的腦海裏。 你會用這個解決方法更新你的答案嗎? – Robert