Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python openpyxl:ValueError:值必须是{';选择&';,&';数据';,';字段&#_Python_Python 3.x_Excel_Vba_Openpyxl - Fatal编程技术网

Python openpyxl:ValueError:值必须是{';选择&';,&';数据';,';字段&#

Python openpyxl:ValueError:值必须是{';选择&';,&';数据';,';字段&#,python,python-3.x,excel,vba,openpyxl,Python,Python 3.x,Excel,Vba,Openpyxl,有一个xlsm文件,我需要根据工作表中启用的宏打开、编辑和提取数据 但我无法打开文件本身。 我试过: 发生错误: Traceback (most recent call last): File "C:/Users/Downloads/Projects/Project1/Trial4.py", line 7, in <module> wb = openpyxl.load_workbook("workbook.xlsm",read_on

有一个xlsm文件,我需要根据工作表中启用的宏打开、编辑和提取数据

但我无法打开文件本身。 我试过:

发生错误:

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:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\reader\excel.py", line 317, in load_workbook
    reader.read()
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\reader\excel.py", line 282, in read
    self.read_worksheets()
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\reader\excel.py", line 268, in read_worksheets
    pivot = TableDefinition.from_tree(tree)
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\serialisable.py", line 83, in from_tree
    obj = desc.from_tree(el)
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\sequence.py", line 85, in from_tree
    return [self.expected_type.from_tree(el) for el in node]
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\sequence.py", line 85, in <listcomp>
    return [self.expected_type.from_tree(el) for el in node]
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
    return cls(**attrib)
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\pivot\table.py", line 481, in __init__
    self.scope = scope
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\base.py", line 128, in __set__
    raise ValueError(self.__doc__)
ValueError: Value must be one of {'selection', 'data', 'field'}
回溯(最近一次呼叫最后一次):
文件“C:/Users/Downloads/Projects/Project1/Trial4.py”,第7行,在
wb=openpyxl.load_工作簿(“workbook.xlsm”,只读=False,保留=True)
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7\u qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\reader\excel.py”,第317行,在load\u工作簿中
reader.read()
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\reader\excel.py”,第282行,已读
self.read_工作表()
read_工作表中的文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\reader\excel.py”第268行
pivot=TableDefinition.from_树(树)
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\descriptors\serialisable.py”,第83行,在from_树中
obj=描述自树(el)
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\descriptors\sequence.py”,第85行,在from_树中
返回[节点中el的_树(el)中的self.expected_type.]
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\descriptors\sequence.py”,第85行
返回[节点中el的_树(el)中的self.expected_type.]
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\descriptors\serialisable.py”,第103行,在from_树中
返回cls(**attrib)
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\pivot\table.py”,第481行,在uu init中__
self.scope=scope
文件“C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\Local Packages\Python37\site Packages\openpyxl\descriptors\base.py”,第128行,位于__
提高值错误(自身文件)
ValueError:值必须是{'selection','data','field'}之一

有人能提供这个问题的解决方案吗。TIA

openpyxl告诉您该文件存在问题。但这是一个使用非常广泛的文件。我无法对文件进行任何更改。我试图用Pandas打开该文件,它正在打开和编辑,但无法在启用所有宏的情况下以xlsm文件格式保存该文件。
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:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\reader\excel.py", line 317, in load_workbook
    reader.read()
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\reader\excel.py", line 282, in read
    self.read_worksheets()
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\reader\excel.py", line 268, in read_worksheets
    pivot = TableDefinition.from_tree(tree)
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\serialisable.py", line 83, in from_tree
    obj = desc.from_tree(el)
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\sequence.py", line 85, in from_tree
    return [self.expected_type.from_tree(el) for el in node]
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\sequence.py", line 85, in <listcomp>
    return [self.expected_type.from_tree(el) for el in node]
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
    return cls(**attrib)
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\pivot\table.py", line 481, in __init__
    self.scope = scope
  File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\openpyxl\descriptors\base.py", line 128, in __set__
    raise ValueError(self.__doc__)
ValueError: Value must be one of {'selection', 'data', 'field'}