gpt4 book ai didi

c# - 为什么 csv 文件在导出时不显示特殊字符?

转载 作者:行者123 更新时间:2023-12-05 09:18:30 26 4
gpt4 key购买 nike

我在我的应用程序中使用这段代码将 datagridview 导出为 csv 文件。它工作正常,但 csv 没有正确显示单元格值。请参见下图,我也粘贴了我的代码。我可以更改此代码以修复什么这个?

这是数据 GridView

enter image description here

这是导出的 csv,显示如下

enter image description here

这是我的代码

public void writeCSV(DataGridView gridIn, string outputFile)  
{

//test to see if the DataGridView has any rows
if (gridIn.RowCount > 0)
{
string value = "";
DataGridViewRow dr = new DataGridViewRow();
StreamWriter swOut = new StreamWriter(outputFile);


//write header rows to csv
for (int i = 0; i <= gridIn.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
swOut.Write(gridIn.Columns[i].HeaderText);
}

swOut.WriteLine();

//write DataGridView rows to csv
for (int j = 0; j <= gridIn.Rows.Count - 2; j++)
{
if (j > 0)
{
swOut.WriteLine();
}

dr = gridIn.Rows[j];

for (int i = 0; i <= gridIn.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}

value = dr.Cells[i].Value.ToString();
//replace comma's with spaces
value = value.Replace(',', ' ');
//replace embedded newlines with spaces
value = value.Replace(Environment.NewLine, " ");

swOut.Write(value);
}
}
swOut.Close();
}
}

最佳答案

您需要设置 StreamWriter 的编码:

StreamWriter swOut = new StreamWriter(outputFile, System.Text.Encoding.UTF8);

例如 UTF-8。

而刚刚在 Excel 中显示的数字 5.027E+13。您可以将单元格的文本格式更改为数字,excel 将显示该值。或者在记事本中打开 csv 文件,您会看到数字是正确的。

关于c# - 为什么 csv 文件在导出时不显示特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44284759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com