| この記事の要点 |
|
概要
OpenDocument Format (ODF) は OASIS が策定し、ISO/IEC 26300 として国際標準にもなっているオフィス文書のオープンフォーマット。LibreOffice、Apache OpenOffice、Collabora Online などの OSS オフィススイートが既定形式として採用している。
主な拡張子は以下:
- .odt — OpenDocument Text (文書)。DOCX に相当
- .ods — OpenDocument Spreadsheet (表計算)。XLSX に相当
- .odp — OpenDocument Presentation (プレゼン)。PPTX に相当
- .odg — OpenDocument Graphics (図形)
- .odf — OpenDocument Formula (数式)
「ベンダーロックインを避けたい」「長期保存に耐える公開仕様の形式を使いたい」という動機で、EU、ブラジル、インド、日本の一部自治体など、政府・教育機関での採用が増えている。
内部構造
ODF も OOXML 同様、ZIP + XML 構造を取る。一見すると似ているが、XML スキーマは別物。中核は content.xml (本文) と styles.xml (スタイル定義)。
# ODT の中身を確認
unzip -l report.odt
# mimetype ← 先頭に非圧縮で配置 (識別用)
# META-INF/manifest.xml ← ファイル一覧とタイプ
# content.xml ← 本文
# styles.xml ← スタイル
# settings.xml ← アプリ設定
# meta.xml ← メタデータ
# Pictures/image1.png ← 埋め込み画像
# Thumbnails/thumbnail.png ← サムネ
mimetype ファイルが ZIP の先頭に非圧縮で置かれているのが特徴で、file コマンドが ODF として認識するための仕組み。
<!-- content.xml の構造 (ODT) -->
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
<office:body>
<office:text>
<text:h text:outline-level="1">見出し</text:h>
<text:p>これは段落です。</text:p>
<text:p>
<text:span text:style-name="Bold">太字</text:span>を含む。
</text:p>
</office:text>
</office:body>
</office:document-content>
主な用途
- 政府・自治体の公文書 — オープン標準が要件となるケース
- 教育機関 — 大学・学校の配布資料 (OSS 重視の方針)
- OSS プロジェクトのドキュメント — Linux ディストリビューションのコミュニティ作業
- LibreOffice ユーザー全般 — Microsoft Office を持たない環境
- 長期保存 — ベンダー非依存・公開仕様のため将来も開ける保証が高い
関連形式との比較
| 用途 | ODF (OSS) | OOXML (MS) | レガシー (MS) |
|---|---|---|---|
| 文書 | .odt | .docx | .doc |
| 表計算 | .ods | .xlsx | .xls |
| プレゼン | .odp | .pptx | .ppt |
| 図形 | .odg | — | — |
| 数式 | .odf | — | — |
| 項目 | ODF | OOXML (DOCX/XLSX/PPTX) |
|---|---|---|
| 策定 | OASIS / ISO/IEC 26300 | ECMA / ISO/IEC 29500 |
| 主力アプリ | LibreOffice, OpenOffice | Microsoft Office |
| 実体 | ZIP + XML | ZIP + XML |
| 採用状況 | 政府・教育・OSS 系 | 企業・一般ユーザー全般 |
| 相互運用 | MS Office でも読める | LibreOffice でも読める |
編集・パーサ・ツール
LibreOffice CLI でフォーマット変換ができる。GUI なしで動くため、サーバサイドの自動変換にも使える。
# LibreOffice headless 変換
libreoffice --headless --convert-to pdf report.odt
libreoffice --headless --convert-to docx report.odt
libreoffice --headless --convert-to xlsx data.ods
# pandoc で ODT を Markdown へ
pandoc report.odt -o report.md
Python では odfpy で ODF を直接読み書きできる。
from odf.opendocument import OpenDocumentText
from odf.text import H, P
doc = OpenDocumentText()
doc.text.addElement(H(outlinelevel=1, text='レポートタイトル'))
doc.text.addElement(P(text='本文の段落です。'))
doc.text.addElement(P(text='ODF はオープン標準です。'))
doc.save('output.odt')
注意点・落とし穴
- Microsoft Office との相互運用は完全ではない — 複雑な書式・図表・マクロは ODT ⇄ DOCX 変換で崩れることがある。重要文書は同じスイートで完結させる
- マクロは Basic ベース — VBA と互換性がないため、Word マクロ付き文書を ODT 化しても動かない
- 業務環境での採用は地域差が大きい — 日本の一般企業ではほぼ見ない一方、欧州政府機関では標準。取引先と齟齬が出ないよう保存形式は事前合意
- サムネイル経由の情報漏洩 — Thumbnails ディレクトリに低解像度のプレビューが含まれる。機密文書ではメタデータと合わせて確認
- 名前空間 (xmlns) の差異 — OOXML との XML スキーマ互換性はゼロ。自作パーサを使う場合は両方に対応する必要がある
関連リンク
- テキスト・ドキュメント形式
- ファイル拡張子とは
- DOCX(.docx)
- XLSX(.xlsx)
- PPTX(.pptx)
- RTF(.rtf)
- PDF(.pdf)
- アーカイブ・圧縮形式
- XML(.xml)
子ページ
子ページはありません
同階層のページ
- PDF(.pdf)
- CSV(.csv)
- Markdown(.md)
- TXT(.txt)
- DOCX(.docx)
- XLSX(.xlsx)
- PPTX(.pptx)
- TSV(.tsv)
- RTF(.rtf)
- ODT / ODS / ODP(.odt / .ods / .odp)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- djangoのテンプレートの作成とヘッダー・フッターの共通化 2026-10-03 21:41:49
- テンプレートフラグメント(ヘッダー等の共有化) 2026-10-03 21:41:49
- reCAPTCHA v3 使い方(サンプル付き) 2026-10-03 21:37:05
- Content-Type一覧|MIMEタイプとはとHTTPでの主な使用場面 2026-10-03 21:37:05
- SpringにおけるAOPの使い方 2026-10-03 21:37:05
- X (Twitter) API でツイートできないがエラーが出ない問題の原因と対処 2026-10-03 11:33:01
- X (Twitter) API アプリケーション登録完全ガイド|v2・Bearer Token・OAuth 2.0 PKCE 2026-10-03 11:33:01
- X (Twitter) API 完全ガイド|従量課金の料金・単価(2026年10月)と v2 移行 2026-10-03 11:32:40
- Google DeepMind とは?Gemini・AlphaFold の開発元 2026-10-03 11:26:56
- Cursor とは?AI 統合型コードエディタの使い方・料金 2026-10-03 11:26:56
- Claude (Anthropic) とは?AIチャットの使い方・モデルファミリ・API 2026-10-03 11:26:56
- AIベンダー一覧:OpenAI・Anthropic・Google DeepMind・Microsoft・Meta 2026-10-03 11:26:56
- クラウド・インフラ完全ガイド — AWS/Azure/GCP/Kubernetes 2026-10-03 11:26:56
- テキストエディタ完全比較 (VS Code / Cursor / Vim / Emacs / IDE) 2026-10-03 11:26:56
- プログラミング学習プラットフォーム|Scratch・micro:bit ほか 2026-10-03 11:26:56