- PR -

VB.NETでEXCELへDataTable(DataSet)の内容を出力したい

1
投稿者投稿内容
K5
常連さん
会議室デビュー日: 2006/04/22
投稿数: 25
投稿日時: 2006-04-26 03:57
お世話になります。
VB.NET(2003) & ACCESSでWINDOWSアプリを作成しています。

SQLを発行して、得た結果をDataTableにセットしているのですが、その内容を全てEXCELファイルに出力する処理を作成しようとしているところです。

VB6である"CopyFromRecordset"のように、DataTableの内容を簡単に出力する方法がないか探していますが見つかりません。
ご存知の方がいたら、是非教えて下さい。
または、他の方法でもDataTable(DataSet)のExcelへの出力サンプル等あれば教えて頂けますでしょうか。

よろしくお願い致します。



[ メッセージ編集済み 編集者: K5 編集日時 2006-04-26 04:28 ]

[ メッセージ編集済み 編集者: K5 編集日時 2006-04-26 11:20 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-26 07:44
引用:

K5さんの書き込み (2006-04-26 03:57) より:

SQLを発行して、得た結果をDataTableにセットしているのですが、その内容を全てEXCELファイルに出力する処理を作成しようとしているところです。


"Excel ファイル" と言うからには、Excel Book 形式のファイルへ出力するということなのでしょうか?
書式なしの CSV や TSV ではなく、書式付きの Excel のワークシートへの出力なのでしょうか?

これによって回答が変わります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
K5
常連さん
会議室デビュー日: 2006/04/22
投稿数: 25
投稿日時: 2006-04-26 11:19
じゃんぬねっと様

ご返信ありがとうございます

引用:

"Excel ファイル" と言うからには、Excel Book 形式のファイルへ出力するということなのでしょうか?
書式なしの CSV や TSV ではなく、書式付きの Excel のワークシートへの出力なのでしょうか?
これによって回答が変わります。



説明不足で申し訳ありません。
Excel Book 形式のファイル(*.xls)に対しての出力です。
書式付きの Excel のワークシートへの出力です。

以上よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-26 11:49
引用:

K5さんの書き込み (2006-04-26 11:19) より:

Excel Book 形式のファイル(*.xls)に対しての出力です。
書式付きの Excel のワークシートへの出力です。


手元にあるものだけで思いつくのは、COM Interop くらいですね。
"Export to Excel" DataTable あたりで「検索」してみましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
むら
会議室デビュー日: 2006/04/11
投稿数: 11
お住まい・勤務地: さっぽろ
投稿日時: 2006-04-26 12:01
こんにちは。
---------------------------------------------------------------------
Dim intRowCount As Integer = 1 '行
For Each drv As DataRowView In DataTable.DefaultView
'列数分だけ処理
Dim intColCount As Integer = 1 '列
For i As Integer = 1 To DefaultView.Table.Columns.Count() Step 1
xlRange = DirectCast(xlSheet.Cells(intRowCount, intColCount), Excel.Range)
xlRange.Value = drv.Item(i - 1)

'列インクリメント
intColCount += 1
Next i

'行インクリメント
intRowCount += 1
Next
---------------------------------------------------------------------

原始的ではありますが、
イメージ的には上記のような感じで、ループすれば
データ量が多いときのレスポンスはともかくとして
シートへ対しての出力自体は実現できるかと。
あ、これはDataViewでまわしてます。

もちろんExcelファイルのOpenやら解放やらは
別途必要です。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-04-26 12:08
引用:

じゃんぬねっとさんの書き込み (2006-04-26 11:49) より:
手元にあるものだけで思いつくのは、COM Interop くらいですね。


他に、すぐに思いつく範囲で、Office2003前提で良ければVSTO、
あとサードパーティコンポーネントの有名どころでActiveReportsのExcel Export機能とExcelCreatorあたりでしょうか。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-04-26 15:59
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10298&forum=7
K5
常連さん
会議室デビュー日: 2006/04/22
投稿数: 25
投稿日時: 2006-04-27 23:52
じゃんぬねっとさん、むらさん、ぼのぼのさん、todoさんご返信ありがとうございます。
遅くなって申し訳ありません。

今回はむらさん、todoに教えて頂いたサンプルコードを元に、行、列をループして出力するやり方で対応しました。

本当に勉強になりました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)