我使用 C# 创建了一个 .csv 文件,当我在 Excel 中打开此文件时,它会在单元格中显示双引号。
当我在记事本 ++ 中打开 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 中执行一些技巧。