我試圖導出一些數據(存儲在數據表中)。其中一些值在其中有一個換行符。現在,每次我嘗試導入excel(2010)中的文件時,linbreaks都會被識別爲新行,而不是實際的換行符。生成的csv文件中的換行符讓我瘋狂
我已經搜索了幾個小時,看到了很多解決方案,但我似乎無法得到它修復。
方式i個輸出我的CSV文件: (可變csvfile是一個StringBuilder)
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天時間,但對於我的生活,我無法弄清楚我該如何修復它。我在同一個問題上看到了多個主題,但沒有提供的解決方案似乎解決了這個問題。
你必須保持斷行嗎? – 2011-05-10 14:59:54
是的,恐怕換線對數據非常重要。 – 2011-05-10 15:01:00
看到這個問題:http://stackoverflow.com/questions/1241220/generating-csv-file-for-excel-how-to-have-a-newline-inside-a-value – 2011-05-10 15:17:56