win32 实现 excel 快速复制粘贴

直接简明说:该方法可以直接将一张代码的区域内容直接 copy 到另一张表上,并且字体颜色、背景、格式都不变,另外还可以 copy 公式(相当于 excel 下拉公式)

from win32com.client import Dispatch

import win32com.client

def writeCol(filename):

  xlApp = win32com.client.Dispatch('Excel.Application') # 使用启动独立的进程:

  xlBook = xlApp.Workbooks.Open(filename) # 打开文件

  sht1 = xlBook.Worksheets(sheet1)   # 打开sheet1
  sht2 = xlBook.Worksheets(sheet2)   # 打开sheet2


  # 复制sheet1中A1:E5范围内的内容
  sht1.Range("A1:E5").Copy()
  # 粘贴到sheet2中A1:E5
  sht2.Paste(sht2.Range("A1"))  #此处的A1是指要复制到目标的起始单元格,也可以是区域范围Range("A1:E5")

  # 快速复制公式所在单元格
  sht1.Range("A1").Copy()
  # 复制公式到sheet2中A2:A5
  sht2.Paste(sht2.Range("A2:A5"))  #此处的区域范围Range("A2:A5")是指要复制公式的范围

  xlBook.Save()

  xlBook.Close(SaveChanges=0)

  del xlApp

备注:
sht1.Range().Copy():复制
sht1.Range(“A1”).Cut():剪切
sht1.Range(“A1”).CopyPicture():复制成图片格式