我有多个Excel工作簿,它们的格式相同,但每月数据却不同。我想将这些数据复制到现有Master wkbook(与其他工作簿相同的数据格式)下的现有工作表中,并且不会丢失使用python的Master文件中的格式
我尝试使用xlwings和pywin32库。下面的xlwings代码能够将源wkbk的内容复制到结果wkbook中,但是可以复制到单独的工作表中。我希望将数据复制到Master wkbook的指定工作表中(两个库都产生相同的结果)
#Using xlwings
import xlwings as wx
path1='C:\\Users\\G852589\\data transfer\\data1.xlsx'
#path0 = 'C:\\Users\\G852589\\data transfer\\data2.xlsx'
path2='C:\\Users\\G852589\\data transfer\\Result.xlsx'
wb1 = xw.Book(path1)
wb2 = xw.Book(path2)
ws1 = wb1.sheets(1)
ws1.api.Copy(Before=wb2.sheets(1).api)
wb2.save()
wb2.app.quit()
#Using pywin32
import os
import win32com.client as win32
from win32com.client import Dispatch
path1='C:\\Users\\G852589\\data transfer\\data1.xlsx'
#path0 = 'C:\\Users\\G852589\\data transfer\\data2.xlsx'
path2='C:\\Users\\G852589\\data transfer\\Result.xlsx'
xl=Dispatch('Excel.Application')
xl.Visible = True
wb1= xl.Workbooks.Open(Filename=path1)
wb2= xl.Workbooks.Open(Filename=path2)
ws1 =wb1.Worksheets(1)
ws1.Copy(Before=wb2.Worksheets(1))
wb2.Close(SaveChanges=True)
xl.Quit()
我需要能够将多个wkbk工作表中的多个数据复制到结果工作簿中指定的现有工作表中
我已附上屏幕截图,以直观地表示我要实现的目标。数据1和2是原始数据文件,结果表是我希望我的主工作簿在复制文件后的样子。
答案 0 :(得分:0)
为此使用pandas库:
import pandas as pd
import os
# collect files names
files_list = os.listdir('files_folder')
# collect data frames from each file
data_list = []
for file in files_list:
df = pd.read_excel('files_folder/'+file)
data_list.append(df)
# concat all data frames into one
result = pd.concat(data_list, sort=True)
result.to_excel('final_data.xlsx')