- - PR -
C#でのExcel出力について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-28 13:58
開発環境
OS:WindowsXP Professional Office2003 Excelのみ2000も入っています。 DataSetに取得した値をExcelに出力するプログラムなんですが、 参照の追加で、「Microsoft Excel 11.0 Object Library」を使用するとOffice2003の入ってる端末では動きますが、Office2000しか入っていない端末では動きません。 「Microsoft Excel 9.0 Object Library」を使用してプログラムを作成した場合は、Office2003だけが入っている端末もOffice2000だけが入っている端末でも動きます。 「Microsoft Excel 9.0 Object Library」を使えばOfficeがどのバージョンでも動作するのか?逆に「Microsoft Excel 11.0 Object Library」だとなぜOffice2000のExcelが動かないのかわかる方がいましたら教えて下さい。 | ||||
|
投稿日時: 2005-01-28 14:33
普通にExcelをインストールすると、
”Microsoft Excel xx.x Object”は、 Officeのディレクトリの下にきます。 さらに、 Excel2003なら->Microsoft Excel 11.0 Object Excel2002なら->Microsoft Excel 10.0 Object Excel2000なら->Microsoft Excel 9.0 Object なので、普通にExcelそのものの互換を考えれば Microsoft Excel 9.0 Object は、 Excel2000〜2003で、Excel2000以下では動かないと思いますが、 関数などをパラパラ見てみると、 メソッドプロパティ等も2002,2003で変更がされているものもあるようなので、 完全互換はしているか微妙な感じです。 現状動作している動作をきちんと確認して、 問題なければMicrosoft Excel 9.0 Object で、 使用環境をExcel2000以降と明確にされてはどうでしょうか? | ||||
|
投稿日時: 2005-01-28 15:04
または、遅延バインディングで作り直すと良いでしょう。 もしくは、ExcelCreater等サードパーティの製品を利用するように作り変えると良いでしょう。 #予断ですが、DataSetと出力設定を渡したら、Excelのファイルを作成してくれるクラスをライブラリとして作成しておくと楽ですよ。 #同じインターフェースで中身だけCOM用、ExcelCreater用と作っておくと、なお楽です。 _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||
|
投稿日時: 2005-01-28 15:13
xxななおxxさん
NAL-6295さん ご返答ありがとうございます。 | ||||
|
投稿日時: 2005-01-28 15:16
間違えて送ってしまいました。
遅延バインディングとはどのようなものなのですか? 知識不足で申し訳ないのですが教えて下さい。 ExcelCreaterについて参考になるサイト等がございましたら 教えていただけないでしょうか? | ||||
|
投稿日時: 2005-01-28 15:22
違ってたらごめんなさ〜い>ALL
プログラムの起動時間を短縮するために、共有ライブラリ内のルーチンは参照時までバインドされません(データ項目は、常にプログラムの起動時にバインドされます)。このように、共有ライブラリ・ルーチンの遅延バインディングによって、プログラムの実行時間にまたがってバインディングのオーバーヘッドが分散され、実行頻度の低い多数の参照が含まれるプログラムの場合は特に有効です。実際には、遅延バインディングはデマンド・ロードと同じことです。 で良いのかな?(HPのサイトに一番わかりやすそうな文章で載っていたので) | ||||
|
投稿日時: 2005-01-28 15:40
遅延バインディングについては、こちらのスレッドが参考になると思います。
| ||||
|
投稿日時: 2005-01-28 15:48
一つだけ言い忘れた事が・・・
遅延バインディングをC#でやると大変なので、そこだけVB.NETで記述した方が良いです。 で、 遅延バインディング(実行時バインディング)の説明は・・・ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbls7/html/vblrfVBSpec9_8.asp で、 C#での例は・・・ http://support.microsoft.com/default.aspx?scid=kb;ja;302902 にあります。 ExcelCreatorについては http://www.adv.co.jp/ です。 _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ |
1