用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