|
|
1
292
我也有同样的问题。我做的
|
|
|
2
86
我不认为你问这个问题时我们把这节课放回去了,但今天有一个简单的答案。 你要做的是使用 DataFormatter class . 你给它传递一个单元格,它会尽力返回一个字符串,其中包含Excel将为该单元格显示的内容。如果你给它传递一个字符串单元格,你会得到字符串。如果传递给它一个应用了格式规则的数值单元格,它将基于这些数值格式化数字,并返回字符串。 对于您的情况,我假设数值单元格应用了整数格式规则。如果要求DataFormatter格式化这些单元格,它将返回一个包含整数字符串的字符串。
另外,注意很多人建议这样做
|
|
|
3
43
下面的代码适用于任何类型的手机。
|
|
|
4
24
当不希望修改单元格类型时,我建议使用以下方法:
NumberTotexConverter可以使用Excel规则将双精度值正确转换为文本,而不会造成精度损失。 |
|
|
5
15
正如POI的javadocs中所提到的( https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html#setCellType%28int%29 不要使用:
但使用:
|
|
|
6
5
是的,这个很好用 推荐:
旧的:
即使在从中检索值时遇到问题
|
|
|
7
4
尝试:
应该正确格式化数字。 |
|
|
8
1
只要在用户键入数字之前单元格是文本格式,POI将允许您获取字符串形式的值。一个关键点是,如果单元格左上角有一个格式化为文本的小绿色三角形,则可以将其值作为字符串检索(每当某个看似数字的内容被强制转换为文本格式时,就会出现绿色三角形)。如果您有包含数字的文本格式单元格,但是POI不允许您将这些值作为字符串提取,那么您可以对电子表格数据执行一些操作,以允许这样做:
最后一件事是,如果使用POI从Excel2007电子表格中获取数据,则可以使用cell类“getrawValue()”方法。这与格式无关。它只返回包含原始数据的字符串。 |
|
|
9
0
当我们使用ApachePOI库读取MS Excel的数值单元值时,它将其读取为数值。但有时我们希望它读作字符串(例如电话号码等)。我就是这样做的:
|
|
|
10
0
我在一个有数千个数字的数据集上也遇到了类似的问题,我认为我找到了一种简单的解决方法。我需要在数字前插入撇号,这样单独的db导入总是将数字视为文本。在此之前,数字8将作为8.0导入。 解决方案:
嘿,把所有的数字都预存下来,但是作为文本存储。 |
|
|
11
0
如果单元格类型为数字,则GetStringCellValue返回NumberFormatException。如果不想将单元格类型更改为字符串,可以这样做。
|
|
|
12
0
这些答案中的许多都引用了旧的POI文档和类。在最新的POI 3.16中, Cell with the int types 已弃用
相反地 CellType enum 可以使用。
只要确保使用POI依赖项以及POI OOXML依赖项将POM更新到新的3.16版本,否则您将继续获得异常。此版本的一个优点是,您可以在创建单元时指定单元类型,从而消除前面答案中描述的所有额外步骤:
|
|
|
13
0
我更愿意走威尔氏回答的路线,或者是维纳亚克·多纳拉,不幸的是,他们对我的表现影响很大。 我去了 哈奇 隐式铸造的解决方案:
我不建议你这样做,因为我的情况下,它是工作的,因为系统工作的性质,我有一个可靠的文件源。 脚注: 数字柱 是从读取处理的文件头中生成的int。 |
|
|
14
0
我试过了,它对我有用 |
|
|
15
-1
我们遇到了同样的问题,迫使用户将单元格格式设置为“文本” 之前 输入值。这样Excel就可以正确地将偶数存储为文本。 如果随后更改格式,Excel只更改值的显示方式,但不会更改值的存储方式,除非再次输入值(例如,在单元格中按回车键)。 Excel是否正确地将值存储为文本?如果Excel认为单元格中包含数字,但其格式为文本,则该值将显示在单元格左上角的绿色小三角形中。 |
|
|
16
-1
是否仍在中控制Excel工作表?是否有用户提供输入的模板?如果是这样,您可以让代码为输入单元格设置格式。 |
|
|
17
-1
|
|
|
18
-1
cell.setcelltype(cell.cell_type_string);对我来说工作正常 |
|
|
19
-1
投射到int然后执行
|
|
|
20
-1
这对我很好。
|