• ベストアンサー

C# datagridview

C#でdatagridviewのデータを取得しcsvで保存する方法がわからずとても困っております. つきましてはどなたかご教授願えないでしょうか? よろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

まぁ基本的に#2で言われている通りではあると思いますが、とりあえず ・DataGridViewから各セルの情報を取得する と ・テキストファイルを作成し、テキストデータを書き込む をそれぞれ個別にやってみることですね。 なお、csvは真面目に実装すると結構面倒です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

>出力する段階は1から解らないです。 では、「基礎知識を付けて出直して来い」ですね。 コツを教えるにもある程度の基礎がないと難しいからです。 参考URLのファイルの項を見てください。

参考URL:
http://dobon.net/vb/dotnet/
全文を見る
すると、全ての回答が全文表示されます。
回答No.1

「何が」わからないのですか。 今回の場合, ・テキストファイルへ文字列を出力することができる ・テキストファイルへ変数を一つ出力することができる ・テキストファイルへ変数を複数個出力することができる ・テキストファイルへ変数を複数個カンマで区切って出力することができる ・テキストファイルへ配列を各要素を一行ずつ出力することができる ・DataGridViewの各行を列挙することができる ・DataGridViewの特定の行の列を列挙することができる という,複数の段階を踏んで初めて出力ができます。 どこまでできているのでしょうか。

Ashgin
質問者

お礼

