Атрибут s, равный 237, указывает на 237-й элемент, найденный в родительском элементе в файле styles.xml, содержащемся в файле xlsx.
Если значением ячейки является дата, элемент может быть похож на следующий код
<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>
На данный момент мы не видим, что эта ячейка представляет тип даты. Чтобы понять это, мы должны найти ‹numFmtId› с ключом «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;@"
В резюме, чтобы узнать, содержит ли ячейка число или дату, мы должны
- найти атрибут S (=style) элемента ‹c›
- найдите атрибут numFmtId элемента ‹xf› в файле styles.xml в файле xlsx.
- найдите атрибут formatCode ‹numFmt›, который имеет numFmtId в качестве ключа
- посмотреть, является ли формат форматом даты или числовым форматом
Я надеюсь, что это может помочь другим.
person
schlebe
schedule
21.07.2017