openpyxl没有归因错误

时间:2016-06-16 04:35:38

标签: python excel python-3.x openpyxl

Python 3.5 openpyxl 2.4

大家好,我这里有一个简单但令人困惑的问题。 仅供参考与工作表相关的API文档

http://openpyxl.readthedocs.io/en/default/api/openpyxl.worksheet.worksheet.html

以下是一些简单的测试代码。

 # -*- coding: utf-8 -*-
from openpyxl import load_workbook
wb2 = load_workbook('example.xlsx')
print (wb2.get_sheet_names())
ws = wb2.get_sheet_by_name('Sheet1')
print (type(ws))
print (ws.calculate_dimension())

list = []
for i in ws.rows:
    print ('\n')
    for cell in i:
        list.append(cell.value)
        print(str(cell.value).encode('utf-8'))
print (type(ws))
ws.get_highest_row()

这里最终结果是

<class 'openpyxl.worksheet.worksheet.Worksheet'>
Traceback (most recent call last):
File "script.py", line 17, in <module>
ws.get_highest_row()
AttributeError: 'Worksheet' object has no attribute 'get_highest_row'

我遇到的问题是get_highest_row不是属性。 这似乎是正确的,因为此函数位于类worksheet.worksheet(来自API文档)下,而wsworksheet.worksheet.Worksheet(我不知道那是什么)可能会继承某些函数,因此它仍然可以拨打dimension(),但有人可以告诉我如何解决这个问题吗?我想检查一个特定的行或列,并使用不同长度的cols和row进行一些排序。 任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:9)

根据https://bitbucket.org/openpyxl/openpyxl/issues/278/get_highest_row-column-are-unreliable

最新openpyxl,已移除get_highest_rowget_highest_column方法。它们已被max_rowmax_column属性

取代

答案 1 :(得分:1)

我尝试使用openpyxl 2.3.5并获得以下内容

  

  /usr/local/lib/python3.5/site-packages/openpyxl/worksheet/worksheet.py:350:    UserWarning:调用已弃用的函数或类get_highest_row(使用   max_row属性)。 def get_highest_row(self):

因此当你使用2.4时,他们可能会从那里删除它,因为它已经在2.3.5中被弃用了。

编辑:在documentation for 2.4中,不再提及此方法