Skip to main content
 首页 » 编程设计

python之使用 xlwt 编写单元格时如何具有本地化样式

2025年05月04日21JustinYoung

我正在使用 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