python - 加载工作簿时这个openpyxl“ValueError”是什么意思?
问题描述
在 Jupyter Notebook 中,我试图运行以下代码来打开带有数据透视表的现有 XLSX 文件。
from openpyxl import load_workbook
wb=load_workbook('TEMPLATE.xlsx')
这最终会引发一个值错误,与数据透视表有关:
----> 1 wb=load_workbook('TEMPLATE.xlsx') 中的 ValueError Traceback(最近一次调用最后一次)
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\reader\excel.py 在 load_workbook(文件名,只读,keep_vba,data_only,keep_links)315 阅读器 = ExcelReader(文件名,只读,keep_vba,316 data_only,keep_links) --> 317 reader.read() 318 返回 reader.wb
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\reader\excel.py in read(self) 280 self.read_theme() 281 apply_stylesheet(self.archive, self.wb) --> 282 self.read_worksheets () 283 self.parser.assign_names() 284 如果不是 self.read_only:
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\reader\excel.py in read_worksheets(self) 266 src = self.archive.read(pivot_path) 267 tree = fromstring(src) --> 268 pivot = TableDefinition.from_tree(tree) 269 pivot.cache = self.parser.pivot_caches[pivot.cacheId] 270 ws.add_pivot(pivot)
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\descriptors\serialisable.py in from_tree(cls, node) 81 if hasattr(desc, 'from_tree'): 82 #descriptor manages conversion ---> 83 obj = desc.from_tree(el) 84 else: 85 if hasattr(desc.expected_type, "from_tree"):
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\descriptors\sequence.py in from_tree(self, node) 83 84 def from_tree(self, node): ---> 85 return [self.expected_type.from_tree (el) for el in node] 86 87
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\descriptors\sequence.py in (.0) 83 84 def from_tree(self, node): ---> 85 return [self.expected_type.from_tree(el ) 用于节点中的 el] 86 87
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\descriptors\serialisable.py in from_tree(cls, node) 101 attrib[tag] = obj 102 --> 103 return cls(**attrib) 104 105
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\pivot\table.py in init (self, scope, type, priority, pivotAreas, extLst) 479 extLst=None, 480 ): --> 481 self.范围 = 范围 482 self.type = 类型 483 self.priority = 优先级
~\AppData\Roaming\Python\Python38\site-packages\openpyxl\descriptors\base.py in set (self, instance, value) 126 def set (self, instance, value): 127 if value not in self.values: --> 128 raise ValueError( self.doc ) 129 super(Set, self)。设置(实例,值)130
ValueError:值必须是 {'data'、'selection'、'field'} 之一
有没有人遇到过这种情况或找到解决方法?我无法以只读模式打开文件,因为我需要编辑作为数据表源的工作表。但是,以只读模式打开允许我打开文件。
解决方案
推荐阅读
- python - microgear 客户端卡在连接上
- java - 使用 sonarq 和 jdk11 运行覆盖的运行时错误
- javascript - 为什么我的 React 构建的 index.html 是空白的?
- amazon-web-services - AWS sam local:为什么 start-lambda 需要“sam build”,而不是“sam invoke”?
- python - Django FormViews 显示下拉菜单而不是字符和文本字段
- typescript - 如何使用 Jest 模拟类并作为参数注入
- cron - 除了步骤条件之外,如何在无人机中使用 cron 触发器?
- javascript - 如何使用 javaScript 从对象数组中删除重复值?
- javascript - 为 img 放置一个动态 src (React/JS)
- mysql - 如何以正确的方式构建此 SQL 查询?