我需要为 Excel 生成一个文件,这个文件中的一些值包含多行。
那里还有非英文文本,所以文件必须是 Unicode。
我现在生成的文件看起来像这样:(在 UTF8 中,混合了非英文文本并且有很多行)
Header1,Header2,Header3 Value1,Value2,"Value3 Line1 Value3 Line2"
请注意,多行值用双引号括起来,其中包含正常的日常换行符。
根据我在网上找到的内容,这应该可以工作,但至少不能赢得 Excel 2007 和 UTF8 文件,Excel 将第三行视为第二行数据而不是第一行数据的第二行.
这必须在我客户的机器上运行,而且我无法控制他们的 Excel 版本,所以我需要一个适用于 Excel 2000 及更高版本的解决方案。
谢谢
编辑:我通过有两个 CSV 选项“解决”了我的问题,一个用于 Excel(Unicode,制表符分隔,字段中没有换行符),另一个用于世界其他地方(UTF8,标准 CSV)。
不是我想要的,但至少它有效(到目前为止)
只有在空格字符是数据的一部分时,您才应该在字段的开头使用空格字符。Excel 不会去掉前导空格。您将在标题和数据字段中获得不需要的空格。更糟糕的是",应该“保护”第三列中的换行符将被忽略,因为它不在字段的开头。
"
如果文件中有非 ASCII 字符(以 UTF-8 编码),则文件开头应该有一个 UTF-8 BOM(3 个字节,hex EF BB BF)。否则 Excel 将根据您的语言环境的默认编码(例如 cp1252)而不是 utf-8 解释数据,并且您的非 ASCII 字符将被丢弃。
hex EF BB BF
以下评论适用于 Excel 2003、2007 和 2013; 未在 Excel 2000 上测试
如果您通过在 Windows 资源管理器中双击文件名来打开文件,则一切正常。
如果从 Excel 中打开它,结果会有所不同:
选项包括: