メインコンテンツへスキップ
  1. 開発室/
  2. OpenXML SDK/

Excelファイルの中をちょっとだけ覗いてみる

openxmlsdk - この記事は連載の一部です
パート 2: この記事

Open XML SDKを使ってExcelファイルを操作するにあたっては、Excelファイルの中身(?)がどうなっているかを「ある程度」把握しておく必要があります。

Open XML Formatに基づいたファイル(.docx, .pptx, .xlsxなど)の実体はZip圧縮されたファイル/フォルダなので、Excelファイルのファイル拡張子.xlsxを.zipにリネームして解凍すると、その中身を確認することができます。

拡張子をzipに変えて解凍

フォルダをたどっていくと、いくつかのXMLファイルがあります。これらのファイルは「パート(Part)」と呼ばれます。“部品"といったの意味なので、「パーツ」といったほうが分かりやすいかと思います。

で、これらパーツとその中身の位置づけを(いろいろと省略して)まとめると、こんな感じになります。

SpreadsheetML

上図はExcel 2007で作成したExcelファイルを解凍してまとめた図です。最新のExcelで作ったファイルだとちょっと違うかも…
  • ワークブックのシート構成についてはxl/workbook.xml 「WorkbookPart」に記述されています。
  • シートのデータに関する部分は、xl/worksheets/sheet1.xml などの「WorksheetPart」ファイルの中に記述されています。
  • セルの書式などはxl/styles.xml に定義されています。
  • セルのデータのうち、文字についてはxl/sharedStrings.xml の中にまとめて記述されています。

以上4点くらいを押さえておけば、SDKを使ってExcelを操作するのに困らないとおもいます。(私もすべて把握しているわけではありません)

SDKを使ってExcelファイルを操作するコードを書くときには「Open XML SDK Productivity Tool for Microsoft Office 」を使うととても便利です。 Productivity ToolでExcelファイルを開くとその中身を表示してくれます。わざわざ.zipにして解凍する必要はありません。 またSDKを使って、開いたファイルを作る際のコードを見せてくれたり、2つのファイルを比較してその差を見せてくれたりします。
ProductivityTool
openxmlsdk - この記事は連載の一部です
パート 2: この記事