我需要将一个Excel工作表复制到另一个工作表。到目前为止我发现的是FillAcrossSheets在Python中执行此操作。以下是我的代码:
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False #Keep the excel sheet closed
excel.DisplayAlerts = False #"Do you want to over write it?" Will not Pop up
filepath = "C:/Pwr_Mgmt_Template.xlsx"
#Copy data from sheet named Template
sheetID = 'Template'
#Open the excel sheet
wb = excel.Workbooks.Open(filepath)
ws = wb.Worksheets(sheetID)
#Create a new sheet with name SATA-SkewData_Core1.1
ws = wb.Worksheets.Add()
ws.Name = "SATA-SkewData_Core1.1"
ws = wb.Worksheets(sheetID)
#Copy contents from Template to SATA-SkewData_Core1.1
wb.Worksheets.FillAcrossSheets(wb.Worksheets(sheetID).Range("A5:AF16"))
wb.Save()
excel.Application.Quit()
现在,如果我需要创建其他工作表,那么Fill Across Sheets方法也将复制到这些工作表并将销毁数据。而不是填写所有纸张,有没有办法有选择地从一张纸张复制到另一张纸张?
答案 0 :(得分:0)
在标准程序中,我从两个不同的工作簿中打开了两个工作表。下面的行将模板工作表(ws_temp)复制到功率测量工作表(ws_pwr)。行号也可以作为参数提供,以便可以在同一工作表中复制相同的模板,但行号不同:
ws_temp.Range("A5:AF16").Copy(ws_pwr.Range("A%s:AF%s" % (chart_first_row, chart_last_row)))
从模板复制的行号分别为5和16。