“s”是什么意思? XLSX 中单元格标记中的属性表示

发布于 2024-09-07 22:26:32 字数 474 浏览 6 评论 0原文

在 XLSX 文件 (Excel 2007) 工作表的 XML 中,“t”属性等于“s”的单元格标记是字符串类型。 c 内的值标签需要通过sharedStrings 文档查找并转换。但是,有些单元格具有 s="237" 并且根本没有 t 属性。 value标签有一个像39448这样的整数,它与sharedStrings文档无关。 Excel 中显示的值是日期 1/1/2008。

XLSX 中 ac 标签中的 s 属性代表什么?

未知值

<c r="B47" s="237">
    <v>39448</v>
</c>

共享字符串值

<c r="C47" t="s">
    <v>7</v>
</c>

In the XML of a worksheet in an XLSX file (Excel 2007) cell tags that have a "t" attribute equal to "s" are string types. The value tag inside the c needs to be looked up and converted via the sharedStrings document. But, some cells have s="237" and no t attribute at all. The value tag has an integer like 39448 which does not relate to the sharedStrings document. The value as it appears in Excel is a date 1/1/2008.

What does the s attribute signify in a c tag in XLSX?

Unknown value

<c r="B47" s="237">
    <v>39448</v>
</c>

Shared String value

<c r="C47" t="s">
    <v>7</v>
</c>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

话少心凉 2024-09-14 22:26:32

s 属性指的是一种样式。 “237”是在 styles.xml 文件中定义的样式。

39448

...很可能是双精度格式的日期。样式 237 告诉 Excel 以日期格式显示 39448

您可以在此处查看其工作原理的示例: 链接

The s attribute refers to a style. "237" is a style defined in the styles.xml file.

<v>39448</v>

...is most likely a date in double format. And the style 237 tells excel to display 39448 in date format.

You can see an example of how this works here: Link

遥远的绿洲 2024-09-14 22:26:32

s属性指的是等于237,指向xlsx文件中包含的styles.xml文件中父元素中找到的第237个元素。

如果单元格值为日期,则该元素可以类似于以下代码

<xf numFmtId="167" 
    fontId="6" 
    fillId="0" 
    borderId="6" 
    xfId="3" 
    applyNumberFormat="1" 
    applyFont="1" 
    applyFill="1" 
    applyBorder="1" 
    applyAlignment="1">
        <alignment horizontal="center"/>
</xf>

此时我们看不到该单元格代表日期类型。
要理解这一点,我们必须找到。以“167”为键。

该值可以在 styles.xml 文件的开头找到

<numFmts count="7">
    <numFmt numFmtId="164" formatCode="[$-409]d\-mmm\-yy;@"/>
    <numFmt numFmtId="165" formatCode="0.000"/>
    <numFmt numFmtId="166" formatCode="0.0"/>
    <numFmt numFmtId="167" formatCode="[$-409]d\-mmm\-yyyy;@"/>
    <numFmt numFmtId="168" formatCode="0.0%"/>
    <numFmt numFmtId="169" formatCode="00000"/>
    <numFmt numFmtId="170" formatCode="0.0000"/>
</numFmts>

numFmtId="167" 的行表示单元格的值是使用以下字符串“[$-409]d-mmm-yyyy;@”格式化的日期

在简历中,查找单元格是否包含数字或日期,我们必须

  1. 找到的 S(=style)属性;元素
  2. 查找的 numFmtId 属性; xlsx 文件中 styles.xml 文件中的元素。
  3. 找到的formatCode属性以 numFmtId 作为键
  4. 查看格式是日期格式还是数字格式

我希望可以帮助其他人。

The s attribute refers that is equal to 237, point to the 237th element found in parent element in the styles.xml file contained in the xlsx file.

If the cell value is a date, the element can be similar to the following code

<xf numFmtId="167" 
    fontId="6" 
    fillId="0" 
    borderId="6" 
    xfId="3" 
    applyNumberFormat="1" 
    applyFont="1" 
    applyFill="1" 
    applyBorder="1" 
    applyAlignment="1">
        <alignment horizontal="center"/>
</xf>

At this point we don't see that this cell represent a date type.
To understand that, we must find the <numFmtId> with "167" as key.

This value can be found at begin of styles.xml file

<numFmts count="7">
    <numFmt numFmtId="164" formatCode="[$-409]d\-mmm\-yy;@"/>
    <numFmt numFmtId="165" formatCode="0.000"/>
    <numFmt numFmtId="166" formatCode="0.0"/>
    <numFmt numFmtId="167" formatCode="[$-409]d\-mmm\-yyyy;@"/>
    <numFmt numFmtId="168" formatCode="0.0%"/>
    <numFmt numFmtId="169" formatCode="00000"/>
    <numFmt numFmtId="170" formatCode="0.0000"/>
</numFmts>

The line with numFmtId="167" indicate that the cell's value is a date formatted using following string "[$-409]d-mmm-yyyy;@"

In resume, to find if a cell contains a number or date we must

  1. find the S (=style) attribute of <c> element
  2. find the numFmtId attribute of the <xf> element in styles.xml file in xlsx file.
  3. find the formatCode attribute of <numFmt> that has numFmtId as key
  4. see if format is a date format or a number format

I hope that can help others.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文