如何用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
相关产品推荐
相关产品推荐

