我正在用Python的xlwt编写Excel电子表格,我需要使用“。”格式化数字。千万分隔符,就像巴西葡萄牙语一样。
我试过了:
style.num_format_str = r'#,##0'
它将千位分隔符设置为','
。
如果我尝试设置num_format_str to '#.##0'
,我会将数字格式化为1234.000而不是1.234。如果我在OpenOffice中打开n文档并格式化单元格,我可以将单元格的语言设置为“Portuguese(Brazil)”,然后OpenOffice将格式代码显示为"#.##0"
,但我找不到将细胞的语言设置为巴西葡萄牙语的方法。
有什么想法吗?
答案 0 :(得分:6)
千位分隔符(以及小数“点”等)以与语言环境无关的方式记录在XLS文件中。记录的千位分隔符是逗号。它的显示方式取决于用户的语言环境。 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