歴史レッスン:.ods ファイルとは? Excel で開けるのに数式が変わる理由
OpenDocument Spreadsheet。StarOffice の StarCalc と OpenOffice.org Calc から生まれ、ISO/IEC 26300 となり、標準の数式言語を 6 年待ち、今も Excel で開くといくつかの点が静かに変わってしまうオープンなブック形式です。

TL;DR
.ods は OpenDocument スプレッドシート(OpenDocument Spreadsheet)です。ブックを XML テキストとして ZIP パッケージに保存します。祖先は、Star Division の StarOffice スイートの表計算ソフト StarCalc(バイナリの .sdc ファイル)と、OpenOffice.org Calc です。後者の .sxc パッケージが OpenDocument 形式の土台になりました。OASIS は 2005 年 5 月 1 日に ODF 1.0 を承認し、ISO と IEC は 2006 年 11 月 30 日にそれを ISO/IEC 26300 として発行しました。ただし ODF 1.0 と 1.1 は数式の書き方を定めておらず、標準の数式言語 OpenFormula が登場したのは 2011 年 9 月の ODF 1.2 でした。この空白こそ、.ods でいちばんよくある驚き——Excel で開けるのに数式や日付や書式が変わってしまう——の根っこです。
.ods ファイルとは?
.ods ファイルは OpenDocument 形式(ODF)の表計算メンバーです。ODF はオフィスファイルのオープン標準で、兄弟には .odt 文書、.odp プレゼンテーション、.odg 図形描画があります。LibreOffice Calc と Apache OpenOffice Calc のネイティブなブック形式で、Microsoft Excel、Google スプレッドシート、Gnumeric などのプログラムでも開いたり保存したりできます。正式なメディアタイプは application/vnd.oasis.opendocument.spreadsheet です。表計算テンプレートは .ots を使い、.fods は「フラット」版で、同じ XML を ZIP ではなく圧縮しない 1 つのファイルに収めたものです。
Excel で開けるのに、数式や書式が変わるのはなぜ?
Excel は作業中、ファイルを OpenDocument のまま保持していないからです。パッケージを読み込み、すべてのシート、スタイル、数式を自分のモデルに対応付け、保存するときに初めて OpenDocument として書き戻します。.ods と .xlsx を比較した Microsoft のサポートページには、その往復で何が残るかが並んでいます。基本的なセルの書式、セルのスタイル、印刷範囲、数式はサポートされます。しかし 1900 年 1 月 1 日より前の日付は正しく保存されず、印刷時の行と列の繰り返しはサポートされず、テーブルのスタイルと集計行は失われ、スレッド形式のコメントは従来のコメントになり、パスワードで保護されたシートを含むブックは保存も開くこともできません。Microsoft の Excel ファイル形式の一覧ははっきりこう書いています。.ods ファイルを保存して開くと、書式が失われる場合があります。
数式は別の話です。.ods の中で、数式を持つセルには table:formula 属性があり、その文字列は名前空間プレフィックスで始まります。残りの部分がどの数式言語で書かれているかを示す短いラベルです。Microsoft の実装ノートによると、Excel 2013 以降はプレフィックスが of(OpenFormula)か msoxl(Excel 独自の構文)、またはプレフィックスがない場合に数式を読み込みます。それ以外のプレフィックスでは数式を飛ばし、セルに保存された最後に計算された値だけを残します。セルは正しく見えますが、再計算されない固定の数値になっています。
合計だけでなく数式を確認する
開き直した .ods や変換した .ods は、一部のセルが数式から固定値に変わっていても、まったく正しい数字を表示することがあります。翌年の数字にシートを使い回す前に、いくつかの合計セルをクリックして数式バーを見てください。
1985〜2002 年:StarCalc、Sun、OpenOffice.org Calc
この系譜は、1985 年に Marco Börries(マルコ・ベリース)がドイツのリューネブルクで創業した Star Division から始まります。同社の StarOffice スイートには表計算ソフト StarCalc が加わり、1994 年の StarOffice 2.0 は Windows 3.1 向けに StarWriter、StarCalc、StarBase をまとめていました。こうした StarCalc のブックはバイナリの .sdc ファイルで、まったく別物です。歴史レッスン:.sdc ファイルとは?を参照してください。
Sun Microsystems は 1999 年 8 月に Star Division を買収し、2000 年 7 月 19 日、StarOffice のソースコードを OpenOffice.org として公開すると発表しました。Sun の言葉では、このプロジェクトは「XML ベースのファイル形式の定義」も取りまとめるものでした。OpenOffice.org 1.0 は 2002 年 5 月 1 日に登場し、その Calc は .sxc ファイルを保存しました。バイナリの塊ではなく、XML パーツを収めた ZIP パッケージです。このパッケージ設計が .ods の直接の祖先です。歴史レッスン:.sxc ファイルとは?を参照してください。
2005 年:OASIS、ODF 1.0、ISO/IEC 26300
このパッケージをベンダーに依存しない標準にするため、それは OASIS(Organization for the Advancement of Structured Information Standards、構造化情報標準促進協会)に持ち込まれました。オープンな技術標準を発行する非営利のコンソーシアムです。その OpenDocument 技術委員会は 2002 年 12 月 16 日に初会合を開き、ODF 1.0 は 2005 年 5 月 1 日に OASIS 標準として承認されました。2005 年 10 月 20 日に公開された OpenOffice.org 2.0 は OpenDocument を既定の形式にし、一般の PC で .ods が .sxc に取って代わり始めました。
続いて OASIS は ODF を ISO(国際標準化機構)と IEC(国際電気標準会議)の合同委員会に提出しました。ODF は 2006 年 5 月 3 日に投票を通過し、2006 年 11 月 30 日に ISO/IEC 26300:2006 として発行されました。その後も版が続きます。ODF 1.1 は 2007 年 2 月、ODF 1.2 は 2011 年 9 月(ISO/IEC による発行は 2015 年)、ODF 1.3 は 2021 年 4 月、そして ODF 1.4 は 2025 年 10 月 6 日に承認されました。
バイトの仕組み:XML を収めた ZIP、セルごとの記述
.ods を 16 進ビューアで開くと、最初の 2 バイトは PK で、これは ZIP アーカイブの識別子です。ODF のパッケージ規則では、mimetype という小さなファイルを先頭に圧縮せずに置き、中身は application/vnd.oasis.opendocument.spreadsheet という文字列だけにすることが求められています。こうすればソフトウェアは展開せずにブックを識別できます。その後に content.xml(シートとセル)、styles.xml(書式)、meta.xml(作成者と日付)、settings.xml(表示設定)、そしてすべてのパーツの一覧である META-INF/manifest.xml が続きます。XML(Extensible Markup Language)はタグで組み立てたプレーンテキストなので、展開すればブック全体をテキストエディタで読めます。
content.xml の中では、各シートが table:table 要素、各行が table:table-row、各セルが table:table-cell です。セルは単にテキストを持つだけではありません。office:value-type 属性で値の種類——float、percentage、currency、date、time、boolean、string——を宣言し、生の値を別の属性に保持します。一方、セル内の段落には画面に表示される形が入ります。この分離のおかげで、セルは 12% と表示しながら 0.12 を保存できます。同じセルや空のセルの連続は、1 つずつ書き出す代わりに繰り返し回数(table:number-columns-repeated)で圧縮されます。
数式の空白:ODF 1.0 から OpenFormula へ
最初の標準は、数式がどこにあるか——table:formula 属性——は定めましたが、その中の言語は定めませんでした。米国議会図書館(Library of Congress)の形式解説は、ODS 1.1 が「数式を表す文字列にどんな構文も許していた」こと、そしてこの欠点が相互運用性の問題につながったことを指摘しています。実際には、OpenOffice.org は数式を oooc: プレフィックスの後ろに、[.A1] のように角かっこで囲んだセル参照で書き込み、ほかの複数の ODF プログラムも同じ書き方をしていました。
2009 年 4 月 28 日に Microsoft Office 2007 Service Pack 2 が ODF の組み込みサポートを追加したとき、Excel は別の道を選びました。Microsoft の実装ノートによると、Excel 2007 は数式を独自の msoxl プレフィックスの後ろに Excel 構文で保存し、読み込み時には他の名前空間の数式について保存された値だけを残しました。Microsoft のブログは、ODF 1.0 と 1.1 が数式を定義していない以上、ODF の表計算実装はどれもアプリケーション依存だと主張しました。IBM の Rob Weir(ロブ・ウィアー)は OASIS ODF 委員会の共同議長で、2009 年 5 月、SP2 がほかの ODF プログラムで作ったスプレッドシートから数式を取り除き、最後の値だけを残すことを示すテストを公開しました。この論争は、ファイル形式にはセルの構造だけでなく数式の標準が必要だという教科書的な例になりました。
その標準が OpenFormula で、ODF 1.2 のパート 2 です(2011 年 9 月 29 日から OASIS 標準)。データ型、構文、組み込み関数の振る舞いを定め、異なるプログラムでも数式が同等の結果を出すようにしています。ODF 1.2 の数式には of: プレフィックスが付きます。Excel は Office 2013 で ODF 1.2 に対応し、現在はこのプレフィックスで数式を保存します。ただし Microsoft の規則をよく読むと、古い oooc: プレフィックスは Excel のリストにありません。2000 年代のオフィススイートで保存した .ods が、Excel で開くとかつて数式だった場所に値が入っていることがある理由のひとつです。
LibreOffice、各国政府、そして誰のものでもない形式
Oracle は 2010 年に Sun を買収しました。2010 年 9 月 28 日、コミュニティの開発者たちが The Document Foundation とフォークの LibreOffice を発表し、2011 年 6 月 1 日、Oracle は OpenOffice.org のコードを Apache Software Foundation に譲渡しました。そこで Apache OpenOffice として続いています。どちらも今も新しいスプレッドシートを既定で .ods として保存します。
政府は .ods を愛好家の外へ広める助けになりました。2005 年 9 月、米国 マサチューセッツ州は、行政機関に 2007 年 1 月 1 日までにオフィス文書を OpenDocument で保存するよう求める方針を公表しました。2007 年の改訂では Microsoft の Open XML も認められました。2014 年 7 月 22 日、英国政府は政府文書の共有と共同作業の標準として ODF を選びました。2026 年 3 月には、ドイツの IT 計画評議会が文書について ODF を挙げる Deutschland-Stack の一連の標準を採択しました。
2026 年になっても .ods ファイルがディスクに残っている理由
.ods が 20 年にわたって無料の既定形式だったからです。LibreOffice や OpenOffice をインストールすると、誰かが設定を変えない限り新しいブックは .ods で保存されます。そのため学校のパソコン、慈善団体、小さな事務所、Linux デスクトップ、Microsoft Office を買わなかった人々のもとには、.ods の予算表、名簿、在庫表、クラブの会計がフォルダーごと残っています。その多くは今やレガシーファイルです。もうインストールされていないスイートで作られたもの、最新の Excel が数式を固定値として扱うかもしれない古いバージョンで書かれたもの、あるいは OpenDocument を聞いたこともない相手に .xlsx で渡す必要があるものです。
代わりに .xlsx、CSV、PDF が必要なとき
.ods の名前を .xlsx に変えても何も起きません。中のパーツは OpenDocument の XML のままで、.xlsx は別の標準、2008 年 11 月に ISO/IEC 29500 として発行された Office Open XML だからです。本当の変換では OpenDocument のセルを読み取り、新しいファイルを書き出します。誰かが Excel で作業を続ける必要があるなら XLSX、値だけが重要なら CSV、どこで印刷しても同じに見せたいなら PDF を選びましょう。そのうえで数式、日付、保護されたシートを確認してください。二つの形式の違いが出るのはそこです。
Legacy File Converter は .ods とフラットな .fods のブックをお使いの Windows PC 上で開き、XLSX、PDF、CSV、Markdown、HTML として保存します。何もアップロードされないので、給与や会員情報を含むシートでも安心です。同じ表計算ソフトの前の世代については StarCalc .sdc と OpenOffice.org Calc .sxc を、Excel 側の物語については 歴史レッスン:.xls ファイルとは? をご覧ください。
関連記事
古いファイルを開く準備はできましたか?
無料で始めて、買い切りの $79.95 Standard ライセンスで無制限変換を解除。Windows インストーラーをダウンロード — 最大 10 ファイルまで全機能。
無料トライアル
アプリの全機能 · 最大 10 ファイル
Windows 10 または 11
無料トライアル — 最大 10 ファイルまで変換できます。Windows インストーラーをダウンロードして、PC 上でローカルに変換してください。
直接 Windows インストーラー · オフライン MSI
安全ですか? — 発行元、インストーラー、SmartScreen のヘルプ
Windows 10 または 11 が必要です。サブスクリプションなし。