取り敢えず、出力する段階は1から解らないです。 何か処理をしてdatagridviewに表示させたりまでは良く作っていたので分かるんですが、出力処理はしたことがなく手詰まりで困っています。 ご教示よろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C# datagridview ヘッダー

    datagridviewのヘッダーをcsvで保存したいのですが,うまく読み込めません. どなたか,ご教授願えないでしょうか? よろしくお願いいたします.

  • C# datagridview

    いくつかこまごまとしたものをまとめてご質問させて頂きますが, 1)csvファイルを読込,ある処理を行おうとすると 「列の FillWeight 値の合計が 65535 を超えることはできません。」 というエラーが出て処理が出来ません.このエラーの解消法を教えて頂けないでしょうか? 2)画像のように読み込んだヘッダー部分が文字化けしてしまいます. こちらの解消法をご教授頂けないでしょうか? 3)csvのすべてのデータをdatagridviewに表示させたいのですが,2列分しか表示されません. 下記に2)とも関連したプログラムを記載いたします.どなたかご教授願えないでしょうか? string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 OpenFileDialog sfd = new OpenFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv|xlsファイル(*.xls)|*.xls|xlsxファイル(*.xlsx)|*.xlsx|テキスト(*.txt)|*.txt"; sfd.Title = "開くファイルを選択してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // CSVファイルオープン System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName); // CSVファイルの各セルをDataGridViewに表示 int r = 0; String lin = ""; do { lin = sw.ReadLine(); if (lin != null) { if (r == 0) { dataGridView1.Columns.Add("clmName1", "日付"); this.dataGridView1.Columns.Add("Time", "データ"); } this.dataGridView1.Rows.Add(); String[] csv = lin.Split(','); for (int c = 0; c <= csv.GetLength(0) - 1; c++) { if (c < this.dataGridView1.Columns.Count) { this.dataGridView1.Rows[r].Cells[c].Value = csv[c]; } } r += 1; } } while (lin != null); // CSVファイルクローズ sw.Close(); tabControl1.SelectedIndex = 1; }

  • C# datagridview csv 読込

    datagridviewにcsvファイルを読み込んでいるのですが,csvファイル内の行列数分のみ列数・行数をdatagridviewに生成したいのですが,どうも必要以上の列数・行数を生成してしまいます. 下記にそのプログラムを記載いたします. どなたか,必要分のみするにはどうすればよろしいかご教授願えないでしょうか? private void button1_Click(object sender, EventArgs e) { string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 OpenFileDialog sfd = new OpenFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv|xlsファイル(*.xls)|*.xls|xlsxファイル(*.xlsx)|*.xlsx|テキスト(*.txt)|*.txt"; sfd.Title = "開くファイルを選択してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // CSVファイルオープン System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName); // CSVファイルの各セルをDataGridViewに表示 int r = 0; String lin = ""; do { lin = sw.ReadLine(); if (lin != null) { dataGridView1.Columns.Add("clmName1", "日付"); this.dataGridView1.Columns.Add("Time","データ"); this.dataGridView1.Rows.Add(); String[] csv = lin.Split(','); for (int c = 0; c <= csv.GetLength(0) - 1; c++) { if (c < this.dataGridView1.Columns.Count) { this.dataGridView1.Rows[r].Cells[c].Value = csv[c]; } } r += 1; } } while (lin != null); // CSVファイルクローズ sw.Close(); }

  • C# DataGridViewのループ処理

    DataGridViewの特定列の値を1行ずつ取得し 入力データが全角文字か入力チェックを行いたいと考えています。 DataGridViewの特定列を1行ずつ確認するループ方法を ご教示頂ければと思います。

  • C#のDataGridViewにCheckBox

    VC#2013でソフトを作成しています. xmlに保存したデータをform上のdataGridViewに表示させたいと考えています. xmlのデータは下記のようになります. <?xml version="1.0" standalone="yes"?> <setting> <test> <No>1</No> <直径>43.1</直径> <全長>43.2</全長> <可>true</可> </test> </setting> xmlを読み込んでfrom上のdataGridViewに表示させるコードは下記のようになります. setting.ReadXml(Directory.GetCurrentDirectory() + "\\setting.xml"); dataGridView1.DataSource = setting; dataGridView1.DataMember = "test"; 上記コードを実行し、<可>の列だけ、checkBoxにしたいと考えていますが、 trueと表示されてしまいます. 多分ですが、string型であるからだと思いますが、どのようにすればcheckBoxを表示することが出来ますでしょうか? 何卒、ご教授宜しく御願い致します.

  • C# datagridviewの使い方

    vs community2017 ver15.1でC#を独学しています。 親フォームで取得したデータを子フォームにあるdatagridviewで表示させたいのですが、うまくいきません。 子formのdesigner.csでstaticをpublicにしています。 public System.Windows.Forms.DataGridView dataGridView1; public System.Windows.Forms.DataGridViewTextBoxColumn Column1; public System.Windows.Forms.DataGridViewTextBoxColumn Column2; public System.Windows.Forms.DataGridViewTextBoxColumn Column3; public System.Windows.Forms.DataGridViewTextBoxColumn Column4; 親formのcsファイルで以下のように使用しています。 Form2 kofm = new Form2(); kofm.dataGridView1[0, 0].Value = "aaa"; kofm.StartPosition = FormStartPosition.CenterScreen; kofm.ShowDialog(); これで実行すると、以下のエラーになります。 System.ArgumentOutOfRangeException が発生しました HResult=0x80131502 Message=インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。 親フォームのボタンをクリックし、子フォームのdatagridviewに表示させるにはどのようにすればよろしいのでしょうか? 教えてください。 よろしくお願いします。

  • DataGridViewコントロールの使い方

    Visual Studio 2008 C# を使用しており、DataGridViewコントロールを使用したいと 考えております。 というのも、データベースからレコードを複数件取得し、それをDataGridViewへ表示 させたいと思います。 すみません。 そもそも初心者で、上記のような複数のデータを表示させるのがDataGridView で本当に良いのかも自信はありませんが、過去の経験と調べた結果ではそうではないかと。。。 上記のような事がしたい場合、他に何か良いものがあれば教えて頂ければ幸いです。 簡単な操作方法が載っているものがあれば、それも教えて頂ければと思います。 よろしくお願いします。

  • DataGridViewに関して

    開発環境:Visual Basic2008 Express Ediotion DataGridViewに関して教えて下さい。 DataGridViewに表示されているデータの中で、何行目が選択されているか を取得したいと考えています。 動作手順としては、DataGridViewのデータが選択された状態で、選択ボタンを押した 際に、どのデータが選択されているかを取得したいと考えています。 恐らく可能かと思われますが、何行目だけでなく、行にある項目の全ての値も取得 したいと考えています。 どのように記述したら良いかを教えて下さい。 参考になるようなホームページ、もしくはコードを記述して頂ければ幸いです。 Visual Basic2008初心者なので、初歩的な質問で申し訳ありません。 よろしくお願いします。

  • C# プログラム

    今,下記のようなプログラムを組んでdatagridviewのデータをcsvに保存するようにしようとしているのですが,1つのデータであれば保存が出来たのですが,今行いたいのはdatagridviewにあるデータすべてをcsvに保存したいのです.おそらく配列か何かに入れないといけないんだとは思うのですが, どなたかご教授頂けないでしょうか? private void button2_Click(object sender, EventArgs e) { //データテーブル設定 int R, C; R = dataGridView1.RowCount - 1; C = dataGridView1.ColumnCount - 1; string wdata = string.Empty; string tmpdata = string.Empty; //string Ter =Convert.ToString(R); //string Tec = Convert.ToString(C); //textBox1.Text = Ter; //textBox2.Text = Tec; //SaveFileDialogクラスのインスタンスを作成 //SaveFileDialog sfd = new SaveFileDialog(); //ダイアログを表示する //if (sfd.ShowDialog() == DialogResult.OK) //c = dataGridView1[Rdata, Gdata].Value.ToString(); // 以下を変更 string c = Convert.ToString(dataGridView1.Rows[0].Cells[0].Value); // 以下ファイル書き込みと保存 string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 SaveFileDialog sfd = new SaveFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv"; sfd.Title = "保存先を指定してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // ファイルを指定してインスタンス作成 System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName); try { // ファイル書き込み sw.Write(c); } catch { // エラー処理(これだとダメだけどとりあえず) MessageBox.Show("ファイル書き込みエラー", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { // 解放 sw.Dispose(); sfd.Dispose(); } }

  • C# DataGridViewにデータを追加したい。

    C# DataGridViewにデータを追加したい。 追加ボタンでDataGridViewにデータを挿入したいのですが、うまくいきません。 DataGridViewRowCollection.Add(new Object[] { 7, 777, 777, 777 }); などとしてみたのですが、オブジェクトがありませんとエラーしてしまいます。 dataGridView1.DataGridViewRowCollection.Add(new Object[] { 7, 777, 777, 777 }); としてみてもエラーが出てしまいます。 1行だけ新規にデータを挿入したい場合はどの様に記述すれば良いのでしょうか? アドバイスよろしくお願いいたします。

Lenovo Yoga 6 Gen 8の画面出力
このQ&Aのポイント
  • Yoga 6 Gen 8をドッキングステーションに接続して充電や外部モニターへの映像出力ができるか
  • Yoga 6 Gen 8でタブレットモードに切り替えて、キーボードを上にして操作可能か
  • Lenovo Yoga 6 Gen 8の購入を検討しているが、画面出力に関して不明点がある
回答を見る