我有这段代码:
context.Response.ClearHeaders();
context.Response.AddHeader("content-disposition", "attachment; filename=Clients.csv");
context.Response.ClearContent();
context.Response.ContentType = "application/ms-excel";
context.Response.ContentEncoding = System.Text.Encoding.Unicode;
context.Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
context.Response.BufferOutput = false;
context.Response.Buffer = false;
foreach (var c in clients)
{
context.Response.Output.WriteLine(string.Format("{0},{1}", c.FirstName, c.LastName));
}
下载的文件看起来很好,但所有行单元格合并到一个单元格的事实除外。 我必须使用Response as BinaryWrite,因为csv / xls内容中有希伯来语和日语字符。 如何用二进制写入分割单元格csv / xls文件?
答案 0 :(得分:0)
Microsoft Excel将打开.csv文件,但视系统而定 区域设置,可能需要分号作为分隔符而不是 逗号,因为在某些语言中逗号用作小数 分隔器。
因此虽然它被称为逗号分隔值,但我认为你应该尝试使用分号而不是逗号。
即。使用方法:
context.Response.Output.WriteLine(
string.Format("{0};{1}", c.FirstName, c.LastName));
答案 1 :(得分:0)
最好的方法是在有逗号时用双引号括起字符串来清理你的字符串,excel在保存你的csv文件时这样做。