Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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打开工作簿时出现TypeError_Python_Excel_Openpyxl - Fatal编程技术网

Python 尝试使用openpyxl打开工作簿时出现TypeError

Python 尝试使用openpyxl打开工作簿时出现TypeError,python,excel,openpyxl,Python,Excel,Openpyxl,我试图使用openpyxl打开和修改现有的excel工作簿,但我甚至无法打开该文件而不出错 from openpyxl import load_workbook ws = load_workbook('PO-Copy.xlsx') 我得到一个很长的类型错误,结果是: Traceback (most recent call last): File "<module1>", line 6, in <module> File "C:\Python27\Lib\site-pac

我试图使用openpyxl打开和修改现有的excel工作簿,但我甚至无法打开该文件而不出错

from openpyxl import load_workbook
ws = load_workbook('PO-Copy.xlsx')
我得到一个很长的类型错误,结果是:

Traceback (most recent call last):
File "<module1>", line 6, in <module>
File "C:\Python27\Lib\site-packages\openpyxl\reader\excel.py", line 151, in load_workbook
     _load_workbook(wb, archive, filename, read_only, keep_vba)
File "C:\Python27\Lib\site-packages\openpyxl\reader\excel.py", line 224, in _load_workbook
      keep_vba=keep_vba)
File "C:\Python27\Lib\site-packages\openpyxl\reader\worksheet.py", line 308, in read_worksheet
     fast_parse(ws, xml_source, shared_strings, style_table, color_index)
File "C:\Python27\Lib\site-packages\openpyxl\reader\worksheet.py", line 296, in fast_parse
     parser.parse()
File "C:\Python27\Lib\site-packages\openpyxl\reader\worksheet.py", line 84, in parse
     dispatcher[tag_name](element)
File "C:\Python27\Lib\site-packages\openpyxl\reader\worksheet.py", line 282, in parse_data_validation
     dv = parser(tag)
File "C:\Python27\Lib\site-packages\openpyxl\worksheet\datavalidation.py", line 179, in parser
     dv = DataValidation(**element.attrib)
TypeError: __init__() got an unexpected keyword argument 'errorStyle'
回溯(最近一次呼叫最后一次):
文件“”,第6行,在
文件“C:\Python27\Lib\site packages\openpyxl\reader\excel.py”,第151行,在load\u工作簿中
_加载工作簿(wb、存档、文件名、只读、保留vba)
文件“C:\Python27\Lib\site packages\openpyxl\reader\excel.py”,第224行,在加载工作簿中
keep_vba=keep_vba)
文件“C:\Python27\Lib\site packages\openpyxl\reader\worksheet.py”,第308行,在read\u工作表中
快速解析(ws、xml、共享字符串、样式表、颜色索引)
文件“C:\Python27\Lib\site packages\openpyxl\reader\worksheet.py”,第296行,快速解析
parser.parse()
文件“C:\Python27\Lib\site packages\openpyxl\reader\worksheet.py”,第84行,在parse中
调度程序[标记名称](元素)
文件“C:\Python27\Lib\site packages\openpyxl\reader\worksheet.py”,第282行,在parse\u data\u验证中
dv=解析器(标记)
解析器中的文件“C:\Python27\Lib\site packages\openpyxl\sheet\datavalidation.py”,第179行
dv=数据验证(**element.attrib)
TypeError:\uuuu init\uuuuuuuuuuu()获得意外的关键字参数“errorStyle”

还有其他人遇到过这个错误吗?有没有可以继续使用的修复程序?

openpyxl 2.1中添加了在现有文件中读取DataValidation的功能,但仅限于Python中DataValidation支持的功能。关于完全支持数据验证的工作已经开始,可在2.2分支中找到,网址为

,但这不起作用。但是,2.0版本做到了,所以我将使用它。谢谢2.0完全忽略了数据验证,所以如果您不需要它们,请使用它。如果我们能尽快完成这项工作,它将被移植到2.1版本的补丁中。你能提交一份错误报告吗?有助于跟踪它。我不知道从下载中安装是否有效。请原谅我的无知,但正确的方法是什么?我知道除了下载并安装到机器上,没有其他方法可以获得openpyxl的功能。您需要使用Mercurial或SourceTree对源代码进行签出,然后切换到2.2分支,并在虚拟环境中以开发模式
python setup.py develop
安装,以避免现有的python被破坏影响下载包含整个项目的存档,但处于当前状态(2.1版)。我们不建议使用此选项安装库。正如文档所述,openpyxl应该使用
pip安装openpyxl
安装,我们现在有一个相关的bug: