Формат чисел Excel с двумя десятичными знаками с помощью python

#python #excel #formatting #decimal

#python #excel #форматирование #десятичный

Вопрос:

Я хотел бы отформатировать числа в экспорте Excel с 2 десятичными знаками, но только для просмотра, и сохранить исходные значения позади, как на картинке, число будет отображаться с двумя десятичными знаками, но при нажатии на ячейку будет показано целое значение. Я использовал XlsxWriter и add_format, и он форматируется с 2 десятичными знаками, но не сохраняет исходные значения. Может кто-нибудь подсказать, как это можно сделать и возможно ли это?

Пример изображения в Excel:

пример изображения в Excel

Ответ №1:

Я использовал XlsxWriter и add_format, и он форматируется с 2 десятичными знаками, но не сохраняет исходные значения.

Этого не может быть. XlsxWriter никак не усекает числа, которые он обрабатывает, кроме форматирования их %.16G так же, как это делает Excel.

Например:

 import xlsxwriter

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

my_format = workbook.add_format({'num_format': '0.00'})

worksheet.write(0, 0, 29.159573953, my_format)

workbook.close()

 

Вывод:

введите описание изображения здесь

Как вы можете видеть, полное число отображается в строке формул.

Комментарии:

1. Я пытаюсь написать фрейм данных, и я использовал приведенный ниже код: format1 = workbook.add_format({'num_format': '#,##0.00'}) worksheet.set_column('U:AC',18, format1) также: df.to_excel(writer, sheet_name="ABC", startrow=4, startcol= 3, float_format="%.2f") и результат является первым изображением, которое я опубликовал.

2. Вам нужно вставить этот код в вопрос. Однако, похоже float_format="%.2f" , что в Pandas df.to_excel() усекаются числа с плавающей запятой. Оставьте это, и вы должны получить желаемый результат.