Экспорт сумм с использованием пробела в качестве разделителя '000 - PullRequest
1 голос
/ 03 июля 2019

Я хотел бы, чтобы все суммы, экспортируемые в Excel, использовали пробел в качестве разделителя «000» и «,» для десятичного числа.Например: «3 257 132,54» (общий числовой формат в Европе)

Я попытался адаптировать пример, приведенный на xlsxwriter.readthedocs.io:

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

следующим образом

format1 = workbook.add_format({'num_format': '# ##0,00'})

Я использую код из xlsxwriter документа.Я только что изменил разделитель '000 и десятичную точку:

# Add some cell formats.
format1 = workbook.add_format({'num_format': '#,##0.00'})

# Set the column width and format.
worksheet.set_column('B:B', 18, format1)

Я получаю очень удивительный результат.Приведенный выше пример будет отображаться в Excel как: 3257 132,54.Почти хорошо, но разделитель 000 используется только один раз для тысяч, но не для миллионов или миллиардов.(примечание: запятая как десятичный разделитель работает нормально)

Есть трюк, который я пропустил?

1 Ответ

1 голос
/ 03 июля 2019

Вам просто нужно использовать любой числовой формат, который вы использовали бы в Excel для этого. Вероятно, что-то вроде ### ### ###.00 (хотя у него нет запятой для десятичной дроби):

import xlsxwriter

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

format1 = workbook.add_format({'num_format': '### ### ###.00'})

worksheet.set_column('B:B', 18, format1)

worksheet.write(0, 1, 123.123)
worksheet.write(1, 1, 1234.123)
worksheet.write(2, 1, 12345.123)
worksheet.write(3, 1, 123456.123)
worksheet.write(4, 1, 1234567.123)
worksheet.write(5, 1, 12345678.123)

workbook.close()

Выход:

enter image description here

Вы можете найти нужный вам числовой формат, установив его в Excel, а затем проверив, что это такое, в пользовательском разделе диалогового окна числового формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...