Ошибка выравнивания по центру ExcelWriter при открытии выходного файла

#python #excel #alignment #pandas.excelwriter

Вопрос:

Этот код работает хорошо:

 excel_path = os.path.join(path,'Report For Yr ' str(date.today().year) ' Mth '  mth '.xlsx')

writer = pd.ExcelWriter(excel_path, engine='xlsxwriter')

df2.to_excel(writer, sheet_name='report')

workbook  = writer.book

worksheet = writer.sheets['report']

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

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

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

worksheet.set_column('B:I', 10, format1)

worksheet.set_column('J:J', 10, format2)

worksheet.set_column('L:L', 10, format2)

worksheet.set_column('K:K', 10, format3)

writer.save() 
 

Я пытаюсь выровнять центр для определенных столбцов. Код был выполнен без каких-либо ошибок, но при открытии файла excel возникла ошибка:

Excel не может открыть файл, так как недопустимый формат или расширение файла. Убедитесь, что файл не поврежден и что расширение файла соответствует формату файла.

Я попытался с помощью рабочего кода изменить это:

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

получено сообщение об ошибке

Я попытался с помощью рабочего кода изменить это:

 worksheet.set_column('B:I', 10, format1,{'align': 'center'})
 

также появилось сообщение об ошибке

Кто-нибудь может помочь?

Ответ №1:

Я попытался с помощью рабочего кода изменить это:

Это неправильный синтаксис. Вы должны передать один набор значений. Подобный этому:

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

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

1. Это сработало! Спасибо @jmcnamara за помощь.