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

Tim*_*fey 52 csv microsoft-excel microsoft-excel-2010

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

1,2,3,4
1,2,3,4
Run Code Online (Sandbox Code Playgroud)

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

这样的事情可能吗?

PS:我可以随意更改分隔符。

Ste*_*han 78

可悲的是,微软决定在不同的本地化使用不同的分隔符CSV(代表ç OMMA 小号eparated V alues)。在国际范围内工作时,这尤其令人讨厌。

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

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

注意:这是 Microsoft EXCEL 特定的。其他电子表格程序可能不理解这一点。

  • 这打破了我对 utf 字符的支持。中文和俄文字符显示不正确。 (3认同)

nix*_*xda 52

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

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

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

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

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

    COMMA               SEMICOLON                     TAB 
Run Code Online (Sandbox Code Playgroud)

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

和你的 Excel 不一样?我是这么想的。

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

    COMMA        SEMICOLON                   TAB 
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 这个答案很好,但我觉得微软很可悲。您在 Numbers 中打开一个 csv,它可以正确打开。您在 Google 表格中打开它并正确打开。然后你在 Excel 中打开它,这是你唯一支付的费用,然后......什么都没有。那些从未设置过列表分隔符的人呢?现在我需要浪费时间让它工作,因为“逗号”在这个“csv”中没有任何意义。非常令人沮丧。 (6认同)

Joe*_*orn 17

使用制表符代替逗号。如果这不起作用,请为您的制表符分隔文件添加一个 xls 扩展名。

  • “PS:我可以随意更改分隔符。” 使这个答案不那么有效 (4认同)
  • 这不会回答如何加载 CSV 文件,因为 C 代表逗号。 (3认同)