使用 xlsxwriter 写入时设置货币符号

Set the currency symbol when writing with xlsxwriter

我在使用 xlsxwriter.

的货币值中写入我想要的货币符号时遇到问题

我按照教程 here 进行操作,我能够使用正确的格式和美元符号写出货币值(无论这是来自教程还是 excel 我的默认设置我不确定)。

这个有效:

money = workbook.add_format({'num_format':'$#,##0.00'})

然后打印出带有美元符号的货币值。

,000.00

但如果我尝试插入我自己的货币,假设 R:

money = workbook.add_format({'num_format':'R#,##0.00'})

我明白了:

R1000

如何使用 xlsxwriter 设置货币符号?

请尝试:

num_format('"R" #,##0.00')  

format.set_num_format()

尝试如下操作:

import xlsxwriter

workbook = xlsxwriter.Workbook('money_format.xlsx')
worksheet = workbook.add_worksheet()

money_format = workbook.add_format({'num_format': '[$R]#,##0.00'})

worksheet.write('A1', 1234.56, money_format)

workbook.close()

确定所需数字格式的最佳方法是格式化 Excel 中的单元格,然后对其进行编辑并查看自定义格式。

如果正值和负值的处理方式不同,可能会像 [$R-431]#,##0.00 或相当复杂的东西。

更新:另请参阅 XlsxWriter 格式文档的 Number Format Categories 部分。

在所有版本中完美运行

currency_id = fields.Many2one('res.currency', 'Currency',default=lambda self: self.env.user.company_id.currency_id)

style5 = xlwt.easyxf('font:bold True;', num_format_str=self.currency_id.symbol + '#,##0.00')