我生成了一个扩展名为.csv的CSV文件,其中一行中的所有数据都用逗号分隔:
1,2,3,4
1,2,3,4
该文件通过电子邮件发送,我希望当客户打开文件时,她可以看到数据按列排列。
这样的事情可能吗?
PS:我可以自由更改分度计。
我生成了一个扩展名为.csv的CSV文件,其中一行中的所有数据都用逗号分隔:
1,2,3,4
1,2,3,4
该文件通过电子邮件发送,我希望当客户打开文件时,她可以看到数据按列排列。
这样的事情可能吗?
PS:我可以自由更改分度计。
Answers:
使用制表符而不是逗号。如果不起作用,请为制表符分隔的文件指定xls扩展名。
如果只是为了使每个系统csv
都可读,那么这里有一个未记录的技巧:在第一行中,write SEP=;
。此行告诉EXCEL哪个字符用作分隔符(实际上,您可以使用任何(单个)字符(;,|@#'
...))
注意:此行只是csv
文件本身的一部分。它不会成为EXCEL中的一部分。这意味着,无论您定义要写入或导出的格式,都不会显示也不会写入。
Excel的行为打开CSV文件时,在很大程度上取决于你的本地设置和使用list separator
下Region 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
并手动选择逗号作为分隔符
与此相关的答案-尤其是对于Excel带有Excel识别逗号的MacOS / OSX问题:
在Excel 2019中无法正确打开CSV-无法解析列: https : //superuser.com/a/1506042/1116939