如何在美国版Excel中打开以分号分隔的CSV文件


95

当我双击.csv文件时,将在Excel中打开它。csv文件具有以分号分隔的列(不是逗号,但也是有效格式)。

使用德语Windows / Excel设置,可以正确显示打开的文件,并在csv文件中分号所在的列之间进行分隔。

但是,当我在(美国)英语Windows / Excel设置上执行相同操作时,仅导入一列,第一列显示包括分号在内的整个数据。
(我没有可用于测试的英语设置,用户已报告了此行为)

我试图在Windows区域设置中更改列表分隔符的值,但没有任何改变。

如何双击英语设置上的那些CSV文件,该怎么办?

编辑:
在这种情况下,不依赖CSV文件似乎是最好的解决方案。我希望CSV文件有某种格式,可以在国际范围内使用它们。
最好的解决方案似乎是我将切换到创建XLS文件。


1
您可以建议您的用户使用LibreOffice Calc-它可以处理带有任意分隔符的CSV。
naught101 '17

Answers:


1

这些文件是分发的吗?下载了吗?本地生成?

我认为解决您的问题而无需访问用户PC且无需他对文件进行“双击”操作的独特方法是在发行或放置下载或生成文件之前将文件转换为.xls。 .xls(或其他有效格式)而不是.csv文件。您可以使用脚本来执行此操作,也可以使用工作正常的Excel来手动执行此操作,具体取决于文件数及其生成方式。


是的,我认为这是直接创建XLS文件的最佳方法。我希望CSV文件有某种格式,使它们在国际上都可以使用,但是,如果这不可能,则XLS文件无论在哪里都可以使用。
Holgerwa

8
这怎么是正确的答案,没有用。
Stevie G

糟糕的答案-请参阅其他已批准的答案。
jmc

203

将其添加到CSV文件的第一行:

sep=;

要么

sep=,

这将覆盖系统设置(“列表分隔符”),并且Excel将正确打开文件。


4
+1在excel 2010中做到了,效果很好。
N里德

8
是否有其他此类设置的列表?告诉Excel使用,因为小数点分隔符通常与告诉它一起使用;作为列分隔符。
ZweiBlumen

5
完美适用于Excel,但请注意,其他电子表格或数据程序可能不支持此功能。它可能只是一个小问题,只是显示一个额外的第一行sep=sep=;在其中,但一些自动化程序或脚本可能不希望额外的第一线,导致列标题或sep=;本身被解释为实际数据线。
Sygmoral

5
请注意这一点。如果您保存在Excel中,它将:-删除分隔符的规范-使用区域设置分隔符保存
-Bjinse

1
可以fwrite($fileHandle, 'sep=,' . "\r\n");fputcsvPHP 确认完全解决问题。
h2ooooooo,2014年

26

您可以使用文本导入向导。这并不在双击打开的工作,但是是我能拿出不参与lanugage设置搞乱最好的。

在Excel 2003中,转到菜单栏上的Data-> Import External Data-> Import Data(无法说出它在2007年的位置,我现在没有这个要处理)。查找并选择您的CSV文件。

当它打开时,您将获得Text Import Wizard,它允许您指定要使用的定界符。


在Outlook 2007上,转到“数据”选项卡并选择您的列,然后单击“数据工具”集上的“文本到列”按钮。
Hondalex

1
是的,这是一个解决方案。不幸的是,需要查看数据的用户不愿意这样做。他们可以处理“双击打开”操作,但无法执行任何更复杂的操作。我们试图对他们进行至少一点的教育,但他们拒绝了。
Holgerwa 2010年

1
@Holgerwa-在将文件提供给用户之前是否可以通过某种转换过程来运行它们?还是需要保持以分号分隔?其他人提出了这个建议,但是使用某种脚本将分号换成逗号应该是相当容易的(我建议不要使用简单的查找/替换,因为您不想在引号内进行转换)。
DMA57361 2010年

6

请参阅本文:
使用Excel打开CSV文件时遇到麻烦了吗?由于欧洲的区域设置,Excel中的逗号和分号问题

提供3种解决方案:

  • 将CSV文件扩展名更改为TXT(当您使用Excel打开TXT文件时,它将启动文本文件导入向导,您可以在其中选择定界符)
  • 将CSV文件中的所有“,”替换为“;”
  • 更改您的区域和语言设置

由于您仅在Windows区域设置中更改了列表分隔符值,因此请注意,文章说输入“。” Decimal Symbol和“。” List Separator

如果您对VBA感到满意,请参阅:

在Excel 2000中使用VBA打开以分号分隔的CSV文件,
并使用Excel导出和导入文本


我同意所有有效的选项,但不幸的是,这些CSV文件的用户在正常情况下不正常。.TXT导入将不起作用(请参阅我对DMA57361答案的评论),由于十进制分隔符问题,用逗号替换分号将不起作用,并且更改区域设置将不起作用,因为我无权访问使用的PC。用户将只双击文件,如果他们没有得到期望的结果,他们将抱怨并拒绝帮助解决问题。
Holgerwa

@Holgerwa:如果您不控制用户PC,那么您无能为力。因为我的另一个建议是将处理程序更改为.csv扩展名成为您自己的程序,该程序将(但会智能地)纠正定界符并调用Excel。
harrymc

@Holgerwa:请注意我上面关于区域设置的编辑。
harrymc

3

我尝试过的最好方法是按照以下方式设置计算机的区域设置:

  • 在“标准和格式”中选择“英语(美国)”;
  • 在“位置”中选择“美国”。

它对我有用,请尝试一下。


实际上,OP的问题恰恰相反。应更改为欧洲区域以逗号作为小数点符号,然后分号将成为列表分隔符。
yosh m

0

如果文件中没有其他逗号,则只需在分号上的文本编辑器中进行查找/替换,即可将它们转换为逗号。之后将其视为普通的csv文件。


这些CSV文件需要在不同的国家/地区使用(区域设置),在许多区域设置中,逗号是小数点分隔符而不是点。“标准”逗号分隔值文件将不起作用。我想这就是为什么将分号添加为CSV文件的有效分隔符的原因。
Holgerwa 2010年
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.