在Excel中用逗号打开CSV的最简单方法


196

CSV文件会自动与Excel关联,但是当我打开它们时,所有行基本上都在第一列中,如下所示:

在此处输入图片说明

可能是因为Excel在考虑“逗号分隔的值”时实际上会搜索其他定界符(我认为这是分号,但并不重要)。

现在,当我已经在Excel中打开此文件时,是否有一个按钮或告诉它“重新打开该文件并使用逗号作为分隔符”的内容?

我知道我可以将数据导入到新的工作表等中,但是我特别要求提供以下帮助:我已经有了一个带逗号的CSV文件,并且我想在Excel中打开它而不创建新的工作簿或转换原始文件。


2
由于多种原因,除了分隔符外,让Excel使用默认设置打开CSV(或任何其他纯文本文件)是一个非常糟糕的主意。根据您的源文件,您将-破坏数据。我在这里写过一篇深入的文章:theonemanitdepartment.wordpress.com/2014/12/15/…–
Wouter

4
很难理解Microsoft内部必须发生什么,以至于Excel仍然无法像这样打开CSV文件。它也以惊人的方式打破数字等。甚至JavaScript都不会隐式地进行糟糕的转换。
usr

对不起,我很抱歉。但是您的第一行没有任何逗号的事实很可能导致Excel放弃尝试
patricktokeeffe 17/12/22

只是;用作定界符,双击打开文件会将其分离在MS Excel的列中。
Hrvoje T

Answers:


179

转到“ 数据”选项卡, 然后在数据工具下选择“ 文本到列”,然后选择“ 定界”并单击“ 下一步”。然后选择逗号作为定界符并单击完成

在此处输入图片说明


55
在Windows资源管理器中双击* .csv之后,您每次都要这样做吗?我以某种方式无法相信没有更简单的方法,尤其是如果Excel将自身与* .csv文件扩展名关联。
Borek Bernard'3

3
通常,当您打开文件时,应该会弹出一个向导,使您执行此过程,但是如果没有,则可以通过这种方式进行。您还可以从文本转到数据-获取外部数据,然后从此处运行导入向导。
Raystafarian 2012年

13
这就是问题所在,我不想导入任何数据,我正在打开一个完全有效的CSV文件,Excel甚至将其与之关联。但是,好的,如果那样的话,我可能需要找到其他东西来编辑CSV文件。
Borek Bernard '03年

