Установите символ валюты при записи с помощью xlsxwriter

У меня возникли проблемы с написанием символа валюты, который я хочу, в своих значениях валюты с помощью xlsxwriter.

Я следовал руководству здесь и могу записывать значения валюты с помощью правильное форматирование и знак доллара (будь то из учебника или настроек Excel по умолчанию, я не уверен).

Это работает:

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

И он выводит значение валюты со знаком доллара.

$1,000.00

Но если я попытаюсь вставить свою собственную валюту, скажем, R:

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

Я получаю это:

R1000

Как установить символ валюты с помощью xlsxwriter?


person Niel    schedule 17.09.2015    source источник
comment
Что вы увидите, если удалите R? 1000 или 1,000.00? Что, если вы поставите пробел после R или поместите R после цифр?   -  person John Zwinck    schedule 17.09.2015
comment
1,000.00, 1000, 1000 соответственно.   -  person Niel    schedule 17.09.2015
comment
Да, R и форматирование исчезают, странно.   -  person Niel    schedule 17.09.2015


Ответы (3)


Пожалуйста, попробуй:

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

format.set_num_format()

person pnuts    schedule 17.09.2015
comment
Как добавить аналогичный чек для номеров разных размеров, таких как 1000 и 1 24 546 руб. Я пытаюсь так, но это не работает-‹br /› num_format('R #,##0;[›=100000]R #,##,##0') Кстати, вы можете обновить ссылка в вашем ответе :) - person pragmatic; 21.05.2019

Попробуйте что-то вроде следующего:

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. .

person jmcnamara    schedule 17.09.2015
comment
Спасибо за ваш ответ, я не тестировал его с отрицательными значениями, я посмотрю. - person Niel; 17.09.2015
comment
Да, это код локали. Вот почему я бы рекомендовал получить строку правильного формата непосредственно из Excel. - person jmcnamara; 17.09.2015

Отлично работает во всех версиях

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')
person Hari Prasanth    schedule 24.12.2019