立即通过Excel(美国和欧盟)创建csv

时间:2014-11-07 13:05:15

标签: excel csv internationalization

在许多欧盟国家,逗号','用作小数点分隔符,而在美国用点''。使用。

CSV(逗号分隔值)文件应该使用逗号分隔单元格值。但是,通常会使用制表符'\ t'或其他字符。

有趣的是,Excel如果使用逗号作为小数分隔符在欧盟国家/地区使用Microsoft Excel保存.csv文件,则用于分隔单元格值的值不是转义的逗号,而是分号“;”。在网上看来,如果你在美国,Excel会使用正确的逗号保存.csv文件(我无法验证这一点)。

我正试图找到一种方法来创建一个可以被Excel识别的csv文件,无需用户操作,无论是在欧盟还是美国。

以下是使用带有意大利语语言环境的Excel的示例

Excel cell test

以上,保存为.csv(MS-DOS),转换为

foo;foo bar;
foo'bar;"foo""bar";
foo,bar;foo.bar;
foo:bar;"foo;bar";
foo/bar;foo\bar;
"foo
bar";foo|bar;
foo;bar;foobar

this is to make the empty line appear

根据本地“列表分隔符”,可能无法正确识别。

I've read新Excel 2013需要将sep=;设置为第一行才能正常工作。这是一个丑陋的黑客,但它似乎也适用于Excel 2010(除了它在保存时被覆盖)...

如果您将其保存为csv,上述文本是否适合您?

是否有一种不太常见的方法告诉Excel哪个字符是单元格分隔符,而无需用户进行设置?

感谢。

1 个答案:

答案 0 :(得分:0)

时间回到视觉之前的某个时间,并从过去获取命令。它将涉及您使用VBA手动编写文件,但它具有您期望的标准:Write

Open "c:\tmp\myfile.csv" for output as #1

for i=1 to 100
    write #1,range("A"&i),range("B"&i),range("C"&i)
next i

close #1

你必须做一些手工工作 - 它不会将单引号翻译成双引号,但其余部分是按照需要:

  • Write#语句在字符串写入文件
  • 时在字符串和引号之间插入逗号
  • 始终使用句点作为小数分隔符来写入数字数据。
  • 日期写成#yyyy-mm-dd hh:mm:ss#