- 締切済み
DOTNET2.0でのOffice2003ハンドリング
DOTNET2.0+VB2005でWindowsアプリを作成しております。 EXCEL2003にデータを書き込む処理をしたいのですが、 COMを使わずに実現するにはどのような方法があるのでしょうか? Microsoft Visual Studio Tools for Office(VSOT)という有料ツールが あるようですが、できれば無料で実現したいのです。 以上、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- temtecomai2
- ベストアンサー率61% (656/1071)
> ADO.NETって手もあるんですね。 ADO.NET ってことは相手をデータベースとして見ますから、場合によっては不自由なケースや不可能なケースも出てくるでしょう。 単純に Excel のシートにある表を読み書きするのではなく、罫線やフォントなどを修飾するには COM かVSTO を使って(データ ファイルではなく)Excel アプリケーションの機能をくすぐる必要があります。 > 書き忘れたのですがじつは、WORD2003でも同じ事をしたいのですが、 > ADO.NETで可能でしょうか? さすがに Word 対応のデータベース ドライバは聞いたことがないです。 無料が良いなら COM を使う。 マネージドで安心してやりたいなら VSTO を使う。 って所でしょうね。 ちなみに VB 6.0 などから COM で Excel を操作するときには Dim XlApp As Object Set XlApp = CreateObject("Excel.Application") Dim XlBook As Object Set XlBook = XlApp.Workbooks.Open("D:\hoge.xls") Dim XlSheet As Object Set XlSheet = XlBook.WorkSheets(1) なんてやってましたが、どうやら .NET ではもっとオブジェクトを作らないとならないようですね。 # 書き方は .NET でもおおむね同じです。 上記の例で言えば XlApp が公開する Workbooks っていうブックのコレクション。XlBook が公開する WorkSheets っていうシートのコレクション。これらもオブジェクト変数に格納したほうがいいみたいです。
- temtecomai2
- ベストアンサー率61% (656/1071)
無料なら、、、 COM を使う。(Excel のバージョンも 2003 に決まってるようですし、コーディングに注意さえすれば問題なしかと) ADO.NET を使う(ODBC 経由とか複数手段あり) http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=ado.net+excel&num=50 MSDN サブスクライバ会員(有料)になって、VSOT を堂々と使用する。
補足
temtecomai2さん、ご返答有難う御座います。 ADO.NETって手もあるんですね。 書き忘れたのですがじつは、WORD2003でも同じ事をしたいのですが、ADO.NETで可能でしょうか?
お礼
やはりCOMはプロセス残り問題があって不安です・・・ XMLを流し込む事ができるみたいなのでそちらで調査してみます。 有難う御座いました。