Google Code Prettify

2018年3月7日 星期三

[C#] .Csv簡單存取應用

.Csv 是甚麼?

簡單來說是一種通用的、相對簡單的檔案格式、並且不是一種單一的、定義明確的格式,它被廣泛用於在電腦間傳遞資料。

詳細內容 逗號分隔值

應此 在不使用資料庫情況下,Csv是一個很好的選擇




在C#中,存讀文件中可以使用 FileStream,讓開發者簡略了許多,
所以簡單的應用,程式非常的短。


讀取.Csv

使用FileStream 記得using System.IO

並且為了不讓記憶體一直肥大,記得將 FileStream 釋放掉。

// filePath 為文件位置

文件的編碼模式可於 sr 最後修改 (Encoding.UTF8)

public void OpenReadCSV(string filePath)
        {
            FileStream fs = new FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
            StreamReader sr = new StreamReader(fs, Encoding.UTF8);
            //記錄每次讀取的一行記錄
            string strLine = "";
            string[] tableString = null;
            //逐行讀取CSV中的數據
            while ((strLine = sr.ReadLine()) != null)
            {
                tableString = strLine.Split(',');

                textBox1.Text = tableHead[0];
                textBox2.Text = tableHead[1];
                textBox3.Text = tableHead[2];
                textBox4.Text = tableHead[3];
            }

            sr.Close();
            fs.Close();

        }


儲存.Csv


             FileStream fs = new FileStream(fileName, System.IO.FileMode.Create,                 System.IO.FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
            string[] dt = new string[4];
            string data = "";

            //將MainFrom內的testBox內容存入矩陣
            var formTextBox = this.Controls.OfType<TextBox>();
            for (int i=0;i<4;i++) {
                string TextBoxName = "textBox"+(i+1);
                TextBox myTB = formTextBox.Where(g => g.Name == TextBoxName).SingleOrDefault();
                dt[i] = myTB.Text;
            }

            //寫出列名稱
            for (int i = 0; i < dt.Length; i++)
            {
                data += dt[i].ToString();
                if (i < dt.Length - 1)
                {
                    data += ",";
                }
            }
            sw.WriteLine(data);

            sw.Close();
            fs.Close();

            MessageBox.Show("保存成功!");



簡易範例檔下載


沒有留言:

張貼留言