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


