You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python xlrd操作Excel:指定起始与结束行循环遍历的方法

解决xlrd遍历指定行范围的问题

嘿,作为Python新手遇到这个问题很正常,我来一步步帮你搞定!

首先先指出你现有代码里的一个小逻辑偏差:你本来想遍历行,但代码里却在循环中调用了sheet.col_values(i),这其实是在读取列数据,而且i的递增逻辑也会导致你越界(比如当i超过工作表的列数时会报错)。咱们先把这个逻辑理顺,再解决指定行范围的需求。

核心思路:控制range的起止范围

xlrd里的行和列索引都是从0开始的,如果你想只读取某一段范围的行,只需要调整range()的参数即可:range(起始行索引, 结束行索引)(注意range是左闭右开的,所以结束行索引要比你实际想读到的最后一行大1)。

正确代码示例

假设你想:

  • 从第2行(对应索引1)开始读取
  • 只读到第10行(对应索引9,所以结束索引设为10)

代码可以这么写:

import xlrd

book = xlrd.open_workbook("/Users/vhim/Documents/Cases/Orders.xlsx")
sheet = book.sheet_by_name("Summary")

# 定义起始行和结束行的索引
start_row = 1  # 从第2行开始(索引从0算)
end_row = 10   # 读到第10行(range会取到9,也就是第10行)

# 遍历指定范围的行
for row_idx in range(start_row, end_row):
    # 获取当前行的所有值
    row_data = sheet.row_values(row_idx)
    print(f"第{row_idx+1}行数据:{row_data}")

额外说明

  1. 如果想从第一行(索引0)开始,只需要把start_row设为0即可
  2. 如果想读到最后一行,end_row可以直接用sheet.nrows,比如range(start_row, sheet.nrows)
  3. 如果你确实需要读取列数据,那应该用sheet.col_values(col_idx),循环的是列索引range(sheet.ncols),和行的逻辑区分开

内容的提问来源于stack exchange,提问作者Vathana Him

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:08:06