s屬性在styles.xml中引用樣式xf條目。 xf樣式依次引用數字格式掩碼。要標識包含日期的單元格,需要執行樣式xf - > numberformat查找,然後確定該numberformat掩碼是否是日期/時間numberformat掩碼(而不是例如百分比或會計號碼格式掩碼)。
的style.xml文件有相同的元素:
<xf numFmtId="14" ... applyNumberFormat="1" />
<xf numFmtId="1" ... applyNumberFormat="1" />
這些都是XF的條目,這反過來給你一個numFmtId引用的數字格式掩碼。
你應該找到附近style.xml上方某處numFmts部分,如樣式表元素的一部分
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<numFmts count="3">
<numFmt numFmtId="164" formatCode="[$-414]mmmm\ yyyy;@" />
<numFmt numFmtId="165" formatCode="0.000" />
<numFmt numFmtId="166" formatCode="#,##0.000" />
</numFmts>
數字格式ID可以在這裏,也可以是一個內置格式。小於164的數字格式代碼(numFmtId)是「內置的」。
,我有這份名單是不完整的:
0 = 'General';
1 = '0';
2 = '0.00';
3 = '#,##0';
4 = '#,##0.00';
9 = '0%';
10 = '0.00%';
11 = '0.00E+00';
12 = '# ?/?';
13 = '# ??/??';
14 = 'mm-dd-yy';
15 = 'd-mmm-yy';
16 = 'd-mmm';
17 = 'mmm-yy';
18 = 'h:mm AM/PM';
19 = 'h:mm:ss AM/PM';
20 = 'h:mm';
21 = 'h:mm:ss';
22 = 'm/d/yy h:mm';
37 = '#,##0 ;(#,##0)';
38 = '#,##0 ;[Red](#,##0)';
39 = '#,##0.00;(#,##0.00)';
40 = '#,##0.00;[Red](#,##0.00)';
44 = '_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)';
45 = 'mm:ss';
46 = '[h]:mm:ss';
47 = 'mmss.0';
48 = '##0.0E+0';
49 = '@';
27 = '[$-404]e/m/d';
30 = 'm/d/yy';
36 = '[$-404]e/m/d';
50 = '[$-404]e/m/d';
57 = '[$-404]e/m/d';
59 = 't0';
60 = 't0.00';
61 = 't#,##0';
62 = 't#,##0.00';
67 = 't0%';
68 = 't0.00%';
69 = 't# ?/?';
70 = 't# ??/??';
缺失值主要涉及東亞的變體形式。
謝謝!非常詳細,正是我需要的。你從哪裏得到了不完整的內置`numFmtId`列表?規範中的完整列表是否在某處?別的地方? – 2011-01-19 01:39:42
內置數字格式的完整列表可以在Ecma Office Open XML文件格式標準文檔(http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm)的第4部分中找到,以供OpenXML部分3.8.30和3.8。31(第2127至2143頁) – 2011-01-19 08:42:24