Openpyxl — запись и существующие ошибки файла Excel и удаление всех формул [дубликат]Python

Программы на Python
Anonymous
Openpyxl — запись и существующие ошибки файла Excel и удаление всех формул [дубликат]

Сообщение Anonymous »

У меня есть большой файл Excel xlsx с 20 или более вкладками. Этот простой фрагмент кода создает новый рабочий лист и записывает в него данные. При открытии файла он сообщает об ошибках, и я обнаруживаю, что он удалил все формулы на каждом листе.
До сих пор с книгой все было в порядке, она существует уже много месяцев без каких-либо проблемы
Ошибки Excel
"мы обнаружили проблему с некоторым содержимым в TEST_FILE.xlsx Хотите нам попытаться восстановить как можно больше?
и т. д.
Нажмите «Да»
" Excel удалось открыть файл, исправив или удалив нечитаемое содержимое"
"Удалена функция: именованный диапазон из части /xl/workbook.xml (книга) "
Проблема повторяется после каждой попытки запустить код. Создается новый рабочий лист, и на него записывается тестовая строка «Новые данные 123456».

Код: Выделить всё

# import openpyxl module
import openpyxl

path =  ('TEST_FILE.xlsx')

wb_obj_1 = openpyxl.load_workbook(path, data_only= True)

sheet_1 = wb_obj_1['2024_Results']

sheet_2 = wb_obj_1.create_sheet("TEST", 0)

row = sheet_1.max_row
column = sheet_1.max_column

print(' ')
print("Total Rows:", row)
print("Total Columns:", column)

c = sheet_2['A7']
c.value = "New Data 123456"

wb_obj_1.save(path)

python 3.12.0
openpyxl v 3.1.2 (я пробовал более ранние версии с тем же результатом)
Excel версии 2404 (сборка 17531.20152)
Windows 10 Home 22H2 (сборка ОС 19045.4412
Как описано выше, я ожидал, что будет создан лист и записаны на него данные. Я не ожидал ошибок при открытии файла.
Мой вопрос не имеет никакого отношения к этому вопросу. Мой вопрос касается повреждения файла Excel функцией workbook.save.function, а не чтения ячеек или формулы.
Из моих комментариев ниже

"Я взял заведомо исправную копию своего файла со всеми формуламинетронутый. Файл, с которым у Excel вообще не было проблем и до сих пор
нет. Приведенный выше пример кода был изменен, чтобы удалить строки для
создания нового листа и записи в ячейку. Затем книга была сохранена под
новым именем «wb_obj_1.save('TEST_FILE4.xlsx')». Откройте новый файл в
Excel, и та же ошибка, и все формулы исчезнут. Это явно
проблема с openpyxl Workbook.save()"


Подробнее здесь: https://stackoverflow.com/questions/785 ... -the-formu

Вернуться в «Python»