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

如何用Xlwings将Excel中A7至最后行列的区域转为列表?

实现Xlwings将指定Excel区域转换为列表

当然可行,Xlwings原生支持将Excel单元格区域的数据读取为Python列表,下面是具体实现方案:

方案一:自动识别连续数据区域(推荐)

如果你的数据是从A7开始的连续非空单元格块,用current_region可以自动定位完整区域,避免中间空行导致的范围错误:

import xlwings as xw

wb = xw.Book("adsd.xlsx") 
sht = wb.sheets["test"]

# 获取A7所在的连续数据区域
data_region = sht.range('A7').current_region
# 将区域数据转换为二维列表
data_list = data_region.value

方案二:手动计算边界(适合非连续场景)

如果需要严格覆盖从A7到工作表最后一行、最后一列的范围(即使中间存在空行空列),可以手动计算边界位置:

import xlwings as xw
from xlwings.utils import col_name

wb = xw.Book("adsd.xlsx") 
sht = wb.sheets["test"]

# 获取A列从A7开始的最后有效行
last_row = sht.range('A7').end('down').row
# 获取第7行的最后有效列
last_col_idx = sht.range(7, sht.api.UsedRange.Columns.Count).column
# 将列索引转换为Excel列名(比如26→Z)
last_col_name = col_name(last_col_idx)

# 定义目标区域并转换为列表
target_range = sht.range(f"A7:{last_col_name}{last_row}")
data_list = target_range.value

补充说明

  • data_list是二维列表,每个子列表对应Excel中的一行数据,子列表中的元素对应该行的各列单元格值。
  • 若A7下方无数据,end('down')会跳到工作表最后一行,此时可添加判断逻辑避免获取无效区域,例如:
    if sht.range('A8').value is None:
        last_row = 7
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:52:19