我需要為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中打開它,結果會有所不同:
文件中只有ASCII字符(沒有BOM):有效。
您的文件中包含非ASCII字符(以UTF-8編碼),開頭是UTF-8 BOM:它識別出您的數據是以UTF-8編碼的,但它會忽略csv擴展名并將您放入文本中不幸的是,導入not-a-Wizard會導致出現換行問題。
選項包括:
訓練用戶不要從Excel中打開文件:-(
考慮直接編寫XLS文件...在Python / Perl / PHP / .NET / etc中有可用的軟件包/庫
- 3 回答
- 0 關注
- 1628 瀏覽
相關問題推薦
添加回答
舉報
0/150
提交
取消