我正在使用 Python 的 xlwt 编写 Excel 电子表格,我需要使用“.”对数字进行格式化。作为千位分隔符,就像在巴西葡萄牙语中一样。
我试过:
style.num_format_str = r'#,##0'
并将千位分隔符设置为','。
如果我尝试将 num_format_str 设置为“#.##0”,我会得到格式化为 1234.000 而不是 1.234 的数字。如果我在 OpenOffice 中打开 n 文档并格式化单元格,我可以将单元格的语言设置为“葡萄牙语(巴西)”,然后 OpenOffice 将显示格式代码为 “#.##0”,但我找不到将单元格的语言设置为巴西葡萄牙语的方法。
有什么想法吗?
请您参考如下方法:
千位分隔符(和小数点等)以与语言环境无关的方式记录在 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
