为什么单元格值作为空字符串返回,即使它有内容?

时间:2010-08-19 11:42:49

标签: java excel excel-2007 apache-poi poi-hssf

我写了一个Java方法,它使用POI HSSF API将Excel文件转换为我的数据结构。

代码工作正常一段时间。但现在突然出现了问题。我怀疑这可能是因为最近我们在所有客户端计算机上安装了Office 2007,之前我们有Office 2003。

我遇到的问题是:在XLS文件中,我有一列单元格,用户填充了序列号。当Java应用程序获取单元格时,它的单元格类型为STRING。当我要求单元格的字符串值时,我得到一个空字符串。

该文件最初由应用程序创建,然后用户用数据填充它并将其加载回应用程序。所以我认为文件格式不对,因为它是由相同版本的API创建的。

可能是什么问题?

编辑:

澄清:我们将Office安装升级到2007,但应用程序仍使用HSSF和XLS格式。只有用户使用Office 2007打开并编辑文件。这是一个问题吗?

2 个答案:

答案 0 :(得分:1)

当用户输入值时,您是否检查过Excel是否自动将单元格类型切换为NUMERIC? Excel有这个恼人的功能,可以“智能地猜测”用户输入的值,然后经常导致POI出现问题。

答案 1 :(得分:0)

HSSF是POI Project的Excel '97(-2007)文件格式的纯Java实现。 XSSF 是POI项目的 Excel 2007 OOXML(.xlsx)文件格式的纯Java实现。

阅读更多信息 http://poi.apache.org/spreadsheet/index.html

相关问题