最近、.docxファイル(特別に構造化されたzipアーカイブ)の基本構造について学びました。ただし、docxはドキュメントのようにフォーマットされていません。
ドキュメントファイルはどのように機能しますか?ファイル形式、構造などは何ですか?
これはあなたの質問に対する直接の答えではありませんが、JoelSpolskyの記事「なぜMicrosoftOfficeのファイル形式はそれほど複雑なのですか? 」を読むことを強くお勧めします。(およびいくつかの回避策)。.doc形式が実際にどれほど複雑であるか、そしてその理由についての洞察が得られます。Joelは、.doc形式の非常に基本的な概要も示しています。
ご覧のとおり、Excel 97-2003ファイルはOLE複合ドキュメントであり、基本的には1つのファイル内のファイルシステムです。これらは十分に複雑なので、それを理解するには別の9ページの仕様を読む必要があります。そして、これらの「仕様」は、私たちが従来仕様として考えていたものよりも、Cデータ構造のように見えます。これは、階層型ファイルシステム全体です。
(引用はExcelファイルを参照していますが、Wordドキュメントにも適用されます)。有益な記事であり、.docxおよびODFファイルが外部の観点から検討されたときに非常に論理的に構造化および設計されている理由を理解するのに役立ちます。
バイナリ.docファイルの完全な形式は、(。docに関するウィキペディアの記事)からのこのPDFに記載されています。
MS Word DOC形式の背後にある基本的な考え方は、Kibbeeがすでに書いているように、基本的にメモリダンプであるOLECompundDocumentです。これはドキュメントを保存するための非常に複雑で複雑な方法ですが、アプリケーションWordを実際に掘り下げたことがあれば、それがどれほど多くの機能を備えているかがわかります。ビジネス環境で使用したことがあれば、優れた機能を利用できます。 Officeシリーズの他のプログラムとどのように統合されているかを感じます。
一般に、OLE Compund Documentsは非常に拡張可能な構造であり、あらゆる種類のデータを1つのファイルに詰め込み、アプリケーションがインストールされていないデータをある程度処理することができます。たとえば、(MS数式エディタから)数式オブジェクトをドキュメントに挿入すると、ファイル内のファイルのようなサブオブジェクトとして保存されますが、このオブジェクトには数式エディタに必要なデータが含まれているだけではありません。編集およびレンダリングするために、汎用ビットマップ(またはメタファイル)表現も保存されているため、編集されていなくても、数式エディターがインストールされていないマシンで表示できます。
これが理由で、他の人がすでにリンクしている仕様をどのように読まなければならないかについてです;)
ただし、ファイルを簡単に操作する方法が必要な場合は、ソフトウェアがWordがインストールされたWindowsマシンで実行されていることを確認してから、COM/OLEオートメーションを使用してドキュメントを開いて操作します。その場合、ファイル形式について心配する必要はありません。
.doc形式は非常に複雑です。ほとんどのMicrosoft形式と同様に、バージョンとレガシーサポート間の変更の長い歴史を反映しています。彼らはそれを少し前に公開したので、それ(および他のOffice 2007以前のフォーマット)を表示したい場合は、ここで自分をノックアウトしてください。
Microsoft Wordの.docがあり、次にプレーンテキストの.docがあります。独自のMicrosoftフォーマットについて疑問に思っているようです。
ウィキペディアから:
DOC形式は、MicrosoftOfficeのWord形式によって異なります。97までのWordバージョンは、97から2003までのMicrosoftWordバージョンとは異なる形式を使用していました。
.docxがパッケージ化されたファイルであるにもかかわらず、必ずしも.zipアーカイブであるとは限らないのは、 Word2007までではありませんでした。構造化されたXMLドキュメントです。