gpt4 book ai didi

excel - 为 Excel 生成 CSV 文件,如何在值内添加换行符

转载 作者:行者123 更新时间:2023-12-01 16:14:34 27 4
gpt4 key购买 nike

我需要生成一个 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 个字节,十六进制 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 扩展名并删除您进入文本导入非向导,不幸的是,您遇到了换行问题。

选项包括:

  1. 训练用户不要从 Excel 中打开文件:-(
  2. 考虑直接编写 XLS 文件...Python/Perl/PHP/.NET/etc 中有可用于执行此操作的包/库

关于excel - 为 Excel 生成 CSV 文件,如何在值内添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com