Файлы Excel не могут быть открыты

1

У меня есть исходный файл Excel в исходной папке (*.xlsm) и другой файл (также *.xlsm), который содержит некоторые данные. Я должен создать третий файл, который должен быть *.xls, который в основном является исходным файлом Excel, который содержит некоторые данные второго файла. Для этого я написал этот код:

from openpyxl import load_workbook

file1 = "C:\\Users\Desktop\file1.xlsm"
file2 = "C:\\Users\Desktop\file2.xlsm"
file3 = "C:\\Users\Desktop\file3.xls"

wb1 = load_workbook(file1)
sheet1 = wb1["Sheet1"]

wb2 = load_workbook(file2)
sheet2 = wb2["Sheet1"]

sheet1["A1"].value = sheet2["A1"].value

wb1.save(file3)

Код, кажется, в порядке и не возвращает никаких ошибок, но я не могу открыть созданный file3.

Изображение 174551

Я не понимаю, почему, я пытался изменить расширение третьего файла, но и *.xlsx и *.xlsm показывают эту проблему. Я также пытался удалить часть строки

sheet1["A1"].value = sheet2["A1"].value

чтобы понять, была ли проблема связана с написанием листа, но проблема остается.

Надеюсь, я достаточно ясно объяснил проблему и что кто-то может мне помочь.

Заранее спасибо.

  • 0
    Вы открываете file1 и file2 - где вы открываете file3 - если вы не откроете это или не хотите сохранить активную таблицу в file3, если вам нужно сохранить как ...
  • 0
    Я хочу сохранить файл1 как новый файл 3. Так что строка "wb2.save (file3)" неверна?
Показать ещё 5 комментариев
Теги:
excel
openpyxl

1 ответ

0

Прежде всего, пожалуйста, обратите внимание, что ваш код не создает новый файл, а просто восстанавливает существующий.

Также не ясно, что вы хотите: вы хотите создать file3? С какой информацией? Ваш код ничего этого не делает.

Однако я попытался запустить короткую версию вашего кода, и я получил ошибку:

openpyxl.utils.exceptions.InvalidFileException: openpyxl не поддерживает формат файла .xlsm ', убедитесь, что сначала вы можете открыть его в Excel. Поддерживаемые форматы:.xlsx,.xlsm,.xltx,.xltm

Скорее всего, ваш формат файла не поддерживается. Попробуйте сохранить ваши файлы в формате xlsx. Я думаю, что проблема в макросах: если у вас их нет в файлах, то изменение формата не должно быть проблемой. Если у вас есть, я не уверен, что openpyxl будет работать таким образом (по крайней мере, без обходного пути).

Этот ответ может помочь. Он предлагает извлечь файлы xlms (это zip файлы), поработать над теми, которые представляют формат вашего листа (не макрос), а затем снова собрать все воедино.

  • 0
    Похоже, у вас есть опечатка. XLSM поддерживаются, но вы должны быть осторожны, когда сохраняете их, чтобы использовать XLSX, если вы не сохранили макросы, или XLSM, если вы делаете иначе, Excel откажется их открывать.
  • 0
    что вы имеете в виду под опечаткой?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню