【背景】
一个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