用xlwt编写单元格时如何具有本地化风格

我正在用Python的xlwt编写一个Excel电子表格,我需要使用“。”来格式化数字。 成千上万的分隔符,就像巴西的葡萄牙语一样。

我努力了:

style.num_format_str = r'#,## 0'

它将千位分隔符设置为“,”。 如果我尝试将num_format_str设置为“#。## 0”,我会将数字格式设置为1234.000而不是1.234。 如果我在OpenOffice中打开文档并格式化单元格,我可以将单元格的语言设置为“葡萄牙语(巴西)”,然后OpenOffice将显示格式代码为“#。## 0”,但是我没有find一种将单元格的语言设置为巴西葡萄牙语的方法。

有任何想法吗?

千位分隔符(以及小数“点”等)以独立于语言环境的方式logging在XLS文件中。 logging的千位分隔符是逗号。 如何显示取决于用户的区域设置。 OpenOffice calc允许用户覆盖默认的语言环境(工具/选项/语言/区域设置)。

使用xlwt,将你的num_format_str写成"#,###.00" ,将你的数据写成float("1234567.89") ,如下所示:

 import xlwt b = xlwt.Workbook() s = b.add_sheet('x') style = xlwt.easyxf("", "#,###.00") s.write(0, 0, 1234567.89, style) b.save("locale_fmt_demo.xls") 

用OO Calc打开输出文件并尝试各种区域设置。 我得到了这些结果:

 English (Australia): 1,234,567.89 Portuguese (Brazil): 1.234.567,89 French (France): 1 234 567,89