小编Mel*_*oud的帖子

生成的csv文件中的换行符让我发疯

我正在尝试导出一些数据(存储在数据表中).其中一些值中包含换行符.现在,每当我尝试在excel(2010)中导入文件时,linbreaks都会被识别为新行,而不是实际的换行符.

我搜索了几个小时,看到了很多解决方案,但我似乎无法解决它.

我输出我的csv文件的方式:(变量csvfile是一个字符串构建器)

context.Response.Clear();
context.Response.ContentType = "text/csv";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
context.Response.Write(csvfile.ToString());
context.Response.End();
Run Code Online (Sandbox Code Playgroud)

当我用excel手动打开它时,它显示正常.但是因为excel 2003不支持文件格式,所以我必须导入它.通过导入,它将换行符(字段中的\n)视为新行.

不幸的是,我不能给你一个我使用的真实数据的例子(它是所有的个人数据),但我可以给你一个如何出错的例子:

Header1,Header2,Header3
"value1","value2","value 3
and this is where its going wrong"
Run Code Online (Sandbox Code Playgroud)

这是一个简单的csv文件,当你导入它时,你会看到它出错的地方.我默认使用双引号封装字段.我也默认从值中删除前导空格.

我在这个看似简单的问题上花了至少2天,但对于我的生活,我无法弄清楚我是如何解决这个问题的.我在同一个问题上看过多个主题,但是那里提供的解决方案似乎都无法解决这个问题.

c# csv excel-2010

9
推荐指数
1
解决办法
9296
查看次数

标签 统计

c# ×1

csv ×1

excel-2010 ×1