15

XLSXファイル(Excel 2007)のワークシートのXMLでは、「s」と等しい「t」属性を持つセルタグは文字列タイプです。c内の値タグは、sharedStringsドキュメントを介して検索および変換する必要があります。ただし、一部のセルにはs = "237"があり、t属性はまったくありません。値タグには、sharedStringsドキュメントに関連しない39448のような整数があります。Excelに表示される値は、2008年1月1日の日付です。

XLSXのacタグでs属性は何を意味しますか?

不明な値

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

共有文字列値

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

2 に答える 2

10

s属性はスタイルを参照します。「237」は、styles.xmlファイルで定義されたスタイルです。

<v>39448</v>

...おそらくdouble形式の日付です。また、スタイル237は、Excelに39448を日付形式で表示するように指示します。

これがどのように機能するかの例をここで見ることができます:http://blogs.msdn.com/b/brian_jones/archive/2007/05/29/simple-spreadsheetml-file-part-3-formatting.aspx

于 2010-07-14T18:43:40.693 に答える
4

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」をキーとして<numFmtId>を見つける必要があります。

この値は、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. <c>要素のS(= style)属性を見つけます
  2. xlsxファイルのstyles.xmlファイルで<xf>要素のnumFmtId属性を見つけます。
  3. キーとしてnumFmtIdを持つ<numFmt>のformatCode属性を見つけます
  4. 形式が日付形式か数値形式かを確認する

それが他の人を助けることができることを願っています。

于 2017-07-21T12:33:57.240 に答える