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

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

我从来不知道那是怎么发生的。

我真的非常讨厌它。

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

直到现在我才知道,我的 csv 文件如何变成制表符分隔格式

我是否单击了“另存为”?

我是否像往常一样保存了?

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

有时我打开文件,发现逗号不见了。我得

数据 -> 文本到列

修复这个问题。然后再次保存。如果我再次保存,它就是 csv。但它怎么会变成制表符分隔的呢?我从来没有指示 excel 以制表符分隔的方式保存它。这怎么可能发生?扩展名仍然是 .csv。

附加信息

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

在此处输入图片描述

使用 CSV 的程序是我自己定制的程序。我现在安排它能够读取制表符和逗号。但是,该程序在输入时非常容易出错。这个错误已经让我损失了数百美元。

答案1

只是为了扩展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,希望您的结果会更加可预测(至少直到 Microsoft 发现这种行为有点奇怪。)

答案2

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

为了在 Excel 中将 CSV 以 CSV 格式打开并将其保存为 CSV,您需要导入它。

不幸的是,Office 2003 中双击导入 CSV 的默认操作已经消失。

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

答案3

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

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

答案4

对我有用的方法类似于拉斯

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

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

相关内容