2010-08-19 18 views
0

我寫了一個Java方法,它使用POI HSSF API將Excel文件轉換爲我的數據結構。爲什麼單元格值作爲空字符串返回,即使它有內容?

代碼工作得很好。但現在突然出現問題。我懷疑這可能是因爲我們最近在所有客戶端計算機上安裝了Office 2007,之前我們使用的是Office 2003.

我遇到的問題是:在XLS文件內部,有一列單元格填充了serial-用戶的號碼。當Java應用程序獲取單元時,它具有單元類型STRING。當我詢問單元格的字符串值時,我得到一個空字符串。

該文件最初是由應用程序創建的,然後用戶填充數據並將其載入應用程序。所以我不認爲文件格式是錯誤的,因爲它是由相同版本的API創建的。

可能是什麼問題?

編輯:

澄清:我們升級Office安裝於2007年,但應用程序仍然使用HSSF和XLS格式。只有用戶使用Office 2007打開和編輯這些文件。這是一個問題嗎?

+0

這是列中的所有細胞或只是一個特別?我們曾經遇到POI從活動單元中讀取數值的問題,如果用戶正在編輯表單,這往往會發生。 – 2010-08-19 11:46:57

+0

它是該列中的所有單元格。奇怪的是,還有另一列填充了數字值,並且它讀取得很好...... – Malki 2010-08-19 11:59:34

+0

使用POI-XSSF for Excel 2007 OOXML(.xlsx)文件格式:) – Paul 2010-08-19 12:02:15

回答

1

您是否檢查過Excel是否在用戶輸入值時自動將單元格類型切換爲NUMERIC?
Excel有這個煩人的功能,以「智能地猜測」用戶輸入什麼樣的價值,然後經常導致POI問題。

+0

如何檢查Excel是否自動切換細胞類型? – Malki 2010-08-19 12:03:51

+0

http://www.j-walk.com/ss/excel/tips/tip62.htm – 2010-08-19 12:24:34

0

HSSF是POI Project的Excel '97(-2007)文件格式的純Java實現。 XSSF是OOXML(.xlsx)文件格式的POI項目的純粹Java實現Excel 2007

閱讀furthur http://poi.apache.org/spreadsheet/index.html

+0

以上答案對你有用:) – Paul 2010-08-19 11:51:23

相關問題