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

使用xlwings如何将工作表数据复制到另一工作簿的已有指定工作表

解决方案

你之前调用的Copy是工作表对象的复制方法,会直接复制整张表生成新工作表,无法实现追加数据到已有工作表的效果。可以参考以下两种实现方案:

方案1:仅复制数值(执行效率高)

如果不需要保留单元格格式、公式等属性,直接通过数组赋值的方式写入,速度最快:

import xlwings as xw

# 配置文件路径
source_path = r"source.xlsx"
target_path = r"target.xlsx"

# 启动Excel程序,设置后台运行不显示窗口,关闭弹窗提示
with xw.App(visible=False, add_book=False) as app:
    app.display_alerts = False
    
    # 打开源文件和目标文件
    wb_source = app.books.open(source_path)
    sht_source = wb_source.sheets[0]
    # 读取源工作表所有已使用区域的数据
    source_data = sht_source.used_range.value
    # 如果源表第一行是表头不需要重复写入,替换为下行代码即可
    # source_data = sht_source.used_range[1:,:].value
    
    wb_target = app.books.open(target_path)
    sht_target = wb_target.sheets[0]
    # 计算目标工作表最后一行数据的行号,定位到下一行的第一个单元格作为写入起始位置
    last_row = sht_target.used_range.last_cell.row
    target_start_cell = sht_target.range(f"A{last_row + 1}")
    
    # 写入数据
    target_start_cell.value = source_data
    
    # 保存关闭
    wb_target.save()
    wb_target.close()
    wb_source.close()

方案2:保留原格式/公式/数据验证等属性

如果需要完整保留源数据的所有格式,调用单元格区域的Copy方法即可:

import xlwings as xw

source_path = r"source.xlsx"
target_path = r"target.xlsx"

with xw.App(visible=False, add_book=False) as app:
    app.display_alerts = False
    
    wb_source = app.books.open(source_path)
    sht_source = wb_source.sheets[0]
    source_range = sht_source.used_range
    # 如果不需要复制源表表头,替换为下行代码即可
    # source_range = sht_source.used_range[1:,:]
    
    wb_target = app.books.open(target_path)
    sht_target = wb_target.sheets[0]
    last_row = sht_target.used_range.last_cell.row
    target_start_cell = sht_target.range(f"A{last_row + 1}")
    
    # 复制源区域到目标起始位置
    source_range.api.Copy(Destination=target_start_cell.api)
    
    wb_target.save()
    wb_target.close()
    wb_source.close()

注意事项

  • 运行前请确认两个文件没有被其他程序占用,避免读写失败
  • 如果数据量极大(十万行以上),优先选择方案1减少性能消耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:57:03