Назначить ячейке формат Excel по умолчанию

#xlsxwriter

#xlsxwriter

Вопрос:

Я использую XlsxWriter для форматирования ячеек, содержащих строки в формате валюты, следующим образом:

 currency_cell_format = self.workbook.add_format()
currency_cell_format.set_num_format('_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)')
self.worksheet.write_string(row=r, col=c, string=value, cell_format=currency_cell_format)
  

Ожидаемый результат заключается в том, что типом формата при просмотре листа в Excel должен быть Number (конкретно $ ). Похоже, что визуальное форматирование отсутствует (однако тип является пользовательским), а значения выровнены по левому краю (вместо обычного выравнивания по правому краю, когда ячейка имеет числовой формат.

Как я могу присвоить ячейкам типы формата Excel по умолчанию с помощью Xslxwriter, чтобы столбцы имели числовой формат (вместо пользовательского), что позволяет выполнять такие функции, как вычисления?

Примечание: Применение полужирного шрифта работает правильно. Я попробовал значения шестнадцатеричного индекса, но ячейки остались неформатированными.

Ответ №1:

В Excel присвоение числового формата строке не имеет эффекта. То же самое применимо при использовании XlsxWriter, особенно если вы используете write_string() .

Вы должны преобразовать свои данные в число, если оно числовое, а затем применить формат с помощью write_number() или write() .