python对带有宏(VBA)的excel文件(xlsm)追加数据

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打开再保存。

你可能感兴趣的:(python,pandas,开发语言)