普段業務でよく使われるExcelファイルですが、ファイル自体を解凍できるということはあまり知られていないかもしれません。
Microsoft Office(Office 2007以降)のファイルは、XMLで記述された規格を標準ファイル形式として採用されています。
※Office Open XML
やり方は簡単。
拡張子の「xlsx」を「zip」に変更して解凍するだけです。
- 以下のようなExcelファイルを作成
- 拡張子を「xlsx」⇒「zip」に変更
- 解凍します
xlフォルダ内の「sharedStrings.xml」には入力された文字列がありました。
mediaフォルダには貼り付けた画像もあります。
(画像が個別に取得できるので活用シーンはあるかも?)
Open XMLについて軽く触れますと、以下の内容が説明されています。
Open XML ファイルは、パッケージ化および圧縮され ZIP アーカイブに格納されます。
ZIP ビューアーを使用して、Open XML ファイルの構造を表示できます。
Open XML ドキュメントは、複数のドキュメント パーツで構築されています。
ドキュメント パーツ間のリレーションシップは、それぞれのパーツに格納されています。
ZIP 形式は、各パーツへのランダム アクセスをサポートしています。
たとえば、アプリケーションは、プレゼンテーション間で、スライドのコンテンツを解析することなくスライドを移動できます。
同様に、アプリケーションは、ワープロ ドキュメントのすべてのコメントを、そのコンテンツを解析することなく削除できます。
Open XML パッケージのドキュメント パーツは、XML マークアップとして作成されます。
XML は、構造化されたプレーンテキストなので、テキスト リーダーを使用してドキュメント パーツのコンテンツを表示したり、XPath などのプロセスを使用してコンテンツを解析したりできます。
構造的には、Open XML ドキュメントは Open Packaging Conventions (OPC) パッケージです。
前述のとおり、パッケージはドキュメント パーツの集合で構成されています。
各パーツには、セグメントのシーケンスまたは "/word/theme/theme1.xml" などのパス名で構成されるパーツ名があります。
パッケージには[Content_Types].xml パーツが含まれています。
これにより、パッケージ内のすべてのドキュメント パーツのコンテンツ タイプを決定できます。
ソース パッケージまたはパーツの明示的なリレーションシップのセットは、最後に .rels という拡張子が付くリレーションシップ パーツに含まれています。
こちらですが、ExcelだけでなくWordやPowerPointでも、同様に解凍してXMLを確認することができます。
ファイルを構成するXMLを見るケースはあまり多くないかもしれませんが、開発要件の中にはExcelファイルを作成するような処理が必要になる場合があります。
不具合などで作成したファイルが壊れてしまう場合、作られたファイルのどこがよくないのか調査するときなどに使えるのではないでしょうか。
以上、ちょっとした小ネタでした。