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

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

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

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

大きい図はこちら。

上図は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 」を使うととても便利です。

Open XML SDK 2.5 for Microsoft Office をダウンロードする際に、「OpenXMLSDKToolV25.msi」にチェックを入れておくとセットアッププログラムを入手できます。

Productivity ToolでExcelファイルを開くとその中身を表示してくれます。わざわざ.zipにして解凍する必要はありません。

またSDKを使って、開いたファイルを作る際のコードを見せてくれたり、2つのファイルを比較してその差を見せてくれたりします。

Open XML SDK Productivity Tool for Microsoft Office