#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 за помощь.