- - PR -
DataGridの表示内容をExcelに出力する方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-01 00:12
はじめまして。よろしくお願いします。
現在、VB.NETを使ってWinアプリを作成しています。 DataGridについての質問なのですが、 表示させている内容をそのままExcelに落とし込む方法がわかりません。 どなたか、ご存知の方がいればご教授をお願いします。 環境は、WindowsXP, Access, VS.NET2002です。 | ||||
|
投稿日時: 2004-11-01 05:57
諸農です。
このページの右上(広告の下)に並んでいる [新規メンバー登録] [公開プロファイル編集] [プリファレンス編集] [検索] のうちの検索リンクで表示される画面で「Excel DataGrid」のキーワードを入力して、「すべてが含まれる投稿を検索」のオプションに変更して、検索の対象にする会議室をInsider.NETに指定して検索すると、71個の投稿がヒットしますので、その中からいくつかをピックアップして試してみてはいかがでしょうか。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-11-01 10:44
さっそくの返信ありがとうございました。
[検索]から探してみた結果ヒットがいくつかあったのですが、いずれもWeb用でWindows用のアプリ作成時への応用方法が見つけられませんでした。 あまりにも初歩的な質問すぎるのかもしれませんが、引き続きお願い致します。 | ||||
|
投稿日時: 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-11-01 11:48
こんにちは。 僕もWindowsフォームからExcelへのエクスポートやりました。 ここでの記事やスレッドも参考になりましたし、MSDNにも載ってますよ。 やろうとされていることはDataGridを使用しているアプリケーションを作成されている 人ならば大体の人が考える事で、ネット上や書籍で探そうと思えばいくらでもネタはあります。 [ メッセージ編集済み 編集者: とっと 編集日時 2004-11-01 11:51 ] | ||||
|
投稿日時: 2004-11-01 22:58
いや、応用ってのは、自分でするもんですよ(^o^; 用例:「Webアプリケーションでの事例を元に、Windowsアプリケーションで使えるように、応用する」 それに、ZEN73さんのスレッドは、Windowsアプリケーションだと思うんだけどなぁ? で、WindowsアプリケーションとWebアプリケーションで、「やらなければいけないこと」は同じです。 ・ExcelのActiveXを参照追加(IDE上) ・Excelオブジェクト作成(以後、プログラム中) ・その他のオブジェクトを導出参照 ・適切な処理を行う ・導出したオブジェクトを破棄 ・Excelオブジェクトを破棄 このすべての手順について、すでに回答があります。Webアプリケーションでは、これ以外に、 ・アプリケーションを実行するセキュリティ関係の変更 が追加されます。 _________________ | ||||
|
投稿日時: 2004-11-02 17:01
自己レスです。
ご返信下さいました皆様ありがとうございました。 さかもと様、ソースまで丁寧に書いて頂き感謝しております。 大変参考になりました。 結局の所、MSDNを参考にMicrosoft Jet OLE DBプロバイダを使用してExcel上にレコードを追加する方法で解決する事にしました。 私の情報検索能力が足らなかったみたいです…次回から質問する前にもっといろいろ調べてみます。ご迷惑をおかけしましたm(__)m |
1