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

Hol*_*rwa 112 csv microsoft-excel

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

使用德语 Windows/Excel 设置,打开的文件显示正确,列在 csv 文件中存在分号的地方分开。

但是当我在(美国)英语 Windows/Excel 设置上做同样的事情时,只导入一列,显示整个数据,包括第一列中的分号。
(我没有可用于测试的英文设置,用户已经报告了该行为)

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

我该怎么做才能在英文设置中双击打开这些 CSV 文件?

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

小智 251

在 CSV 文件的第一行添加:

sep=;
Run Code Online (Sandbox Code Playgroud)

或者

sep=,
Run Code Online (Sandbox Code Playgroud)

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

  • 是否有其他此类设置的列表?告诉 Excel 使用,因为小数点分隔符通常伴随着告诉它使用;作为列分隔符。 (9认同)
  • 小心这一点。如果保存在 Excel 中,它将: - 删除分隔符的规范 - 使用区域设置分隔符保存 (7认同)
  • 适用于 Excel,但请注意,其他电子表格或数据程序可能不支持此功能。这可能只是一个小问题,只是显示一个额外的带有 `sep=` 或 `sep=;` 的第一行,但是一些自动化程序或脚本可能不期望额外的第一行,从而导致列标题或 ` sep=;` 行本身被解释为实际数据。 (6认同)
  • +1 在 excel 2010 中做到了这一点,并且效果很好。 (4认同)
  • 可以确认`fwrite($fileHandle, 'sep=,' . "\r\n");` 彻底解决了PHP中`fputcsv`的问题。 (2认同)

DMA*_*361 28

您可以使用文本导入向导。这不适用于双击打开,但这是我能想到的最好的方法,不涉及弄乱语言设置。

在 Excel 2003 中转到Data-> Import External Data->Import Data在菜单栏上(不能说它在 2007 上的位置,我目前没有它)。查找并选择您的 CSV 文件。

当它打开时,您会得到Text Import Wizard,它允许您指定要使用的分隔符。


har*_*ymc 6

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

它提供了 3 个解决方案:

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

由于您只更改了 Windows 区域设置中的列表分隔符值,我注意到文章中说要输入“.”。为Decimal Symbol和“,”为List Separator

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

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


lau*_*ent -4

那些文件被分发了?下载了?本地生成的?

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

  • 这怎么是正确答案呢,没用。 (26认同)
  • 糟糕的答案 - 请参阅其他赞成的答案。 (3认同)