Open XML SDK 備忘録

おもにExcelファイル (.xlsx) を扱います。

P-SPACE
就学奨励費システム

マイナンバー対応 特別支援教育 就学奨励費 支給業務支援システム

詳細...

P-SPACE
就学奨励費ソフトウェア

特別支援教育 就学奨励費 支給業務支援ソフトウェア

詳細...

開発室
(備忘録そのほか)

システム開発にまつわる(かもしれない)調査・実験結果など

詳細...

いまさらOpen XML SDKでExcel?

Open XML SDK for Office はOffice Open XML ファイル(拡張子.docxや.xlsxとなっているファイル)を作ったり編集したり...を「比較的」簡単に行うことができるSDKです。マイクロソフト社がGitHubでオープンソースとして公開しています。

ただ、正直にいうと結構(かなり)面倒くさいです。
このSDKを使ってExcelファイルを操作する際には、その内部構造を意識しながら書かなくてはなりません。

数年前まではExcel (*.xlsx)ファイルを編集するならばほぼこれ一択でしたが、最近ではもっと簡単にExcelファイルを扱うことのできるライブラリがいろいろと存在します。

ちょっとしたExcelファイルを作るならこれら後発のライブラリを使うほうが断然楽です。C#やVisualBasicを使ってExcelファイルを扱うならば、NPOIClosedXMLなどオープンソースライブラリをまず試されることをお奨めします。Open XML SDKを使う場合に比べて、コードの量がうんと少なく済むはずです。

それでもこれらの後発ライブラリではうまくいかない場合もあります。

  • たとえばあるライブラリを用いて作成したExcelファイルを、Microsoft Excelで開いてそのまま閉じると「保存しますか?」というダイアログが表示されることがあります。
  • たとえばあるライブラリを用いて既存のシートを編集すると、まったく触っていない別のシートのセルの文字の配置が(いつの間にか)変更されていることがあります。
  • たとえばあるライブラリを用いて既存のExcelファイルを開いて、編集することなくそのまま閉じると、ルビ(ふりがな)がルビを振られていた文字の後ろに(通常の文字として)追加されてしまいます。

こういったときにOpen XML SDKを使うと「なんとか」することができたりします。

...ややこじつけましたが、そういうことでいまさらですが(意味があると信じて) Open XML SDKを用いたコードをすこしずつ残していきたいと思います。