我有一些像这样的 csv 数据文件
1,2,3
5,6,7
我用 Excel 2010 打开它,做了一些更改(更改一些值、删除一列或任何其他内容),然后将文件重新保存为 csv。但现在数据变成了
1,2,3
,,
5,6,7
中间的空白行现在被一行用逗号分隔的空字段填充。我知道在这个例子中这并没有太大的区别,但是当我有代码来处理这两种不同的格式时,这真的很烦人。有没有办法阻止 Excel 更改格式?或者有没有其他可以轻松编辑 csv 文件的程序?
答案1
CSV 文件中的空白行表示它不符合大多数(如果不是全部)CSV 实现中使用的语法。您可以在RFC 4180:
整个文件中的每一行都应包含相同数量的字段。
Excel 输出的内容实际上是空白行的正确表示,因为 CSV 文件的列数始终相同。您将无法使用其他 CSV 编辑器,因为它们要么输出标准化的 CSV 格式,要么甚至可能无法正确读取您的文件。它们可能会跳过空白行,或像 Excel 一样输出它。
以下是一些可能的解决方案:
您无法更改 Excel 保存 CSV 文件的方式。如果您想打破车轮上的蝴蝶,您需要编写 VBA 代码来手动导出文件。
更改原始 CSV 文件,使其不包含空行。
如果您需要空行来标识不连续的数据或单独的表,请考虑为每个部分创建单独的 CSV 文件,或将表标识符作为 CSV 中的另一列以获得适当的表格表示。
更改代码以使用 Excel 的表示形式,从而遵循为 CSV 建立的标准。只需将包含空字段的行视为空即可。
使用任何纯文本编辑器(记事本等)修改 CSV 文件以删除有问题的行。
答案2
csv 文件可以使用记事本或任何简单的文本编辑器进行编辑
答案3
我偶然发现了这个问题和答案,它们很有帮助,但并没有给我所需的一切。我需要能够管理和使用 CSV 数据,而不会破坏 Excel 众所周知的格式。我发现新的导入向导不利于基本的 CSV 导入 - 至少我发现它没用,因为我没有导入原始数据的能力。
基本上,我在撰写本文时使用的是 Excel Office 365 版本 16。我不得不打开旧版 CSV/文本导入向导...我希望微软永远不要在不先提供更简单的原始数据导入方法的情况下摆脱此向导。
使用下面的方法,在首先确保已将所有列导入为文本后,我可以毫无问题地删除行或列...当您保存更改时,请确保将其保存为 CSV 文件。
启用旧版向导:
在 Excel 中导航至文件 --> 选项 --> 数据 --> 选中“显示旧数据导入向导”部分中的“来自文本(旧)”复选框
现在导入你的 CSV 或 RAW 文本文件
导航到“数据”选项卡,在“获取和转换数据”部分中选择“获取数据-->旧版向导-->来自文本(旧版)”。
希望这能够帮助别人。
答案4
您需要打开一个空的 Excel 并使用“数据”选项卡中的“从文本导入”选项。
您将有一个导入向导,您可以在导入之前选择每列的编码、分隔符和格式。
编辑后,您可以保存为 CSV。