c# - 从 DataGridView 生成 CSV 文件时如何保留格式?

标签 c# .net

我有下面的代码从 DataGridView 生成 CSV 文件并且工作正常。但它并没有保留确切的格式。例如,我在 DataGridView 的一个单元格中有 125600.00,在另一个单元格中有 08。当我使用 Excel 打开 CSV 文件时,它显示它们为 125600 和 8。当我使用记事本打开 CSV 文件时,它显示它们正确的 125600.00 和 08。我可以做些什么来查看相同的格式excel? 感谢您的任何建议。

private void btnPrint_Click(object sender, EventArgs e)
    {
        sbMainFile = new StringBuilder();
        int dgcolcount = this.dataGridView1.Columns.Count;

        for (int i = 0; i < dgcolcount; i++)
        {
            sbMainFile.Append(this.dataGridView1.Columns[i].Name);
            if (i < dgcolcount - 1)
            {
                sbMainFile.Append(",");
            }
        }
        sbMainFile.Append("\r\n");

        StringBuilder sbRow = null;

        foreach (DataGridViewRow row in this.dataGridView1.Rows)
        {
            sbRow = new StringBuilder();
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                sbRow.Append(row.Cells[i].Value.ToString());
                if (i < dgcolcount - 1)
                {
                    sbRow.Append(",");
                }
            }
            sbMainFile.AppendLine(sbRow.ToString());
        }

        SaveFileDialog savefile = new SaveFileDialog();
        savefile.FileName = "default";
        savefile.Filter = "CSV Files | *.csv";
        savefile.DefaultExt = "csv";

        if (savefile.ShowDialog() == DialogResult.OK)
        {
            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(savefile.FileName))
                sw.Write(sbMainFile.ToString());
        }

    }

最佳答案

您可以将“列值”保存为字符串;例如08 为 ="08"

改变

sbRow.Append(row.Cells[i].Value.ToString());

sbRow.AppendFormat("=\"{0}\"", row.Cells[i].Value.ToString());

关于c# - 从 DataGridView 生成 CSV 文件时如何保留格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5426195/

相关文章:

c# - 正确释放串口

c# - 使用在 Threadpool 线程上创建的 BitmapImage

c# - javascript确认框问题

.net - 线程池与专用线程 - 何时选择哪个

c# - 是否可以删除 .NET 中未使用的代码/程序集?

c# - 何时使用包含引用类型的值类型数组而不是引用类型数组?

c# - 检查子元素之一是否为 null 且不抛出异常的最佳方法

c# - 使用 .NET 检测用户远离 PC

.net - 在 Entity Framework 5 中将代码生成从无更改为默认值后出现错误

.net - strings.formatnumber 限制为 15 个字符?