Удаление листа excel с ошибкой openpyxl поднять при открытии файла - PullRequest
0 голосов
/ 09 июля 2020

Я тестировал функцию openpyxl .remove (), и она работает с несколькими пустыми файлами.

Проблема: у меня есть более сложный файл Excel с несколькими листами, который мне нужно удалить. Если я удаляю один или два, он работает, когда я пытаюсь удалить три или более, Excel выдает ошибку при открытии файла.

Извините, у нас проблемы с получением информации в файле bla bla .. ...

логи, говорящие о проблемах с картинками

логи об ошибке 105960_01. xml?

Странно то, что речь идет о проблемах с изображениями, но у меня нет этой ошибки, если я не удалю 3 или более листов. И я не пытаюсь удалить лист с изображениями!

Еще более странно, это всегда номер, каждый файл можно удалить без проблем, но если я удалю 3 или более, Excel кричит на меня.

Дело в том, что это нормально, когда Excel «исправляет» «ошибку», но иногда Excel повторно инициализирует формат листов (размер ячейки, полужирный шрифт и длина символов и т. Д. c ...) и все терпит неудачу: (

плохой вид, которого я хочу избежать

Если у кого-то есть идея, у меня заканчивается творчество!

Для кода я использую только базовые c функции (здесь можно упростить, но было бы долго представлять больше ...).

INPUT_EXCEL_PATH = "my_excel.xlsx"
OUTPUT_EXCEL_PATH = "new_excel.xlsx"
wb = openpyxl.load_workbook(INPUT_EXCEL_PATH)
ws = wb["sheet1"]
wb.remove(ws)
ws = wb["sheet2"]
wb.remove(ws)
ws = wb["sheet3"]
wb.remove(ws)

wb.save(OUTPUT_EXCEL_PATH)
...