175898 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

風来の森いろいろ日記

風来の森いろいろ日記

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X
Nov 15, 2017
XML
カテゴリ:C# VB
SCVファイルは StreamWriterを使って読み書きしようと思います。
これを使うときは空間名
using System.IO;
を追加しないとダメだったような気がします。
SaveCSvという名前のメソッドで、引数にファイル名とデータグリッドビューを指定して呼び出します。
こんな感じ

 SaveCsv(@"D:\abc.csv", DataGridVew1);

とりあえずここでは上側のヘッダー部分の書き出しをしてみます。
以下が呼び出される部分。
public void SaveCsv(String fp, DataGridView dgv)
        {
            // CSVファイルオープン
            StreamWriter sw =
                new StreamWriter(fp, false,
                System.Text.Encoding.GetEncoding("SHIFT-JIS"));
            //-------------------------------------------
            //ヘッダー部分の書き出し
            for (int h = 0; h <= dgv.ColumnCount - 1; h++)
            {
                // DataGridViewのセルのデータ取得
                String dt = "";
                if (dgv.Columns[h].HeaderCell.Value != null)
                {
                    dt = dgv.Columns[h].HeaderCell.Value.ToString();
                }
                if (h < dgv.Columns.Count - 1)
                {
                    dt = dt + ",";
                }
                // CSVファイル書込
                sw.Write(dt);
            }
            sw.Write("\n");
//ここからデータ部分の書き出し
   //ここにデータ全列全行のデータを書き出すコードを書く
//ここまでデータ部分の書き出し
    sw.Close();//クローズ
}

まずは基礎知識を学ぶ必要がありました。私は「確かな力が身につくC#「超」入門」を読んで基礎を勉強しました。先にVBで基礎を学んでいたこともあり、とてもわかりやすかったです。
サンプルコードが多くのってる本は、あんまりお勧めできません。概念をちゃんと説明してくれる本じゃないとまったく応用がききません。よくある「ゲームで覚える」系は、初心者は絶対に手をだしてはいけません。私はゲーム作りがしたくてプログラミングを勉強しはじめたため、ああいう系の本はいろいろ買いましたけど、あんな本では私のような素人ではまったく理解できませんでした。遠回りのようでも、ちゃんと基礎を勉強したほうがいいでしょう。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

確かな力が身につくC#「超」入門 [ 北村 愛実 ]
価格:2786円(税込、送料無料) (2017/11/15時点)



データを書き込む部分は、ほぼヘッダーの書き出しと同じですが、行と列を両方やらないといけないので、forが二重になります。
  for (int r = 0; r <= dgv.Rows.Count - 1; r++)
            {
                for (int c = 0; c <= dgv.Columns.Count - 1; c++)
                {
                    // DataGridViewのセルのデータ取得
                    String dt = "";
                    if (dgv.Rows[r].Cells[c].Value != null)
                    {
                        dt = dgv.Rows[r].Cells[c].Value.
                            ToString();
                    }
                    if (c < dgv.Columns.Count - 1)
                    {
                        dt = dt + ",";
                    }
                    // CSVファイル書込
                    sw.Write(dt);
                }
                sw.Write("\n");
            }

丁寧な方法をDOBON.NETさんで紹介しています。とても勉強になります。
https://dobon.net/vb/dotnet/file/writecsvfile.html





お気に入りの記事を「いいね!」で応援しよう

Last updated  Nov 15, 2017 08:10:28 PM
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X