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

如何用Python循环遍历Excel工作表复制指定单元格范围至目标工作簿

解决方案

要实现遍历所有对应工作表并完成指定范围数据复制,只需基于现有代码做以下调整:

核心思路

由于两个工作簿的工作表完全相同且顺序一致,可以通过zip()函数将源工作簿和目标工作簿的工作表一一配对,然后循环处理每一对工作表,复用你已验证的copyRange和pasteRange函数完成数据复制。

修改后的完整代码

import openpyxl

# 加载源工作簿和目标工作簿
source_wb = openpyxl.load_workbook(r'C:\Users\source.xlsx')
dest_wb = openpyxl.load_workbook(r'C:\Users\destination.xlsx')

# 复制指定范围数据的函数(保留原有逻辑)
def copyRange(startCol, startRow, endCol, endRow, sheet):
    rangeSelected = []
    for i in range(startRow, endRow + 1):
        rowSelected = []
        for j in range(startCol, endCol + 1):
            rowSelected.append(sheet.cell(row=i, column=j).value)
        rangeSelected.append(rowSelected)
    return rangeSelected

# 粘贴指定范围数据的函数(保留原有逻辑)
def pasteRange(startCol, startRow, endCol, endRow, sheetReceiving, copiedData):
    countRow = 0
    for i in range(startRow, endRow + 1):
        countCol = 0
        for j in range(startCol, endCol + 1):
            sheetReceiving.cell(row=i, column=j).value = copiedData[countRow][countCol]
            countCol += 1
        countRow += 1

# 处理单组工作表的函数,接收源表和目标表作为参数
def process_sheet(source_sheet, dest_sheet):
    # 复制源表指定范围(沿用你原有的范围:17列-19列,11行-29行)
    selected_range = copyRange(17, 11, 19, 29, source_sheet)
    # 粘贴到目标表指定范围(原有的:16列-18列,11行-29行)
    pasteRange(16, 11, 18, 29, dest_sheet, selected_range)

# 循环遍历所有对应工作表
for source_sheet, dest_sheet in zip(source_wb.worksheets, dest_wb.worksheets):
    # 可选:校验工作表名称匹配,防止结构意外变化导致错误
    if source_sheet.title != dest_sheet.title:
        print(f"警告:工作表名称不匹配 - 源表:{source_sheet.title},目标表:{dest_sheet.title}")
        continue
    process_sheet(source_sheet, dest_sheet)

# 保存修改后的目标工作簿
dest_wb.save("output.xlsx")

关键修改说明

  • 移除了原指定单个工作表的代码,改用zip(source_wb.worksheets, dest_wb.worksheets)同时遍历两个工作簿的工作表,确保第N个源表对应第N个目标表
  • 将原createData函数改为process_sheet,接收源工作表和目标工作表作为参数,实现逻辑复用
  • 将工作簿保存操作移到循环结束后,提升效率
  • 可选添加工作表名称校验,避免因工作簿结构变化导致数据粘贴错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:33:14