Excel在导入CSV文件时会自动换行。

3
当我在Excel中打开一个csv文件时,如果行的长度超过32760个字符,它会将其断开并将剩余部分放在下一行,并在此过程中删除至少2个字符。没有特殊字符在这种断开的位置。
它是否是正常行为?它从哪里来?我是否可以以任何方式更改它?
感谢您的帮助。

2
Excel规格和限制:单个单元格可以包含的字符总数为32,767个。 - Axel Richter
@Axel Richter 谢谢你的信息,我之前不知道这个。 - Liad
1个回答

4
使用正确的工具解决单元格长度问题。
Excel对单元格长度有限制,但这是可以接受的,因为Excel从来没有被设计成CSV编辑器。
我强烈建议永远不要使用Excel编辑CSV文件。原因是:
它会将CSV值(如0053)无警告地更改为(53)。这可能会对您的数据产生严重影响,因为在ERP系统中,像0053这样的值很常见,前导零通常是有意义的。或者想想邮政编码:您可能会发现Excel将040 12转换为4012而没有警告您。Excel还引入了其他意外行为(从CSV视角来看),例如您在问题描述中所述的行为。
相反,使用一些专门的CSV编辑器。其中一些是免费的。这也将解决您的单元格长度问题以及其他潜在问题,例如引号问题、单元格内换行符问题、字符编码问题、列标题等。

问题是我与绑定到Excel进行工作的用户打交道。当他们加载逗号分隔的CSV文件时,Excel无法理解分隔符,并将所有内容加载到第一列中。他们必须使用转换选项拆分数据,但由于Excel单元格长度限制,部分数据会消失。我刚刚找到了一个解决方案,通过将Windows分隔符从';'切换为',',但我对此并不太满意,我原本期望只修改Excel即可解决问题。不过,这仍然解决了我的问题。谢谢您的回答。 - Liad
2
@Liad:使用文本导入向导而不是双击文件来导入CSV文件。在第2步中,您可以选择分隔符。此外,在第3步中,您还可以选择列数据格式,以防止类似将文本00123更改为数字123的情况发生。 - Axel Richter
@AxelRichter 我也不知道,谢谢你的提醒。但是我的用户每次想要读取 CSV 文件时都需要这样做... 不过还是很有用的。 - Liad
@Liad:是的,用户必须了解这一点。但是当涉及到来自多个地区的用户时,这是将CSV正确导入Excel的唯一方法。 - Axel Richter
@Liad - 决定使用什么取决于用户是谁以及他们在什么环境中工作。在大多数情况下,我会向他们介绍一些不同于Excel的CSV编辑器。这样可以避免许多问题。如果他们可以通过使用不同的编辑器来避免所有问题,为什么还需要学习如何在Excel中操作它们呢?当然,如果你有严格的政策禁止使用除Excel之外的任何其他工具,那么使用Excel可能是合理的,但是需要对用户进行更多的培训,以正确地编辑CSV文件。 - miroxlav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接