無料ブログはココログ

« 無事退院 | トップページ | 64 ビットプログラムから Excel ファイルの操作 その2。 »

2009年1月23日 (金)

64 ビットプログラムから Excel ファイルの操作。

  C++ で Office ファイルを扱う場合、Office 2003 までなら ADO なんかを使って操作するわけなんだけど、32 ビットプログラムに限られるわけで、64 ビットからは扱えない。サポートされていないしサポートされる予定もないらしい。

  仕事ででかいデータを扱う予定で、機能の一つに Excel のワークシートからデータをインポートするという機能を追加しなければならないときに 64 ビットプログラムではこの問題にぶつかる。

  どうしてものかと頭を抱えていたら、そういえば Office 2007 のファイルは基本的に XML じゃんということに気がついた。仕様として Office 2003 をベースにするとしていたのでそっちに気が回らなかった。Office 2003 でも Open XML をサポートするプラグインが出てるみたいなので、Office 2007 を購入してもらうことはない。ただ仕様として Open XML をベースにするという変更をしなければならないけどね。

  試しに Word 2007 から *.docx ファイルを出力して、SDK 使って読み込ませてみたところちゃんと文字列を取得できた。これは便利。今ではバックグランドで Office が起動されていたわけだけど、基本テキストなのでメモリも食わないし動作も軽い。プログラムが万が一落ちてもプロセスで Office が残ることもない。いまのところいいこと尽くし。自分が求めている範囲では特に問題がない。強いて言えば SDK のダウンロードで日本語版と英語版のバージョンが微妙に違うということかな。英語版にしないと足りないクラスとかあって使えない。なんで英語版と日本語版を同じ扱いにしているのだろうか。バージョン違うなら違うって書いておいてほしかったね。気がつくのに 30 分かかったよ。

« 無事退院 | トップページ | 64 ビットプログラムから Excel ファイルの操作 その2。 »

プログラミング」カテゴリの記事