我有下面的代码从 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/