У меня есть лист excel, который поступает из фрейма данных pandas. Затем я использую Xlsxwriter для добавления формул, новых столбцов и форматирования. Проблема в том, что я, по-видимому, умею форматировать то, что я написал, используя xlsxwriter, и ничего из базы данных. Так что я получаю что-то вроде этого half formatted tableXlsxwriter - Устранение неполадок pandas dataframe cells с помощью xlsxwriter
Как видно из изображения, два столбца из кадра данных остаются нетронутыми. У них должно быть какое-то форматирование по умолчанию, которое переопределяет мой.
Поскольку я не знаю, как преобразовать рабочий лист обратно в фреймворк данных, код ниже явно совершенно не прав, но это просто дать представление о том, что я ищу.
export = "files/sharepointExtract.xlsx"
df = pd.read_excel(export)# df = dataframe
writer = pd.ExcelWriter('files/new_report-%s.xlsx' % (date.today()), engine = 'xlsxwriter')
workbook = writer.book
# Code to make the header red, this works fine because
# it's written in xlsxwriter using write.row()
colour_format = workbook.add_format()
colour_format.set_bg_color('#640000')
colour_format.set_font_color('white')
worksheet.set_row(0, 15, colour_format)
table_body_format = workbook.add_format()
table_body_format.set_bg_color('blue')
for row in worksheet.rows:
row.set_row(0,15, table_body_format)
Этот код дает ошибку атрибутов, но даже без цикл мы просто получить то, что можно увидеть на изображении.
Можете ли вы включить часть кода, в котором вы также пишете данные, чтобы мы могли видеть, как это относится к стилю? – ASGM
«У них должно быть какое-то форматирование по умолчанию, которое переопределяет мой». Это верно. В Pandas по умолчанию используется форматирование столбца/заголовка по умолчанию, которое отменяет форматирование строк и столбцов, применяемое через интерфейс XlsxWriter. Насколько я знаю, нет никакого публичного api для изменения этого форматирования (кроме 'datetime_format' и' date_format'). – jmcnamara
@ASGM Обновлен код для включения, где я пишу данные – King