如何强制Excel以列中排列的数据打开CSV文件


32

我生成了一个扩展名为.csv的CSV文件,其中一行中的所有数据都用逗号分隔:

1,2,3,4
1,2,3,4

该文件通过电子邮件发送,我希望当客户打开文件时,她可以看到数据按列排列。

这样的事情可能吗?

PS:我可以自由更改分度计。


1
就我而言,除了将数据导入Excel外,您无能为力,因为Excel无法对数据本身的结构做出任何假设(例如,使用的分隔符,小数点格式或常规格式)数据的)。
slhck 2011年

@slhck请查看答案
Timofey

哦,我不知道Excel能够做到这一点。好东西。
slhck 2011年

1
只需双击CSV文件,即可打开Excel并正确显示该文件。我对么?
威尔逊

@wilson:必须关联Excel才能打开.csv文件,然后双击.csv文件,将启动excel
Timofey,

Answers:


10

使用制表符而不是逗号。如果不起作用,请为制表符分隔的文件指定xls扩展名。


感谢您的解决方案,我将.csv保留为文件扩展名
Timofey

在Mac(2017)上不适用于Excel 14.7.1
masukomi

3
“ PS:我可以自由更改分度计。” 使此答案的有效性降低
Paul Fijma

由于C代表逗号,因此无法回答如何加载CSV文件。
JBernardo

@JBernardo它曾经做过一次,但是今天您将在野外找到带有csv扩展名的文件,其中包含各种定界符:制表符,竖线,逗号,破折号,@,\ 0等。对或错,它们在那里,问题的一部分说“我可以更改分隔符”使此答案有效。
Joel

43

如果只是为了使每个系统csv 都可读,那么这里有一个未记录的技巧:在第一行中,write SEP=;。此行告诉EXCEL哪个字符用作分隔符(实际上,您可以使用任何(单个)字符(;,|@#'...))

注意:此行只是csv文件本身的一部分。它不会成为EXCEL中的一部分。这意味着,无论您定义要写入或导出的格式,都不会显示也不会写入。


这是救生员!在这里工作很棒!
Etienne Dupuis

最好的解决方案恕我直言,因为它应该与所有语言一起使用
mBardos

39

Excel的行为打开CSV文件时,在很大程度上取决于你的本地设置和使用list separatorRegion and language » Formats » Advanced。默认情况下,Excel将假定每个CSV都使用该分隔符保存。只要CSV不是来自另一个国家,这就是事实!

如果您的客户在其他国家/地区,那么他们可能会看到其他结果。

例如,在这里您看到德国的Excel将使用分号而不是像美国那样的逗号。 在此处输入图片说明

更让您感到困惑的是,该设置会干扰小数点符号,该小数点符号可以根据以下Excel Options » Advanced » Use system separators所示通过区域设置单独设置或通过区域设置单独设置。Excel不能使用与十进制制表符和列表分隔符相同的符号。它将自动使用逗号或分号作为备用分隔符。阅读更多

我将以您的示例创建3个文件。每个都有不同的分隔符,然后使用Excel打开它。

    COMMA               SEMICOLON                     TAB 

在此处输入图片说明在此处输入图片说明在此处输入图片说明

与您的Excel不同吗?我是这么想的。

因此,让我们将扩展名从相同的CSV文件手动更改为XLS,看看现在会发生什么。首先,Excel会发出警告,指出文件扩展名与内容不匹配,Excel会尝试猜测其中的内容。

    COMMA        SEMICOLON                   TAB 

在此处输入图片说明在此处输入图片说明在此处输入图片说明

结论: TAB +重命名+忽略警告=在每个系统上都赢了吗?
也许可以,但是对于您所在国家/地区以外的客户,我不太确定。

最好的方法是指示客户首先打开空白的Excel,然后转到Data » Get data from text并手动选择逗号作为分隔符


2
这个答案很好,但是我觉得微软很可悲。您在数字中打开一个csv,它可以正确打开。您在Google表格中将其打开,并且可以正确打开。然后,您在Excel中打开它,这是您唯一要付费的东西,什么都没有。那些从未设置列表分隔符的人呢?现在,我需要浪费时间尝试使其工作,因为“逗号”在此“ csv”中毫无意义。非常沮丧。
触摸

>该解决方案对我有效(Excel 2013)。我调整区域格式:我将点(。)设置为“小数点分隔符”,将逗号(,)设置为“千位分隔符”,并将逗号(,)设置为“列表分隔符” – cesargastonec 15年7月13日在16: 05
Alex78191

或者,您可以在Excel选项中更改小数点分隔符superuser.com/a/1470373
Alex78191

1

您可以将“ .csv”替换为“ .txt”,启动Excel并打开该.txt文件。然后,Excel将向您显示一个助手,您可以在其中指定使用“,”作为分隔符。然后,当您再次将此文件另存为.csv时,下次Excel将根据需要打开它。


0

在这种情况下,我使用的另一个解决方案是输出一个基本的HTML文件,而不是CSV文件。Excel可以打开它而不会出现错误。它也可以读取文件中的至少某些格式。


0

这是有史以来最愚蠢的答案,但是确实有效。我每天都使用CSV文件。我一直创建它们,并使用excel查看。今天,在经历了12年没有遇到这个问题之后,它发生在我身上。它不会打开csv文件并设置列格式。甚至我昨晚用excel创建的某些csv文件,也将在每一行打开为一列。

解决方案:检查任务管理器中是否有Excel.exe的所有打开的实例。杀死所有实例,然后尝试再次打开csv文件。

面容


0

在短期内,如果您只需要打开从其他国家/地区发送给您的CSV文件,

在写字板中打开文件,然后使用查找和替换来更改签发国使用过的每个分隔符(例如;),并用逗号替换。(例如,)。

只需检查发行国是否没有使用逗号代替另一个符号即可(例如,在西班牙,他们使用逗号将小数点后的位置替换为逗号,因此您必须先找到逗号并将其替换为小数点后再查找并替换另一个符号与逗号)。

这不是一个长期的解决方案,但是如果您急于无法在工作中访问控制面板,则足以使文件本身可读。


0

我遇到了同样的问题。我有一个Excel错误解析的CSV文件,需要导入向导。

简单的解决方法是将CSV重命名为TXT,向导出现,帮助正确识别列结构。


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.