2
是的,它的PITA与Excel 2003相同。我还必须使用Data \ Import。本身并不是真正的问题,但是我每年只进行两次进口,所以我经常忘记并尝试先进行File / Open ;-(
Jan Doggen 2014年

1
您可以@gstackoverflow,只需选择A列,然后执行此操作。
汤姆(Tom)

162

放置:

sep=<delimeter>

因为您的csv文件的第一行会自动告诉Excel使用该字符作为分隔符,而不是默认的逗号。

例如:

sep=|
COLUMN1|COLUMN2
data,1|data2
...

将导致管道(|)用作分隔符而不是逗号,而用户不必先通过导入向导进入。


7
为了在Excel 2013中正常工作,您必须取消签 Use system separatorsOptions>Advanced
Michael Field

1
可以用类似的方式定义小数点分隔符吗?我希望它是.,例如,1.5但是在我的系统中.是数千个的分隔符。
CGFoX

2
即使我已选中“使用系统分隔符”,这也对我有用。没有其他解决方案对我有用。
敬畏

通过选中“使用系统分隔符”来确认这在Excel 2016中有效。这很棒。
巴斯

完美解决一个愚蠢的问题!(Excel应该能够识别使用的分隔符,或者至少要问我,然后让我决定!) 接下来:是否可以强制Excel也使用另一个字符集?我所有的CSV都使用UTF-8,但是Excel尝试将其打开为“ Macintosh”,这给我带来了很多问题!
qualbeen

51

我不知道您是否能够解决此问题,但我也遇到了同样的问题,经过一些调查后对其进行了整理。

原来这是一个地区性的问题;

进入控制面板-> 区域设置 -> 高级设置,然后将列表分隔符更改为逗号

在我更改为Windows 8后,我的南非设置为分号。在将其更改为逗号后,所有的CSV文件都可以在Excel 2013中正确打开。

希望这可以帮助。

补充说明:
我使用了与Lèsemajesté相同的步骤,但是我还将Decimal符号从逗号(,)更改为句号(。),这解决了我的问题。

这是因为,默认情况下,Windows 8使用逗号作为十进制符号,而在必须同时使用字符作为分隔符和十进制符号时,Excel会感到困惑。


已经这样设置,并被excel忽略。仍不以逗号分隔。
Elliot 2014年

Ir可能至少需要注销才能生效。
Gert van den Berg

更改小数点后为我工作,谢谢!
詹姆斯·卡梅隆

1
好吧,我仍然认为Excel使用区域设置来读取文件格式真是令人愤慨!
敬畏

谢谢。这种设置为我解决了一个巨大的问题。Excel是如此愚蠢!
Moha

19

这是对我有用的-这是这里的一些答案的组合。

(注意:我的PC使用的是捷克语格式设置,该格式设置数字的格式如下:1 000,00,即逗号用作小数点分隔符,空格用作千位分隔符。系统设置中的默认列表分隔符为;。)

  1. 我在区域->其他设置中将系统列表分隔符更改为逗号
  2. 在Excel 2013中,我转到选项->高级且未选中使用系统分隔符(在“编辑选项”下,这是第一部分)
  3. 在Excel.中将小数点分隔符设置,将千位分隔符设置为,(千位分隔符可能无关紧要,但我想使其与美国格式保持一致)

步骤2 + 3的替代方法是在系统设置中更改这些设置(步骤1),但我通常希望根据捷克语言环境设置数字格式。

缺点:在Excel中,我现在需要使用美国语言环境(即使用点而不是逗号)输入十进制数字。感觉有点不自然,但对我来说是可以接受的折衷方案。幸运的是,我的数字键盘上的逗号键自动变为了点号键(并且仅在Excel中-其他应用仍会输出逗号)。


它不适用于Excel 2010 / cz :-(
Leos Literak 2014年

@LeosLiterak:虽然我只是在Excel 2013中尝试了,但它确实有效。
Sk8erPeter

10

显然,Excel使用Windows 7区域设置作为CSV的默认分隔符(默认情况下显然是一个选项卡)。您可以像这样更改该设置

但是,我不知道这还会有什么其他影响。我想,如果您计算机上的所有CSV文件都用逗号分隔,那么应该没有任何问题。但是,如果您有另一个也可能使用CSV文件的程序(可能是Microsoft),并且通常使用使用其他定界符格式化的CSV,则可能会出现问题。

例如,如果Outlook使用制表符分隔的CSV导入/导出联系人,并且您从外部来源(Gmail,另一台计算机等)接收到此类CSV,则更改此系统范围的设置可能会阻止Outlook打开这些制表符分隔的CSV。


3
我尝试更改“区域和语言设置”>“格式”>“其他设置”>“列表分隔符”,但是,它对在Excel中打开CVS文件没有影响。因此,不幸的是,这不是解决方案。
Borek Bernard

2
与Excel 2010和Windows 7相同。在我的设置中已经为,并且Excel仍默认为tab。
rhsatrhs 2012年

知道我们是否可以在“控制面板”的此框中输入2个不同的字符吗?例如;,,允许两个字符都用作列表分隔符?
Dzhuneyt 2014年

7

LibreOffice Calc具有非常高级的 csv过滤器,可让您选择分隔符,格式和编码。我广泛处理各种格式的数据,并且经常需要将这些数据以Excel格式发送给用户。我使用LibreOffice Calc将csv文件转换为所需的格式,然后另存为xls。

这可能无法回答如何在Excel中轻松实现它,但可以回答如何轻松做到这一点,特别是因为注释中的OP建议使用除excel之外的其他选项是可以接受的选择。


4

Excel 2010-除了验证您的“区域高级设置”之外,请确保检查“ Excel高级”设置:

文件->选项->高级

确保选中“使用系统分隔符”。


2
或者,当然,如果您要导入与您的区域设置不同的内容,请确保选中它。:-)但是:很高兴知道这个设置存在;我以前从未听说过。
2014年

1
这些设置似乎只影响数字分隔符,而不影响列表分隔符。
Borek Bernard 2014年

3

困惑的分步指南:

  1. 按Windows键
  2. 输入“ intl.cpl ”,然后按Enter。
  3. 点击“ 其他设置 ”。
  4. 转到“ 数字 ”标签:
  5. 小数符号更改为
  6. 将“ 数字分组符号 ”更改为空格
  7. 将“ 列表分隔符 ”更改为逗号
  8. 转到“ 货币 ”标签:
  9. 小数符号更改为
  10. 将“ 数字分组符号 ”更改为空格

如果您始终使用自己创建的.CSV文件,那就很好。但是,当您从使用逗号作为分隔符的其他人那里获取文件时,此方法将无效。
stevenvh


0

对于我的系统,设置已经设置为此处建议的设置(小数点符号设置为。(点),列表分隔符设置为,(逗号),但是导入从其他应用程序导出的CSV文件时仍然出现显示问题。

经过一番尝试和错误之后,我找到了一种解决方案,可以在正确的视图中打开每个CSV文件。

这是在带有Windows 8的Excel 2013中对我有效的方法:

控制面板>时钟,语言和区域>区域>其他设置>列表分隔符设置为(逗号和半冒号)->单击“应用”,然后查看是否可行。


0

在Excel的“ 数据”选项卡的“ 获取外部数据”子部分中,单击“ 来自文本 ” ,然后在向导中导入CSV。


0

我知道答案已经被接受,但是要检查的一项是CSV文件的编码。我有一个可生成CSV文件的Powershell脚本。默认情况下,它将它们编码为UCS-2 Little Endian(根据Notepad ++)。它将在Excel中的单个列中打开文件,而我必须执行“ 文本到列”转换以拆分列。更改脚本以将输出编码为与“ ASCII”相同(每个Notepad ++不带BOM的UTF-8),使我可以直接将列分开的CSV文件打开。您也可以在Notepad ++中更改CSV的编码。

  • 菜单编码 > 转换为不带BOM的UTF-8
  • 保存CSV文件
  • 在Excel中打开,应拆分列

不带BOM的ASCII和UTF-8不是同一回事。实际上,就像UTF-8包含在标准中一样,ASCII无缝地适用于不带BOM的UTF-8。一旦没有被ASCII覆盖的字符出现,它就可以只输出ANSI或UTF-8。。。如果您输出的ASCII内容从来没有,那么就可以了
sinni800 2015年

0

使用更新的Excel版本2010,您可以将.CSV文件作为文本文件打开(菜单:文件,打开或Control-O)。然后,您可以直接获得该向导,就像使用LibreOffice Calc一样容易,您可以在其中选择正确的字段定界符。

在此处输入图片说明

这仅适用于扩展名为.CSV的文件。我的应用程序是生成带有.ACC扩展名的CSV输出,然后尝试使用上述方法在excel中打开它,从而导致您进入完全不同的excel角落:-(

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.