首页 > 解决方案 > 将数据从一个工作表复制到另一个工作簿中的指定工作表

问题描述

因此,我在工作中有一项繁琐的任务,其中涉及使用从不同系统中提取的新数据更新一个 excel 文件,我希望这些数据能够自动化。

这看起来像这样:new_workbook[sheet1] -> 粘贴到 target_workbook[sheet1] 的末尾

列的格式和形状完全相同。

我在这里熟悉 xlwings api.copy

import xlwings as xw

source = r'source.xlsx'
target = r'target.xlsx'

wb = xw.Book(source)
sht = wb.sheets[0]

new_wb = xw.Book(target)
new_sht = new_wb.sheets[0]

sht.api.Copy(None, After=new_sht.api)

new_wb.save()
new_wb.close()

但这会在目标工作簿中创建新的工作表并将数据粘贴到那里,而不是现有的工作表中。有没有办法解决这个问题?

标签: pythonexcelxlwings

解决方案


我认为这个迭代解决方案会对您有所帮助。

#import modules
import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl import load_workbook

#read data from source path
df=pd.read_excel(source)

#load workbook and create sheet 
wb=load_workbook(target)
ws=wb.create_sheet("new_worksheet")

#add values in df iteratively to sheet named ws
for row in dataframe_to_rows(df,index=False,header=True):
    ws.append(row)
#save and close workbook
wb.save(target)
wb.close()

推荐阅读