Python Openpyxl:';ValueError:最大值为14';使用load_工作簿时
我试图打开一个excel文件,在该文件中,我需要将数据框插入到某些工作表中,而将其他工作表单独放置。当我在其他excel文件上测试脚本时,它运行良好。当我在我真正需要的手机上使用它时,我会收到一条错误消息 以下是脚本:Python Openpyxl:';ValueError:最大值为14';使用load_工作簿时,python,excel,pandas,openpyxl,valueerror,Python,Excel,Pandas,Openpyxl,Valueerror,我试图打开一个excel文件,在该文件中,我需要将数据框插入到某些工作表中,而将其他工作表单独放置。当我在其他excel文件上测试脚本时,它运行良好。当我在我真正需要的手机上使用它时,我会收到一条错误消息 以下是脚本: from openpyxl import load_workbook book = load_workbook(self.directory) Self.directory指的是我的文件位置。正如您在回溯中所看到的,当尝试执行load_工作簿()时,它已经在此行失败,并给出以下
from openpyxl import load_workbook
book = load_workbook(self.directory)
Self.directory指的是我的文件位置。正如您在回溯中所看到的,当尝试执行load_工作簿()时,它已经在此行失败,并给出以下错误消息:
ValueError:最大值为14
以下是相关的回溯(我留下了以虚拟环境文件夹“virtual”开头的目录位置):
我意识到我使用的EXCEL文件超出了self.max的限制
我自己尝试过筛选openpyxl脚本,但我无法找到self.max所指的内容,或者如何更改Excel文件以便加载工作簿
谁能给我指一下正确的方向吗
提前谢谢 在删除工作表上第15个以上的小“评论框”后,我能够绕过这个错误。框中评论的数量并不能解决我的问题。我必须删除一些工作表,直到我的工作表总数低于14张,才能打开/阅读文档。我必须删除工作表中的所有格式
在图书馆工作;全选,“清除直接格式化”以下是我修复此错误的方法。 我编辑了lib\site packages\openpyxl\descriptors\base.py,并在Max类的第86行后面添加了一条print语句,如下所示:
def __set__(self, instance, value):
if ((self.allow_none and value is not None)
or not self.allow_none):
value = _convert(self.expected_type, value)
if value > self.max:
print(f"value is {value}")
raise ValueError('Max value is {0}'.format(self.max))
super(Max, self).__set__(instance, value)
这打印的值为34,明显高于最大值14(这是字体系列值)
然后,我保存了一份扩展名为.zip的Excel电子表格,提取了所有XML文件,然后使用grep搜索val=“34”。这让我找到了3个单元格,其中不知何故有font family=34。我在Excel中将字体更改为其他字体,保存了电子表格,然后将其更改回原始字体(Arial)并保存。所有这些之后,错误消失了。这是WPS生成的excel文件,而不是MS office
这很有趣。我自己没有任何评论框,但我可能有其他东西与self.max中的评论框集中在一起。我要挖一些。谢谢你的回答!我遇到了一个类似的问题,导致了这个错误:
'min value is{0}
用于通过使用openpyxl引擎的pd.read\u Excel
加载Excel文件。我按照你的建议清除了所有的格式,并顺利完成了这项工作!谢谢
def __set__(self, instance, value):
if ((self.allow_none and value is not None)
or not self.allow_none):
value = _convert(self.expected_type, value)
if value > self.max:
print(f"value is {value}")
raise ValueError('Max value is {0}'.format(self.max))
super(Max, self).__set__(instance, value)