Skip to content

Instantly share code, notes, and snippets.

@shibukawa
Created January 14, 2014 21:13
Show Gist options
  • Save shibukawa/8425844 to your computer and use it in GitHub Desktop.
Save shibukawa/8425844 to your computer and use it in GitHub Desktop.
excelのxlsxの中のXMLのメモ

excelのxlsxの中のXMLのメモ

基本構成

拡張子を.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"という属性が付与される。

@shibukawa
Copy link
Author

sortStateは一個だけかなぁ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment