我正在尝试导出我拥有的一些数据(存储在数据表中)。其中一些值中有换行符。现在,每次我尝试在 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();
当我用excel手动打开它时,它显示正常。但是因为excel 2003不支持文件格式,所以我必须导入它。通过导入,它会将换行符(字段中的 \n)视为新行。
不幸的是,我不能给你一个我使用的真实数据的例子(这都是个人数据),但我可以给你一个例子来说明它是如何出错的:
Header1,Header2,Header3
"value1","value2","value 3
and this is where its going wrong"
这是一个简单的 csv 文件,当您导入它时,您会看到哪里出错了。我默认用双引号封装字段。默认情况下,我还会从值中删除前导空格。
我已经在这个看似简单的问题上花费了至少 2 天时间,但是对于我的生活,我无法弄清楚如何解决它。我在同一个问题上看到了多个主题,但那里提供的解决方案似乎都没有解决这个问题。