Microsoft Office文書をOpenXML形式に変換する

Microsoft Office文書(Word,Excel,PowerPoint)をOpenXML形式に変換したい、そんなとき。

やりたいこと

要は次のようにしたい。

.doc
Microsoft Word 97-2003 文書
.docx
Microsoft Word 文書
.xls
Microsoft Excel 97-2003 ワークシート
.xlsx
Microsoft Excel ワークシート
.ppt
Microsoft PowerPoint 97-2003 プレゼンテーション
.pptx
Microsoft PowerPoint プレゼンテーション

もちろん、それぞれのソフトウェアを起動して「名前を付けて保存」するときに形式を指定してやればよいのだけれど、 ファイルが大量にあるときにはバッチ的に処理したい。

変換ツール

そこで、

以上の2つをインストールすればそれができるらしい。
上のリンク先のガイド通りにインストールすると、 C:\ompm\ 以下にいろいろ展開される。 C:\ompm\Tools\ofc.ini の fldrに変換したい文書の入ってるフォルダを指定して実行。

ところが

PowerPoint(.ppt)がうまく変換されない。64bitマシンを使っていたせいか、C:\Program Files\Microsoft Office\Office14 に Wordconv.exeとexcelcnv.exe はあるのに、PowerPointを変換しそうなヤツが見当たらないせいでエラーになる。 C:\Program Files (x86)\Microsoft Office\Office12 にPPCNVCOM.exeがいた。ついでにここにWordconv.exeとexcelcnv.exeもいた。

というわけでofc.exeなど使わずに、この3つを直接使うことに決めた。

それでコマンドプロンプトでなんとかしようとしたら、前記事「Windowsのコマンド・プロンプトの拡張子の取り扱い」の罠にはまった。 テキトーにやるとdocとdocx,xlsとxlsx,pptとpptxが区別できなくなったりするので注意。

変換コマンドの使い方

それぞれの使い方。出力ファイル名の拡張子にはxつけてあげる。

Wordconv.exe -oice -nme input_file output_file
excelcnv.exe -nme -oice input_file output_file
PPCNVCOM.EXE -oice input_file output_file

各コマンドの”C:\Program Files (x86)\Microsoft Office\Office12\”のパスは省略

それにしてもこのコマンド群の統一感の無さ。とにかく見事にバラバラである。

  • 変換の略し方(conv, cnv, CNVCOM)
  • 大文字小文字(Word, excel PP)
  • オプション引数の順序と数

オプションの意味はよくわからんのだが、順番がわりと大事だったりする。excelcnv.exe で -oice -nme って書いても動いてくれないのだ。 PowerPointでは-nme付かないし、いったいどうしてこんなことになちゃうんだろうか。
「こいつら全く別物だぜ!」というアピールなんだろうか。ユーザーはそんなの望んでないよね。 インターフェースの悪い例の良い見本だね。勉強になるね!
ところでこのdocx,xlsx,pptxにしたらサイズが小さくなったのだけど、これって要はzipでXMLファイルが圧縮されているのだね。 docx,xlsx,pptxをそれぞれzipという拡張子に変更して展開すれば、中にXMLファイルが入っているよ。

コメントを残す

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