- - PR -
DataGridのフィールド名をCSVファイルに出力
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-15 16:20
こんにちは、まこと申します。
宜しくお願いします 早速ですが、datagridのフィールド名及びデータをcsvに出力しようとしているのですが、フィールド名を出力することができません。 Dim sw As IO.StreamWriter Dim i As Integer Dim strWriteLine As String Dim intIndex As Integer Dim intCount As Integer = DataGrid1.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember).Count '[名前を付けて保存]ダイアログ dlgSave.InitialDirectory = Application.StartupPath & "\.." dlgSave.Filter = "CSV形式(*.csv)|*.csv|XML形式(*.xml)|*.xml|すべて(*.*)|*.*" If dlgSave.ShowDialog = DialogResult.Cancel Then Exit Sub End If 'ファイルオープン sw = New IO.StreamWriter(dlgsave.FileName, _ False, System.Text.Encoding.GetEncoding("Shift-JIS")) strWriteLine = Me.DataGrid1.Enabled 'フィールド名の書き出し strWriteLine = Me.DataGrid1.Columns(0).headertext For i = 1 To 45 strWriteLine = strWriteLine & "," & Me.DataGrid1.Columns(i).headertext i = i + 1 Next i sw.WriteLine(strWriteLine) 'データをファイルに出力 For intIndex = 0 To intCount - 1 Step 1 strWriteLine = Me.DataGrid1.Item(intIndex, 0) For i = 1 To 45 strWriteLine = strWriteLine & "," & Me.DataGrid1.Item(intIndex, i) i = i + 1 Next i sw.WriteLine(strWriteLine) Next intIndex 'ファイルクローズ sw.Close() MessageBox.Show("保存しました", "エクスポート") いろいろ過去のスレットを参考させていただいたのですが、見つける事が出来ませんした。 何卒宜しくお願い致します。 環境ですが、 OS:WIN XP HOME SP2 .netバージョン:2003 | ||||||||||||||||
|
投稿日時: 2005-04-15 16:41
まこです。追記します。
ダラダラ長いコード(要らないコード)を記してしまいましたが、以下の部分です。 'フィールド名の書き出し strWriteLine = Me.DataGrid1.Columns(0).headertext For i = 1 To 45 strWriteLine = strWriteLine & "," & Me.DataGrid1.Columns(i).headertext i = i + 1 Next i sw.WriteLine(strWriteLine) 宜しくお願いします。 | ||||||||||||||||
|
投稿日時: 2005-04-16 10:45
諸農です。
・headertextに文字列が入っているかどうかは確認しましたか?
・出力されたファイルに「Enabled」の内容が書き込まれていますか?
と言うことで、まこさんが直面している問題点とは一体何でしょうか? その問題点を明確にしましょう。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||
|
投稿日時: 2005-04-17 03:26
コンパイルエラー、実行時エラー、予期しない動作、何かしらは起きるでしょう。
で、Windows.FormsのDataGridにColumnsってメンバないんじゃないですか? エラーになりません? DataSourceからTable取得してColumnName取得すればいいのかな。 | ||||||||||||||||
|
投稿日時: 2005-04-18 12:02
諸農さん、べるさん、適切なアドバイスありがとうございます。
皆さんが一生懸命ご回答くださっているのに返信が遅れて大変申し訳ございません。
非常に恥ずかしいことですが、以下の構文で0列めのフィールド名が勝手に取得できるものだと思ってました。 Me.DataGrid1.Columns(0).headertext
WINDOWSフォームです。 アドバイスとおりDataSourceからTable取得してColumnName取得し、headertextにフィールド名を入力して出来ました。 Me.DataGrid1Columns0.headertext 本当にありがとうございました。 |
1