Excel不支持用于读取或写入CSV文件的定界符设置


20

在Excel中保存/打开CSV文件时,默认的分隔符是分号(;),因为我需要将其作为逗号(,),我尝试通过更改语言和区域设置来更改它,方法如下:即如何获取Excel以将逗号解释为CSV文件中的默认分隔符?)。

但是,在这些设置中更改“列表”分隔符后,我的Excel继续使用分号保存CSV文件。是因为我将列表分隔符设置为分号时安装了Excel吗?还是这里缺少其他设置?

先感谢您。


读取现有CSV文件或使用逗号作为定界符创建CSV文件时是否出现问题?
fixer1234 2014年

两者,在保存新文件之前,我已经做了@Raystafarian提到的内容。我的区域设置正确。然后打开Excel并另存为CSV,然后在记事本中打开文件时,可以看到它使用了分号。如果我在Excel中打开,它会正确加载,因为Excel仍使用;。用于分隔列。
桑德拉(Sandra)2014年

Answers:


35

我发现了问题。我在“区域设置”中的小数点符号也是逗号(欧洲),因此,即使我的列表分隔符是逗号,CSV也用分号保存。现在,我将小数点符号更改为一个点,现在已正确创建了以逗号为分隔符的CSV文件。我对此进行了两次测试,现在知道必须有一个例外:如果小数点符号是逗号,则列表分隔符将是一个分号,甚至设置为否则。


12
感谢您抽出宝贵的时间用答案更新帖子。
加里的学生

5

为了节省

您需要先在语言和区域设置中调整列表分隔符,然后再保存文件-

在此处输入图片说明


开门

转到数据-获取外部数据-从文本

在此处输入图片说明

选择文件

选择定界,然后按下一步 在此处输入图片说明

然后选择定界符 逗号

在此处输入图片说明

点击完成

在此处输入图片说明


或者,将其拉入,然后将文本用于列,请参见此处


如果我没看错的话,看来问题出在创建(保存),使用逗号作为定界符的定界文件(第二段)。
fixer1234 2014年

@ fixer1234是的,这就是我最初阅读它的方式。但是后来我认为第一段很重要。我不知道哪个是正确的。无论哪种方式,除了OP提到他们已经尝试过的方法之外,我没有其他解决方案。
Raystafarian 2014年

是的,我确实在保存文件之前更改了区域设置。它没有帮助。当我收到其他人用逗号分隔的CSV文件时,则使用您的方法正确导入数据,然后保存并将其转为分号。这很烦人,因为在每次使用CSV作为导入文件之前,每次需要转到记事本并用逗号替换所有分号。
桑德拉(Sandra)2014年

0

这是一个非常不错的宏,效果很好:

Sub saveCSV()
File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub

0

这有点老了,但我遇到了同样的问题:
使用以分号(;)分隔的CSV 。系统分隔符设置(Windows)也设置为分号。

  • 如果我手动打开CSV,则文件已正确分离。
  • 如果我让VBA打开它,则会用逗号错误地将其分开。

使用Delimiter:=";"显然仅适用于.txt

但是,使用Local :=True为我解决了问题:

Workbooks.Open(Filename:=fullpath, Local:=True)
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.