一、将DataTable内容写入到CSV文件 /// private void btnSaveCSV_Click(object sender, EventArgs e) { saveFileDialog1.Filter = "CSV文件|*.CSV"; saveFileDialog1.InitialDirectory = "C:\\"; if (saveFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } else { string fileName = saveFileDialog1.FileName; SaveCSV(ds.Tables[0], fileName); } } /// /// /// public void SaveCSV(DataTable dt, string fileName) { FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); string data = ""; //写出列名称 for (int i = 0; i { data += dt.Columns[i].ColumnName.ToString(); if (i { data += ","; } } sw.WriteLine(data); //写出各行数据 for (int i = 0; i { data = ""; for (int j = 0; j { data += dt.Rows[i][j].ToString(); if (j { data += ","; } } sw.WriteLine(data); } sw.Close(); fs.Close(); MessageBox.Show("CSV文件保存成功!"); } 二、将CSV文件内容读取到DataTable中 /// private void btnOpenCSV_Click(object sender, EventArgs e) { openFileDialog1.Filter = "CSV文件|*.CSV"; if (openFileDialog1.ShowDialog() == DialogResult.Cancel) { return; } else { this.dgvShow.DataSource = null; string fileName = openFileDialog1.FileName; this.dgvShow.DataSource = OpenCSV(fileName); MessageBox.Show("成功显示CSV数据!"); } } /// /// /// 返回读取了CSV数据的DataTable public DataTable OpenCSV(string fileName) { DataTable dt = new DataTable(); FileStream fs = new FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read); StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default); //记录每次读取的一行记录 string strLine = ""; //记录每行记录中的各字段内容 string[] aryLine; //标示列数 int columnCount = 0; //标示是否是读取的第一行 bool IsFirst = true; //逐行读取CSV中的数据 while ((strLine = sr.ReadLine()) != null) { aryLine=strLine.Split(','); if (IsFirst == true) { IsFirst = false; columnCount = aryLine.Length; //创建列 for (int i = 0; i { DataColumn dc = new DataColumn(aryLine[i]); dt.Columns.Add(dc); } } else { DataRow dr = dt.NewRow(); for (int j = 0; j { dr[j] = aryLine[j]; } dt.Rows.Add(dr); } } sr.Close(); fs.Close(); return dt; }