Часть проблемы была в том, что мне нужно было явно установить writer.book
. Поэтому добавьте строку writer.book = workbook
после определения writer
. Также добавление engine="openpyxl"
в ExcelWriter избавило от последующей ошибки. В целом, похоже, это работает:
workbook = load_workbook(input_excel_filename)
writer = pd.ExcelWriter(input_excel_filename, engine="openpyxl")
writer.book = workbook
writer.sheets = dict((ws.title, ws) for ws in wb.worksheets)
data.to_excel(writer, sheet_name="Data", index=False)
writer.save()
writer.close()
Я не смог заставить его работать с условным форматированием, но настройка форматирования в электронной таблице Excel, похоже, действительно работает, потому что даже если данные переписаны, форматирование остается неизменным .