@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

DataGridの表示内容をExcelに出力する方法について

1
投稿者投稿内容
WS2
会議室デビュー日: 2004/08/31
投稿数: 3
投稿日時: 2004-11-01 00:12
はじめまして。よろしくお願いします。

現在、VB.NETを使ってWinアプリを作成しています。
DataGridについての質問なのですが、
表示させている内容をそのままExcelに落とし込む方法がわかりません。
どなたか、ご存知の方がいればご教授をお願いします。

環境は、WindowsXP, Access, VS.NET2002です。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-11-01 05:57
諸農です。

このページの右上(広告の下)に並んでいる
[新規メンバー登録] [公開プロファイル編集] [プリファレンス編集] [検索]
のうちの検索リンクで表示される画面で「Excel DataGrid」のキーワードを入力して、「すべてが含まれる投稿を検索」のオプションに変更して、検索の対象にする会議室をInsider.NETに指定して検索すると、71個の投稿がヒットしますので、その中からいくつかをピックアップして試してみてはいかがでしょうか。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
WS2
会議室デビュー日: 2004/08/31
投稿数: 3
投稿日時: 2004-11-01 10:44
さっそくの返信ありがとうございました。
[検索]から探してみた結果ヒットがいくつかあったのですが、いずれもWeb用でWindows用のアプリ作成時への応用方法が見つけられませんでした。
あまりにも初歩的な質問すぎるのかもしれませんが、引き続きお願い致します。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-11-01 11:43
おはようございます。
さかもとです。
ご質問の件ですが,参考になるかどうか・・・。
サンプル用に書き直してませんので,適時該当箇所を変更してください。
もっといい方法があるかもしれませんが・・・。
===============================================================
'/DataGridに表示されている内容をCSV出力する方法
Private Sub btnCsv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCsv.Click
Dim myFileStream As FileStream
Dim myStreamWriter As StreamWriter
Dim intIndex As Integer
Dim strWriteLine As String

'行数を取得
Dim intCount As Integer = DataGrid1.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember).Count
'ファイルの作成
myFileStream = New FileStream("D:\testDB\Output\test.txt", FileMode.Create, FileAccess.ReadWrite)
'文字コードをセットしないと文字化けする
myStreamWriter = New StreamWriter(myFileStream, System.Text.Encoding.GetEncoding("Shift-JIS"))

'1行づつ読み込んでCSV形式で書き込む 6列の場合です
For intIndex = 0 To intCount - 1 Step 1
strWriteLine = Me.DataGrid1.Item(intIndex, 0)
strWriteLine = strWriteLine & "," & Me.DataGrid1.Item(intIndex, 1)
strWriteLine = strWriteLine & "," & Me.DataGrid1.Item(intIndex, 2)
strWriteLine = strWriteLine & "," & Me.DataGrid1.Item(intIndex, 3)
strWriteLine = strWriteLine & "," & Me.DataGrid1.Item(intIndex, 4)
strWriteLine = strWriteLine & "," & Me.DataGrid1.Item(intIndex, 5)
myStreamWriter.WriteLine(strWriteLine)
Next intIndex

myStreamWriter.Close()
MsgBox("CSV出力テスト終了")
End Sub
===============================================================
確か私もこちらの検索で見つけたような?記憶が定かではありません・・・。
余り綺麗なコードじゃないので,できれば出したくないのですが(笑)
良ければお使いください。


[ メッセージ編集済み 編集者: さかもと 編集日時 2004-11-01 11:44 ]
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-11-01 11:48
引用:

WS2さんの書き込み (2004-11-01 10:44) より:
さっそくの返信ありがとうございました。
[検索]から探してみた結果ヒットがいくつかあったのですが、いずれもWeb用でWindows用のアプリ作成時への応用方法が見つけられませんでした。
あまりにも初歩的な質問すぎるのかもしれませんが、引き続きお願い致します。



こんにちは。

僕もWindowsフォームからExcelへのエクスポートやりました。
ここでの記事やスレッドも参考になりましたし、MSDNにも載ってますよ。

やろうとされていることはDataGridを使用しているアプリケーションを作成されている
人ならば大体の人が考える事で、ネット上や書籍で探そうと思えばいくらでもネタはあります。


[ メッセージ編集済み 編集者: とっと 編集日時 2004-11-01 11:51 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-11-01 22:58
引用:

WS2さんの書き込み(2004-11-01 10:44)より:

いずれもWeb用でWindows用のアプリ作成時への応用方法が見つけられませんでした。


 いや、応用ってのは、自分でするもんですよ(^o^;
用例:「Webアプリケーションでの事例を元に、Windowsアプリケーションで使えるように、応用する」
 それに、ZEN73さんのスレッドは、Windowsアプリケーションだと思うんだけどなぁ?


 で、WindowsアプリケーションとWebアプリケーションで、「やらなければいけないこと」は同じです。
・ExcelのActiveXを参照追加(IDE上)
・Excelオブジェクト作成(以後、プログラム中)
・その他のオブジェクトを導出参照
・適切な処理を行う
・導出したオブジェクトを破棄
・Excelオブジェクトを破棄

このすべての手順について、すでに回答があります。Webアプリケーションでは、これ以外に、
・アプリケーションを実行するセキュリティ関係の変更

が追加されます。

_________________
WS2
会議室デビュー日: 2004/08/31
投稿数: 3
投稿日時: 2004-11-02 17:01
自己レスです。
ご返信下さいました皆様ありがとうございました。
さかもと様、ソースまで丁寧に書いて頂き感謝しております。
大変参考になりました。

結局の所、MSDNを参考にMicrosoft Jet OLE DBプロバイダを使用してExcel上にレコードを追加する方法で解決する事にしました。
私の情報検索能力が足らなかったみたいです…次回から質問する前にもっといろいろ調べてみます。ご迷惑をおかけしましたm(__)m
1

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