如何将Excel单元格中的数字字符串作为字符串(而非数字)读取?

166
  1. 我有一个Excel文件,其中包含以下内容:

    • A1:SomeString

    • A2:2

    所有字段都设置为字符串格式。

  2. 当我在Java中使用POI读取文件时,它告诉我A2是数字单元格格式。

  3. 问题在于,A2中的值可以是2或2.0(我希望能够区分它们),因此我不能仅使用.toString()

我该怎么做才能将其作为字符串读取?

24个回答

-1

您是否以任何方式控制Excel工作表?用户是否有为您提供输入的模板?如果是这样,您可以编写代码来格式化输入单元格。


-2

cell.setCellType(Cell.CELL_TYPE_STRING); 对我来说很正常


1
然而,它在JavaDocs中明确列出,不是正确的方法(https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html#setCellType%28int%29)! - Gagravarr

-2

我们曾经遇到过同样的问题,强制用户在输入值之前将单元格格式设置为“文本”。这样Excel就可以正确地将数字存储为文本。

如果之后更改了格式,Excel只会更改值的显示方式,而不会更改值的存储方式,除非重新输入值(例如,在单元格中按回车键)。

Excel是否正确将值存储为文本是通过Excel在单元格左上角显示的小绿色三角形来指示的,如果它认为单元格包含数字但格式为文本,则会显示该三角形。


-4
将其转换为整数,然后执行 .toString()。虽然不太美观,但它能正常工作。

问题是,如果A2中有2.0,我需要得到字符串"2.0",如果是2,则需要字符串"2"。 - joycollector

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接