Python 带循环的Openpyxl iter_行(最小行、最大行)
为什么iter_行总是说必须是str,而不是int?我只是尝试将我的lst值传递给min_行和max_行 我曾尝试将发现的想法转换为iter_rows min_row max_row,但我只得到了相同的错误,并且工作表对象没有属性 回溯误差为Python 带循环的Openpyxl iter_行(最小行、最大行),python,excel,loops,row,openpyxl,Python,Excel,Loops,Row,Openpyxl,为什么iter_行总是说必须是str,而不是int?我只是尝试将我的lst值传递给min_行和max_行 我曾尝试将发现的想法转换为iter_rows min_row max_row,但我只得到了相同的错误,并且工作表对象没有属性 回溯误差为 line 509, in iter_rows max_row += row_offset iter_rows方法要求min_row和max_row输入参数为整数。所以试试这个: from openpyxl import load_workbook
line 509, in iter_rows
max_row += row_offset
iter_rows方法要求min_row和max_row输入参数为整数。所以试试这个:
from openpyxl import load_workbook
from itertools import islice
wb = load_workbook('xyz.xlsx')
ws1 = wb['Sheet1']
lst = [2,2]
limit = 2
for i in islice(lst,limit):
row = ws1.iter_rows(min_row=i,max_row=i)
注意:您可以通过使用命令helpws1.iter_rows或helpopenpyxl.sheet.worksheet.worksheet.iter_rows查询其docstring来获取iter_rows方法的完整使用说明。在docstring中,您可以找到以下说明:
:param min_row: smallest row index (1-based index)
:type min_row: int
:param max_row: smallest row index (1-based index)
:type max_row: int
呃,你想在这里做什么?为什么是itertools?添加一个print语句以查看您实际试图传递给ws.iter_rowsI的内容。在前面的语句中添加printi,它将打印2,然后显示相同的回溯错误。我在for语句之后添加printi,它不打印任何内容,并给出相同的回溯错误。我试图以最小行=2,最大行=2结束。printws1.iter_rows给出我希望这更有意义,感谢您的询问。感谢您的帮助,但如果您运行代码,它仍然给出错误必须是str,而不是int。这听起来与文档中提到的相反,但这是解释器抛出的错误。如果你在min_行和max_行中明确地输入一个数字,它会起作用,但是关于使用列表的问题,我遇到了麻烦。我再次测试了这个问题,当我打印I时它起作用了。然而,在我的程序中,尽管尝试了这一点,仍然存在一些问题。我将进一步调查,感谢您对我的问题所作的贡献和帮助。@spacecade错误消息必须是str,而不是int,由iter\u rows方法生成的代码行max\u row+=row\u offset是对row\u offset变量的引用,而不是max\u row变量。基本上,python遇到了麻烦,因为它被迫将整数对象行偏移量添加到字符串对象max行。Python错误处理程序然后假设代码行的目的是执行字符串添加操作,因此出现此错误消息。
:param min_row: smallest row index (1-based index)
:type min_row: int
:param max_row: smallest row index (1-based index)
:type max_row: int