def copyData(filename,saveFilename):
'''
:filename:模板文件路径
:saveFilename:导出文件路径
导出后需要人为打开并保存一遍
'''
wb = load_workbook(filename,data_only=False,keep_vba=True)
ws = wb["任务明细表"]
data = pd.read_excel('./orders.xlsx',header=None)
for i in range(22):
col = 9 + i
for j in tqdm.tqdm(range(len(data))):
ws.cell(j + 1, col, data.iat[j,i])
wb.save(saveFilename)
要想读取xlsm文件并且保留就一定要用openpyxl来读取,读取之后选定工作簿,我这里采用了pandas来对要写入xlsm的数据进行读取,因为文档被写入数据为22列,所以range那我写了22,如果不清楚可以获取data的colums再用len+1得到,data.iat[x,y]类似于直角坐标系的取值方式,
ws.cell(行数,列数,数据)用这样的方式把数据写入进去,写入完成用wb.save保存,保存完记得手动用excel打开再保存。