Excel通常将.csv文件保存为制表符分隔格式。发生了什么?


7

我不知道怎么会发生这种情况。

我真的很讨厌它。

那是因为我的程序依赖csv文件是csv。

我永远不会知道,直到现在,我的csv文件如何成为制表符分隔格式

我点击了保存吗?

我像往常一样保存吗?

这是一个csv文件。我一直希望它是csv。

有时我打开文件,发现逗号消失了。我得做

数据 - >文字到列

解决这个问题。然后再次保存。如果我再次保存,那就是csv好吧。但它到底是如何成为制表界的呢?我从来没有指示excel将它保存在制表符分隔符中。怎么会发生这种情况?扩展名仍为.csv。

附加信息

  1. 我很少保存文件。我通常会退出excel并且可能会出现一些提示。我可能在不知情的情况下保存它。
  2. 如果我尝试将文件保存为,则excel将默认为“txt”,即使该文件显然是.csv文件
  3. 但是,如果我只是匆忙保存,它将无法保存为.csv文件。它将保存为.csv.txt文件。因此,让我的.csv文件包含制表符分隔值似乎根本没有意义。

enter image description here

使用CSV的程序是我自己定制的程序。我现在安排它可以读取制表符和逗号。但是,当涉及到它的输入时,程序对错误非常敏感。这个错误已经花了我数百美元。


程序创建的文件是什么?最后打开它们的是什么?你的所有csv-s都会发生这种情况吗?修好后它们是否仍然正确?
Máté Juhász

是哪个版本的办公室?它的2k18,问题仍然存在
Dev_Man

我感觉到你的痛苦。 Excel会定期对我进行此操作,无论出于什么原因,只要我能看到,它就可以去做一个。我今天有一个实例,它将它放到一个文件中,然后我修复了它,只是为了它在修复第一个文件的同时对同一个文件做同样的事情。完全发烟。与您一样,当CSV不是CSV时,它会破坏我们的软件。 Excel应该遵守文件扩展名。
Bart Read

Answers:


9

只是为了扩展 Chris76786777的回答 关于这个可能的Excel错误,我还注意到你打开了一个用UTF-8编码的CSV文件 带有BOM表头 (UTF-8-BOM),添加一些列,只需保存它,它将使用制表符而不是逗号作为分隔符保存它,但在关闭文件并再次打开之前,您将看不到(损坏的)结果Excel中。

如果您打开一个没有BOM的普通UTF-8 CSV文件,那么上面的相同编辑就可以了 能够 通常在Excel中重新打开它。

解决此问题的一种方法是在健壮的文本编辑器(如Notepad ++或Vim)中打开CSV文件,然后将文件编码从UTF-8 BOM转换为UTF-8,然后再在Excel中进行调整。 (我发现Excel有时可能需要BOM才能正确理解不同的语言,至少应该如此 这个 。)如果你可以删除BOM,希望你的结果更可预测(至少在微软发现这种行为有点奇怪之前。)


谢谢!在Notepad ++中打开CSV文件并更改编码 UTF-8-BOM 标准 UTF-8 为我解决了这个问题。
Nick

5

当您双击CSV文件并在Excel中打开时,实际发生的事情是Excel将其视为文本文件,但它会“动态”转换为列。不过,它仍然是文本文件。

要在Excel中将CSV作为CSV打开,然后将其另存为CSV,则需要将其导入。

遗憾的是,使用Office 2003进行双击导入CSV的默认操作已不复存在。

对于你来说,要么养成将CSV导入Excel的习惯(如果你有大数字 - 12位或更多,它有它的优点)或切换到其他工具 - 例如OpenOffice。


2

我相信这是Excel中的一个错误。我注意到当我使用UTF-8 CSV选项将XLSX保存为CSV时会发生这种情况。如果我使用“常规”版本的CSV保存,则不会发生从CSV到制表符分隔的转换。我可以通过双击保存,关闭和重新打开,文件仍为CSV。

过去几天我遇到了这个问题,这就是我注意到的。


0

对我有用的东西类似于建议的东西 拉斯

  • 在文本编辑器中编辑CSV并替换 ;,

同时将我的默认CSV程序设置为文本编辑器,而不是Excel。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.