首页 > 解决方案 > Python openpyxl保存有TypeError:__init__()至少需要3个参数(3个给定)

问题描述

我使用openpyxl(版本:2.6.2),在ubuntu16.04上代码可以执行成功:

wb.save('filename.xlsx')

但是在win10(相同的openpyxl版本)上,出现如下错误:

File "C:\Python27\lib\site-packages\openpyxl\workbook\workbook.py", line 397, in save
    save_workbook(self, filename)
  File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 294, in save_workbook
    writer.save()
  File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 276, in save
    self.write_data()
  File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 76, in write_data
    self._write_worksheets()
  File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 216, in _write_worksheets
    self.write_worksheet(ws)
  File "C:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 200, in write_worksheet
    writer = WorksheetWriter(ws)
  File "C:\Python27\lib\site-packages\openpyxl\worksheet\_writer.py", line 55, in __init__
    next(self.xf) # start generator
  File "C:\Python27\lib\site-packages\openpyxl\worksheet\_writer.py", line 286, in get_stream
    with xf.element("worksheet", xmlns=SHEET_MAIN_NS):
  File "C:\Python27\lib\contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "C:\Python27\lib\site-packages\et_xmlfile\xmlfile.py", line 37, in element
    self._top_element = Element(tag, attrib=attrib, **_extra)
TypeError: __init__() takes at least 3 arguments (3 given)

它还创建了文件名.xlsx,但文件已损坏。

是版本问题还是保存有问题?

标签: pythonexcelpython-2.7openpyxl

解决方案


推荐阅读