亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為Excel生成CSV文件,以及如何在值中包含換行符

為Excel生成CSV文件,以及如何在值中包含換行符

茅侃侃 2019-10-25 15:21:45
我需要為Excel生成一個文件,該文件中的某些值包含多行。那里也有非英語文本,因此文件必須是Unicode。我現在生成的文件如下所示:(在UTF8中,混合了很多行的非英文文本)Header1,Header2,Header3Value1,Value2,"Value3 Line1Value3 Line2"請注意,多行值用雙引號引起來,并帶有普通的日常換行符。根據我在網上發現的信息,該方法行得通,但至少在不贏得Excel 2007和UTF8文件的情況下,它不能,Excel將第三行視為第二行數據,而不是第一行第二行。這必須在我的客戶的計算機上運行,并且我無法控制他們的Excel版本,因此我需要一個可以在Excel 2000及更高版本上使用的解決方案。謝謝編輯:我通過有兩個CSV選項“解決了”我的問題,一個用于Excel(Unicode,制表符分隔,字段中沒有換行符),另一個用于世界其他地區(UTF8,標準CSV)。不是我一直在尋找的東西,但至少它能起作用(到目前為止)
查看完整描述

3 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

僅在空格字符是數據的一部分的情況下,才應在字段的開頭使用空格字符。Excel不會刪除前導空格。您的標題和數據字段中會出現多余的空格。更糟糕的是",應該“保護”第三列中的換行符的那個將被忽略,因為它不在字段的開頭。

如果文件中包含非ASCII字符(以UTF-8編碼),則文件開頭應具有UTF-8 BOM(3個字節,hex EF BB BF)。否則,Excel將根據您的語言環境的默認編碼(例如cp1252)而不是utf-8解釋數據,并且您的非ASCII字符將被刪除。

以下注釋適用于Excel 2003、2007和2013;未經Excel 2000測試

如果通過在Windows資源管理器中雙擊文件名來打開文件,則一切正常。

如果從Excel中打開它,結果會有所不同:

  1. 文件中只有ASCII字符(沒有BOM):有效。

  2. 您的文件中包含非ASCII字符(以UTF-8編碼),開頭是UTF-8 BOM:它識別出您的數據是以UTF-8編碼的,但它會忽略csv擴展名并將您放入文本中不幸的是,導入not-a-Wizard會導致出現換行問題。

選項包括:

  1. 訓練用戶不要從Excel中打開文件:-(

  2. 考慮直接編寫XLS文件...在Python / Perl / PHP / .NET / etc中有可用的軟件包/庫


查看完整回答
反對 回復 2019-10-25
  • 3 回答
  • 0 關注
  • 1628 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號