大家好,我这里有一个简单但令人困惑的问题。 仅供参考与工作表相关的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文档)下,而ws
是worksheet.worksheet.Worksheet
(我不知道那是什么)可能会继承某些函数,因此它仍然可以拨打dimension()
,但有人可以告诉我如何解决这个问题吗?我想检查一个特定的行或列,并使用不同长度的cols和row进行一些排序。
任何帮助表示赞赏!
答案 0 :(得分:9)
根据https://bitbucket.org/openpyxl/openpyxl/issues/278/get_highest_row-column-are-unreliable
最新openpyxl
,已移除get_highest_row
和get_highest_column
方法。它们已被max_row
和max_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中,不再提及此方法