- - PR -
VB.NETでEXCELへDataTable(DataSet)の内容を出力したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 ] | ||||
|
投稿日時: 2006-04-26 07:44
"Excel ファイル" と言うからには、Excel Book 形式のファイルへ出力するということなのでしょうか? 書式なしの CSV や TSV ではなく、書式付きの Excel のワークシートへの出力なのでしょうか? これによって回答が変わります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-26 11:19
じゃんぬねっと様
ご返信ありがとうございます
説明不足で申し訳ありません。 Excel Book 形式のファイル(*.xls)に対しての出力です。 書式付きの Excel のワークシートへの出力です。 以上よろしくお願い致します。 | ||||
|
投稿日時: 2006-04-26 11:49
手元にあるものだけで思いつくのは、COM Interop くらいですね。 "Export to Excel" DataTable あたりで「検索」してみましょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 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やら解放やらは 別途必要です。 | ||||
|
投稿日時: 2006-04-26 12:08
他に、すぐに思いつく範囲で、Office2003前提で良ければVSTO、 あとサードパーティコンポーネントの有名どころでActiveReportsのExcel Export機能とExcelCreatorあたりでしょうか。 | ||||
|
投稿日時: 2006-04-26 15:59
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10298&forum=7
| ||||
|
投稿日時: 2006-04-27 23:52
じゃんぬねっとさん、むらさん、ぼのぼのさん、todoさんご返信ありがとうございます。
遅くなって申し訳ありません。 今回はむらさん、todoに教えて頂いたサンプルコードを元に、行、列をループして出力するやり方で対応しました。 本当に勉強になりました。 ありがとうございました。 |
1