具有错误处理程序“ NoneType”对象的Python脚本没有属性“ max_row”

时间:2019-03-22 06:55:24

标签: python openpyxl nonetype

需要一些有关我的python脚本错误的帮助。我需要在我的excel工作表中获取最后一行的数字。

我正在使用openpyxl==2.5.12

下面是我得到的代码和错误。

代码:

workbook = load_workbook(directory)
ws = workbook.active
max_row = ws.max_row

错误: 'NoneType' object has no attribute 'max_row'.

我看到了过去对类似问题的答案。我尝试使用Max_row(),但没有用。眉头也不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

您的问题与max_row无关,错误是说max_row的对象上没有NoneType可用,这表明行{{1} }无法正常工作。

我建议您查看workbook = load_workbook(directory)是什么,因为它似乎是空的。

答案 1 :(得分:0)

形成workbook.active的文档:

  

获取当前活动的工作表或无

您的工作簿没有活动的工作表。因此,ws = workbook.activews设置为None而不是工作表。这会导致ws.max_row失败,因为它仅适用于工作表。

您要么必须a)修复工作簿以使其具有活动工作表,要么b)如果您在没有活动工作表的情况下加载工作簿,则不要在此之前。

workbook = load_workbook(directory)
ws = workbook.active
if ws is None:
    return  # or `continue` a loop, `raise` an exception, `sys.exit` the program, ...
max_row = ws.max_row