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フォーマットが標準化されるまでの流れ
2005年、主にOpenOffice(オープンソースのオフィスソフトウェア)で使われるODF(Open Document Format)がOASIS(構造化情報標準促進協会)標準化され、米国マサチューセッツ州で公式文書としてODFとPDFが採用されました。そして、2006年にはODFがISO標準化されるなど、近年は文書ファイル形式のオープン化の動きが活発になってきています。その流れを受け、2005年11月にマイクロソフトからオープンなXML形式のOfficeファイルフォーマットであるOpen XMLが提案されました。
![]() |
| 図1 OpenOffice.org日本語サイト |
| 表2 Open XMLとODFの比較 | |||||||||||||||||||||
|
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、東芝
![]() |
| 図2 TC45のサイト |
続いて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)と組み合わせて利用します。
| 表3 Open XMLの種類 | |||||||||||||||
|
■ Open XMLパッケージの中身
Open XMLドキュメントはパッケージという概念でできています。パッケージはパーツと、各パーツへの参照関係を定義したファイルから構成されます。
![]() |
| 図3 パッケージの構成 |
パッケージには、下記1〜5のファイルが含まれます。
- パーツの種類を定義するファイル
- パッケージからメインのパーツへの参照情報のファイル
- メインのパーツファイル
- メインのパーツから各パーツへの参照情報のファイル
- パーツファイル
![]() |
| 図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データを操作 |
||
XMLを取り込んだ最新Officeフォーマットとは バックナンバー 連載インデックスへ»
- 第1回 Officeファイルの成り立ちと最新形、そして標準化
- 最終回 最新ExcelフォーマットをJavaで操作するための基礎
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




