使用python将多个工作簿中的数据自动复制到现有的主工作簿中,而不会丢失格式

2024-03-29 07:33:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个excel工作簿,格式相同,但每月数据不同。我希望将这些数据复制到现有主工作簿下的现有工作表中(与其他工作簿的数据格式相同)&;同时不丢失使用python的主文件中的格式

我试过使用xlwings和pywin32库。下面的xlwings代码能够将源wkbk的内容复制到结果wkbok中,但是可以复制到一个单独的工作表中。我要把资料复制到主工作手册的指定页上!(两个库生成相同的结果)

#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是原始数据文件,结果表是复制文件后我希望主工作簿的外观。你知道吗

https://i.stack.imgur.com/0G4lM.png


Tags: 文件数据importdataxlwingsxlsxuserstransfer
1条回答
网友
1楼 · 发布于 2024-03-29 07:33:33

为此使用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')

相关问题 更多 >