У меня есть файл Excel размером около 37 МБ. Я читаю файл pd.read_excel()
и обновляю спецификации c листов Excel с openpyxl и пишу обратно. После записи размер файла уменьшается до 16 МБ. Файл содержит функции на некоторых листах. Но, когда файл обновляется один раз, я не могу прочитать значения из листов, которые я прочитал значения ранее. Я думаю, это потому, что функции не обновляются после записи. Если я открою файл и снова сохраню его, значения будут доступны для чтения.
Я искал способы обновить sh файл excel после записи. Но для всех найденных методов требуется установка Excel на машину. Хотелось бы узнать, есть ли способ , мы можем обновить sh файл Excel, не открывая файл с помощью python.
Я обновляю файл следующим образом:
# new dataframe with same columns
df = data_frame
writer = pd.ExcelWriter(folder_path, engine='openpyxl')
# try to open an existing workbook
writer.book = op.load_workbook(folder_path)
# copy existing sheets
writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
# read existing file
reader = pd.read_excel(folder_path, sheet_name=sheet_name)
reader = reader.dropna(axis=0, how='all', thresh=None, subset=None, inplace=False)
# write out to the sheet
df.to_excel(writer, sheet_name=sheet_name, index=False, header=False, startrow=len(reader) + 2)
writer.save()