gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:26 25 4
gpt4 key购买 nike

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

关于python - 使用 xlwt 编写单元格时如何具有本地化样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com