特集:XMLを取り込んだ最新Officeフォーマットとは?

Officeファイルの成り立ちと最新形、
そして標準化


特集:XMLを取り込んだ最新Officeフォーマットとは?(前編)

株式会社 東芝 ソフトウェア技術センター
Girier 陽子
2008/7/22

今回の主な内容

いまさら聞けないOfficeファイルフォーマット
Open XMLを解剖すると……

Excelを例にパッケージの中をのぞいてみよう

後編はJavaでExcelデータを操作

 読者の皆さんは、いわゆる「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」へ変更されました。

表1 Officeファイルの変遷
項目 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が提案されました。

図1 OpenOffice.org日本語サイト
図1 OpenOffice.org日本語サイト

表2 Open XMLとODFの比較
項目 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、東芝
図1 OpenOffice.org日本語サイト
図2 TC45のサイト

 続いてISO標準化の取り組みが行われたものの、2007年9月の投票では否決され、各国より仕様に関する多数のコメントが寄せられました。TC45で仕様の見直しを行い、再投票の結果2008年4月ISO標準として承認されました。この過程について詳しくは下記記事を参照してください。

 現在、Open XMLは仕様が公開されているほか、ロイヤリティフリーでライセンスが提供されています。

Open XMLを解剖すると……

 Open XMLは、ワードプロセッサ/表計算/プレゼンテーションドキュメントを電子ファイルとして保存するための、XMLおよびZIP技術をベースにしたファイルフォーマットです。XML形式を採用したことにより、バックエンドでの自動生成、変換などの自動処理やほかのシステムとの連携などが可能になっています。

Open XMLの種類

 また、Open XMLファイルはZIPファイルであるため、従来サイズよりもコンパクトになっています。Open XMLはWordprocessingMLSpreadsheetMLPresentationMLDrawingML、そのほかの関連MLMarkup Language)に分かれています。DrawingMLはPresentationML(または、WordprocessingMLやSpreadsheetML)と組み合わせて利用します。

表3 Open XMLの種類
Open XMLの種類 内容 対応Microsoft Officeアプリ
SpreadsheetML 表計算ドキュメント Excel
WordprocessingML ワードプロセッサードキュメント Word
PresentationML プレゼンテーションドキュメント PowerPoint
DrawingML 図形、画像、テキストへのグラフィック効果など Excel、Word、PowerPoint

Open XMLパッケージの中身

 Open XMLドキュメントはパッケージという概念でできています。パッケージはパーツと、各パーツへの参照関係を定義したファイルから構成されます。

図3 パッケージの構成
図3 パッケージの構成

 パッケージには、下記1〜5のファイルが含まれます。

  1. パーツの種類を定義するファイル
  2. パッケージからメインのパーツへの参照情報のファイル
  3. メインのパーツファイル
  4. メインのパーツから各パーツへの参照情報のファイル
  5. パーツファイル
図4 Open XMLのExcelファイルの構成
図4 Open XMLのExcelファイルの構成(画像をクリックすると、拡大します)

ZIPからリネームするだけで……

 パッケージは物理的にはZIPフォーマットを使っています。例えば、Excelファイルの場合、上記リスト1〜5のファイルをZIP圧縮し、拡張子を「xlsx」にリネームすると、Office 2007で開くことができます。逆に、Office 2007で作成した「サンプル.xlsx」の拡張子をzipにリネームして解凍すると、sheet1.xmlファイルなど各XMLファイルをテキストエディタで開いて編集できます。

 次ページでは、ワークシートが1つのシンプルなExcelファイル「サンプル.xlsx(sample.xlsx)」を例にSpreadsheetMLの各XMLファイルをソースコードベースで解説していきます。

  1-2

 INDEX
Page1
  いまさら聞けないOfficeファイルフォーマット
Open XMLを解剖すると……
  Page2
  Excelを例にパッケージの中をのぞいてみよう
後編はJavaでXMLのExcelデータを操作


Java Solution全記事一覧

TechTargetジャパン

Java Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH