我需要为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 关注
- 1594 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消