c# - 创建csv文件时,Excel显示双引号

标签 c# excel csv

我使用 C# 创建了一个 .csv 文件,当我在 Excel 中打开该文件时,它在单元格中显示了双引号。

当我在 Notepad++ 中打开 csv 时,我看到那里有引号,而且一切看起来都对。这是我的 csv 的一部分:

"CertificaatNummer", "Data", "Inleg", "Getekend", "Ingangsdatum", "Betaalmethode", "Status", "Bonus", "Aankoopkoers", "Korting", "Garantiewaarde", "Betaalde termijnen", "Inleg nominaal", "Tweede naam", "Recht op bonus maand", "Begunstigde", "Product", "Incasserekening", "Uitbetaalrekening"
"126136", "some data with, a comma", "118.34", "True", "28-1-1999 00:00:00", "Cash", "C02", "0.00", "531,940", "0,000", "0.00", "0", "0.00", "", "False", "P.H. Bloemink", "Cash-Click", "", "260952095"
"137190", "other data", "0.00", "True", "23-12-1999 00:00:00", "Cash", "C02", "0.00", "660,620", "0,000", "0,00"

当我在 Excel 中打开此文件时,它会将 some data with, a comma 中的逗号视为新列。所以我在一个单元格中得到 "Some data with,在另一个单元格中得到 a comma"。如您所见,Excel 不关心双引号。

这是我的代码的样子(简化):

var content = new List<string>();

// Add headers
content.Add("\"Header 1\", \"Header 2\", \"Header 3\", \"Header 4\"");

// Add content
content.Add("\"123456\", \"some data with, a comma\", \"118.34\", \"True\"");
// etc..

// I let a function create my file content
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{
    foreach (var line in this.content)
    {
        writer.WriteLine(line);
    }

    writer.Flush();
    return stream.ToArray();
}

// finally I return the file content to the browser with 
// HttpContext.Response.AddHeader("content-disposition", "file;name=" + fileName);

问题是,我必须编辑代码的哪一部分,Excel 才能正确显示我的文件?我更想编辑我的代码,然后在 Excel 中执行一些技巧。

最佳答案

问题似乎出在逗号分隔符之后。
而不是

"some, text","Other text"

您的代码正在生成:

"some, text",<space>"Other text"

所以 Excel CSV 导入器变得很困惑。删除那些多余的空格,你应该没问题。

关于c# - 创建csv文件时,Excel显示双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19907035/

相关文章:

c# - 什么设置了 C# 中使用的 TLS 版本

c# - 如何从另一个本地主机验证用户?

SQL Server 查询与 Excel VLookup 具有相同功能

C++ 流运算符问题

python-2.7 - Python 电子邮件 MIME 附件文件名

c# - 从 hexdigit 隐藏编程计算机的文件路径

c# - 泰历 2558 年至 2015 年

arrays - Excel VBA 到 Excel 十进制精度

vba - 非连续范围中的范围、单元格(和项目)

javascript - 在 D3.js 中过滤 CSV 的多行并更新键盘输入的过滤器