gpt4 book ai didi

java - OOXML 电子表格中的默认单元格类型

转载 作者:行者123 更新时间:2023-12-01 23:27:12 25 4
gpt4 key购买 nike

我收到了奇怪的 XLSX 文件 (OOXML)。以下是其工作表 (xl/worksheets/sheet1.xml) 的一些代码片段:

    <row r="2" spans="1:6" x14ac:dyDescent="0.25">
<c r="A2" s="11" t="s">
<v>33</v>
</c>
<c r="B2" s="10">
<v>444</v>
</c>
<c r="C2" s="5"/>
<c r="D2" s="12">
<v>1</v>
</c>
<c r="E2" s="5"/>
<c r="F2" s="3"/>
</row>

注意第二个单元格 - 它没有“t”属性。根据ECMA-376 (附录 A.2,第 3918 页,第 2301 行),单元格的默认类型(如果未提及)是“n”(数字):

<xsd:attribute name="t" type="ST_CellType" use="optional" default="n"/>

如果我尝试调用 getCellType()Apache POI ,我得到NUMERIC。没关系。

但是当我使用 LibreOffice 打开文件时,我看到单元格具有“文本”类型: enter image description here对此有什么解释吗?

PS。该文件由 MS Excel 生成

最佳答案

我解决了这个问题(感谢@AxelRichter 评论)。

最主要的是字符串可以存储在NUMERIC类型的单元格中。为此,使用特殊的 @ 格式。

这里是代码(Apache POI):

String fs = c.getCellStyle().getDataFormatString();
if (BuiltinFormats.getBuiltinFormat(fs)==49){
String value = ((XSSFCell)c).getRawValue();
//do something
}

Link to BuiltinFormats

关于java - OOXML 电子表格中的默认单元格类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58303313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com