拡張子を.zipにして展開するとフォルダができる。
-
workbook.xml: ワークシート一覧。
workbook/sheets/sheet[]みたいになっている。sheetには各タグの名前(XMLエンコード済み)、表示非表示、r:id(rId20みたいな識別子)、sheetId(数値)がある。sheetIdとr:idの数値は違う。この辺りはデータによるかも。
-
_rels/workbook.xml.rels
Relationships/Relationship[]みたいになっている。Relationshipは、r:idとファイル名の対応表。
-
worksheets/sheet%d.xml
ワークシートの実体。worksheetがルートのノードで、sheetViews, sheetFormatPr, cols, sheetData, mergeCell、autoFilterなどがある。ない場合もある。printOptions, pageMargins, pageSetupなどの印刷関係もここかな?headerFooter, conditionalFormattingなどもこれの子供。
sheetDataは、row[]/c[]となっているcが各セル。cにはv(計算済みの値)、f(数式)あたりが入っているのかな。
autoFilterにはfilterColumn、sortStateがそれぞれ複数入る。autoFilter, sortStateはref(A1:I245みたいな)属性がある。filterColumnにはcolId(0オリジンの列番号)があり、filters/filter[]となっている。ブランクを許容する場合はfiltersにblank="1"という属性が追加される。filterタグにはvalという名前で許容する値が格納される。すべての値のチェックを入れると、filterColumnタグ自体が出力されなくなるっぽい。sortStateにはsortConditionでソートのキーとなるれつのタグが複数格納される。列情報はrel属性。降順の場合はdescending="1"という属性が付与される。
sortStateは一個だけかなぁ。