【OpenXML】C#でOfficeのファイルを操作【序文】

それでは前回まで【ClosedXML】についてでしたが、今回からは【OpenXML】についてです。

OpenXML」とは?(リンク参照)

ざっくり言えば、マイクロソフトのオフィススイート(Office2007以前)はワードファイル(*.doc)、エクセルファイル(*.xls)、パワポファイル(*.ppt)等はマイクロソフト社独自のバイナリ形式ファイルであり、MSOfficeがインストールされていないと、ファイル自体が認識できなく読み書きできない代物でした。(※1

筆者の記憶から1990年代初頭にはオフィススイートの一つのワープロソフトとしてマイクロソフト社ではなく、ジャストシステム社の「一太郎」は有名でした。(遠い目…)

時は流れて、1995年以降は皆さんご存知のようにWindows95が爆発的にPCのOSとして普及するにつれ、MSOfficeも必然的にシェアを伸ばし、現在でも一般的なオフィススイートとしては、

 

オフィススイート = 「MSOffice」

の図式が成り立ちました。

ですが、IT業界に限ったことではないですが、市場に対して寡占(ほぼ独占)状態を快く思っていない勢力が専用ソフトを介したバイナリ形式ではなく、世界標準としてテキスト形式であるXML形式を推し進め、マイクロソフトとしても結局Office2007以降はXML形式に対応する形となりました。

それが、

*.doc ⇒ *.docx(ワード)
*.xls ⇒ *.xlsx(エクセル)
*.ppt ⇒ *.pptx(パワポ)

でファイル拡張子の最後に「x」が付いているのが、XML形式を意味しています。

XML形式とは?試しに、Word2007で二つのファイルを作ってみましょう!文章は「Hello World」とか適当にしてみてください。。。

 

①a.doc
②a.docx

次にそれぞれのファイルの拡張子に「.zip」を追加(リネーム)してみましょう!

 

①a.doc ⇒ ③a.doc.zip
②a.docx ⇒ ④a.docx.zip

③をクリックするとどうなりますか?

多分、「圧縮形式エラー」というメッセージが表示されます。

④をクリックするとどうなりますか?

zipフォルダの中身がエクスプローラ上で展開されると思います。XMLファイルがそこかしこにあると思います。一つのファイル(*.docx.zip)が複数のXML形式のファイルで構成されていることがわかるかと思います。

それでは、次回からOpenXMLを使った開発を小出しに述べていきます。

※1.「一太郎」でマイクロソフトのWordで作ったファイル(*.doc)をコンバータを通して出来るみたいですが、筆者は「一太郎」は触ったことがないので…。

 

 

コメントを残す

メールアドレスが公開されることはありません。