読者の皆さんは、いわゆる「Office」業務に必要なソフトウェアとして何を使っていますか? おそらく、「Microsoft Office」を利用している方は多いと思います。そんなMicrosoft Officeですが、「Office 2007」よりファイル形式として「Office Open XML」ファイルフォーマットが使われているのをご存じでしょうか。
本特集では、そのOffice Open XMLファイルフォーマット(以下、Open XML)について解説をしていきます。前編では、Open XMLの成り立ちやOpenOfficeとの比較、標準化の流れ、仕様の概要について紹介します。後編では、Excelを例にJavaでOfficeファイルのデータを操作する方法を紹介します。
いまさら聞けないOfficeファイルフォーマット
Open XMLについて解説する前に、これまでのOfficeファイルについて振り返ってみましょう。
■ Open XMLになるまでのOffice
Officeファイルとは、主にMicrosoft Officeを使って編集や閲覧が可能なWord(ワードプロセッサ、文書)やExcel(表計算)、PowerPoint(プレゼンテーション)などのファイルを意味しています。
このMicrosoft Officeは、これまで数回のバージョンアップが行われてきました。「Office 97」以前のファイル形式はバイナリのみでしたが、「Office 2000」よりXML形式がサポートされました。さらに「Office 2003」より、WordとExcelでカスタム定義スキーマが導入されました。カスタム定義スキーマを使うことにより、ユーザーが任意に定義したXMLスキーマをOfficeファイルへ取り込み、特定のニーズに対応したフォーマットでデータの操作や表示ができるようになりました。
Office 2007では、Open XMLとして本格的にXML形式がサポートされ、従来のファイル形式と区別しやすいように、Excel、Word、PowerPointのファイル拡張子が「xlsx」「docx」「pptx」へ変更されました。
項目 | Office 97 | 2000 | 2003 | 2007 |
---|---|---|---|---|
ファイル形式 | バイナリ | バイナリおよびXML | XML(Office Open XML ファイルフォーマット) | |
カスタムXMLスキーマ | なし | あり | ||
ファイル拡張子 | xls、doc、ppt | xlsx、docx、pptx |
■ Officeフォーマットが標準化されるまでの流れ
2005年、主にOpenOffice(オープンソースのオフィスソフトウェア)で使われるODF(Open Document Format)がOASIS(構造化情報標準促進協会)標準化され、米国マサチューセッツ州で公式文書としてODFとPDFが採用されました。そして、2006年にはODFがISO標準化されるなど、近年は文書ファイル形式のオープン化の動きが活発になってきています。その流れを受け、2005年11月にマイクロソフトからオープンなXML形式のOfficeファイルフォーマットであるOpen XMLが提案されました。
項目 | Open XML | ODF |
---|---|---|
対応ソフトウェア | Microsoft Office 2007、 OpenOffice.org 3.0 ベータなど |
OpenOffice.org、StarSuite Microsoft Office用プラグイン、 Google Docs(2008年7月現在、文書と表計算のみ)など |
ISO標準化の時期 | 2008年4月 | 2006年5月 |
仕様提案元 | マイクロソフト | サン・マイクロシステムズ |
標準化参加組織数 | 12 | 25 |
仕様書(pdf)ページ数 | 6036ページ | 792ページ |
備考 | Microsoft Officeの文書情報を完全に保存 | ソフトウェアやOSの種類によらず、同じように編集・表示・印刷可能 |
Open XMLは標準化組織「Ecma International」の技術委員会「TC45」(※注意1)で標準化作業が行われ、2006年12月に「Ecma標準」として承認されました。
※注意1:参加組織はApple、Barclays Capital、BP、The British Library、Essilor、Intel、Microsoft、NextPage、Novell、Statoil、The United States Library of Congress、東芝
続いてISO標準化の取り組みが行われたものの、2007年9月の投票では否決され、各国より仕様に関する多数のコメントが寄せられました。TC45で仕様の見直しを行い、再投票の結果2008年4月ISO標準として承認されました。この過程について詳しくは下記記事を参照してください。
- MS Officeが2009年にODFやPDFをサポートへ(@ITNews、2008年5月)
- MSオフィス文書フォーマットがISO標準として承認(@ITNews、2008年4月)
- オフィス文書互換性向上目指しイニシアチブ設立、MS (@ITNews、2008年3月)
- MS文書形式をISOが標準勧告見送り (@ITNews、2007年9月)
- ODF、MS Officeと相互運用性を実現できず (@ITNews、2007年8月)
- MSの「Open XML」フォーマット、ISO標準化に一歩近づく (@ITNews、2007年4月)
- ODFとOOXMLが今夏ISOでガチンコ勝負 (@ITNews、2007年1月)
- MS、次世代Officeの文書フォーマットをオープン標準に (@ITNews、2005年11月)
現在、Open XMLは仕様が公開されているほか、ロイヤリティフリーでライセンスが提供されています。
Open XMLを解剖すると……
Open XMLは、ワードプロセッサ/表計算/プレゼンテーションドキュメントを電子ファイルとして保存するための、XMLおよびZIP技術をベースにしたファイルフォーマットです。XML形式を採用したことにより、バックエンドでの自動生成、変換などの自動処理やほかのシステムとの連携などが可能になっています。
■ Open XMLの種類
また、Open XMLファイルはZIPファイルであるため、従来サイズよりもコンパクトになっています。Open XMLはWordprocessingML、SpreadsheetML、PresentationML、DrawingML、そのほかの関連ML(Markup Language)に分かれています。DrawingMLはPresentationML(または、WordprocessingMLやSpreadsheetML)と組み合わせて利用します。
Open XMLの種類 | 内容 | 対応Microsoft Officeアプリ |
---|---|---|
SpreadsheetML | 表計算ドキュメント | Excel |
WordprocessingML | ワードプロセッサードキュメント | Word |
PresentationML | プレゼンテーションドキュメント | PowerPoint |
DrawingML | 図形、画像、テキストへのグラフィック効果など | Excel、Word、PowerPoint |
■ Open XMLパッケージの中身
Open XMLドキュメントはパッケージという概念でできています。パッケージはパーツと、各パーツへの参照関係を定義したファイルから構成されます。
パッケージには、下記1〜5のファイルが含まれます。
- パーツの種類を定義するファイル
- パッケージからメインのパーツへの参照情報のファイル
- メインのパーツファイル
- メインのパーツから各パーツへの参照情報のファイル
- パーツファイル
■ ZIPからリネームするだけで……
パッケージは物理的にはZIPフォーマットを使っています。例えば、Excelファイルの場合、上記リスト1〜5のファイルをZIP圧縮し、拡張子を「xlsx」にリネームすると、Office 2007で開くことができます。逆に、Office 2007で作成した「サンプル.xlsx」の拡張子をzipにリネームして解凍すると、sheet1.xmlファイルなど各XMLファイルをテキストエディタで開いて編集できます。
次ページでは、ワークシートが1つのシンプルなExcelファイル「サンプル.xlsx(sample.xlsx)」を例にSpreadsheetMLの各XMLファイルをソースコードベースで解説していきます。
Copyright © ITmedia, Inc. All Rights Reserved.