繁体   English   中英

将数据从一个工作表复制到另一个工作簿中的指定工作表

[英]Copying data from one worksheet to specified worksheet in another workbook

因此,我有一项繁琐的工作,其中涉及使用从不同系统中提取的新数据更新一个 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()

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

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

#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()

您可以使用熊猫来完成,首先将两者都转换为数据帧。 然后将它们连接起来,最后将该 df 转换为 excel 文件。

import pandas as pd

source = pd.read_excel('source.xlsx')
target = pd.read_excel('target.xlsx')

target = pd.concat([target, source])

target.to_excel('merged.xlsx')

这将在目标数据的末尾添加源数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM