#python #python-3.x #excel #vba #openpyxl
Вопрос:
Существует файл xlsm, который мне нужно открыть, отредактировать и извлечь данные в соответствии с макросами, включенными на листе.
Но я не могу открыть сам файл. Я пытался:
wb = openpyxl.load_workbook("workbook.xlsm",read_only=False,keep_vba=True)
Произошла Ошибка:
Traceback (most recent call last):
File "C:/Users/Downloads/Projects/Project1/Trial4.py", line 7, in <module>
wb = openpyxl.load_workbook("workbook.xlsm",read_only=False,keep_vba=True)
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxlreaderexcel.py", line 317, in load_workbook
reader.read()
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxlreaderexcel.py", line 282, in read
self.read_worksheets()
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxlreaderexcel.py", line 268, in read_worksheets
pivot = TableDefinition.from_tree(tree)
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxldescriptorsserialisable.py", line 83, in from_tree
obj = desc.from_tree(el)
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxldescriptorssequence.py", line 85, in from_tree
return [self.expected_type.from_tree(el) for el in node]
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxldescriptorssequence.py", line 85, in <listcomp>
return [self.expected_type.from_tree(el) for el in node]
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxldescriptorsserialisable.py", line 103, in from_tree
return cls(**attrib)
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxlpivottable.py", line 481, in __init__
self.scope = scope
File "C:UsersAppDataLocalPackagesPythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0LocalCachelocal-packagesPython37site-packagesopenpyxldescriptorsbase.py", line 128, in __set__
raise ValueError(self.__doc__)
ValueError: Value must be one of {'selection', 'data', 'field'}
Может ли кто-нибудь предложить решение этой проблемы. ТИА
Комментарии:
1. openpyxl сообщает вам, что с файлом возникла проблема.
2. Но это очень широко используемый файл. Я не могу вносить какие — либо изменения в файл. Я попытался открыть файл с помощью Pandas, он также открывается и редактируется, но не смог сохранить файл в формате xlsm со всеми включенными макросами.
Ответ №1:
У меня была та же проблема, что и с поиском решения в Интернете, поэтому я разобрал openpyxl и, наконец, нашел.
похоже, что для управления «Условным форматом» не хватает фрагмента кода, поэтому я удалил все это из исходного excel.
и это, похоже, решило проблему.
Комментарии:
1. У меня была та же ошибка с условным форматом на листе, который даже не был затронут openpyxl. Итак, теперь вы просто обходитесь без форматирования?