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

use*_*951 14 csv microsoft-excel

我永远不知道那是怎么发生的。

我真的很讨厌它。

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

我从来不知道,直到现在,我的 csv 文件怎么会变成制表符分隔的格式

我点击了另存为吗?

我像往常一样保存了吗?

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

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

数据 -> 文本到列

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

附加信息

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

在此处输入图片说明

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

Rus*_*ton 16

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

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

解决此问题的一种方法是在 Notepad++ 或 Vim 等强大的文本编辑器中打开 CSV 文件,然后将文件编码从 UTF-8 BOM 转换为仅 UTF-8,然后再在 Excel 中处理它。(我意识到有时 Excel 可能需要 BOM 才能正确理解不同的语言,至少根据this。)如果您可以删除 BOM,希望您的结果将更可预测(至少在 Microsoft 发现这种行为是有点奇怪。)


Ace*_*ePL 8

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

为了在 excel 中以 CSV 格式打开 CSV,然后将其另存为 CSV,您需要导入它。

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

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