Я использую следующий метод для перезаписи листа Excel, содержащего источник данных (оставляя все остальные листы с опорными точками, диаграммами и т. Д. c.):
from openpyxl import load_workbook
def excel_rewriter(data_source, df_name, target_file):
book = load_workbook(data_source)
writer = pd.ExcelWriter(data_source, engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df_name.to_excel(writer, 'Data', index=False)
writer.save()
os.rename(data_source, target_file)
Исходный файл является источником данных, где я меняю таблицу данных своим DF (df_name) и изменяю имя файла на target_file.
Моя проблема в том, что таблица данных в файле Excel не "стирает" себя раньше поменять местами, так что если таблица, которая была раньше в Таблице данных, содержала больше столбцов или строк, чем DF, который я вставляю в лист, другие строки просто остаются на месте, что портит результат.
Как можно изменить этот метод, чтобы он сначала удалял таблицу данных, прежде чем поставить на место мой DF?
Спасибо, заранее!