【背景】
一个C#的winform程序,其中有DataGridView,里面已有数据:
之前已经可以实现导出为Excel:
【已解决】将C#中的DataGridView中的数据,导出为Excel
现在想要将其导出为CSV文件。
【解决过程】
1.参考:
Exporting datagridview to csv file
去写代码,结果使用:
//settings //string delimiter = "|"; string delimiter = ","; string outputFilename = "fiverrComScrapedResult.csv"; string fullFilename = Path.Combine(getSaveFolder(), outputFilename); StreamWriter csvStreamWriter = new StreamWriter(fullFilename, false, System.Text.Encoding.UTF8); //output header data string strHeader = ""; for (int i = 0; i < dgvSearchResult.Columns.Count; i++) { strHeader += dgvSearchResult.Columns[i].HeaderText + delimiter; } csvStreamWriter.WriteLine(strHeader); //output rows data for (int j = 0; j < dgvSearchResult.Rows.Count; j++) { string strRowValue = ""; for (int k = 0; k < dgvSearchResult.Columns.Count; k++) { strRowValue += dgvSearchResult.Rows[j].Cells[k].Value + delimiter; } csvStreamWriter.WriteLine(strRowValue); } csvStreamWriter.Close();
就可以生成对应的csv文件了。
但是,其中,如果是分隔符为"|"的话,结果生成的csv,用excel打开,却是没法自动分列显示的,只是个普通文本:
必须用逗号“,”作为分隔符,然后生成的csv,用excel打开,才可以自动识别,对应的数据,才可以分列显示:
【总结】
C#中,将DataGridView中的数据,导出为CSV,其实就是:
- 新建个普通的文本文件,对应的是StreamWriter
- 然后将DataGridView中的数据
- 包括头和每行的数据,
- 都转成字符串,然后把字符串,保存到对应的StreamWriter
- 最后数据写完后,close,即可。
转载请注明:在路上 » 【已解决】C#中DataGridView中的数据导出为CSV