如何合并多个excel中(excel表格样式都一样)

合并excel分为两种情况:1、将多个excel文件合并在一个excel中的不同sheet中。2、将多个excel文件合并在一个excel文件的一个sheet中。

 1、将多个excel的文件合并在一个excel文件的不同sheet中。

(1)首先,我们在Epan下的vb文件夹中创建4个excel文件,明明如下。

(2)打开命名为allExcel文件,按alt+F11调出vb编辑接口

(3)点击ThisWorkBook,并粘贴如下代码:

Private Sub hb()
    Dim hb As Object, kOne As Boolean, tabcolor As Long
    Set hb = Workbooks.Add
    Application.DisplayAlerts = False
    For i = hb.Sheets.Count To 2 Step -1
        hb.Sheets(i).Delete
    Next
     
    Dim FileName As String, FilePath As String
    Dim iFolder As Object, rwk As Object, Sh As Object
    Set iFolder = CreateObject("shell.application").BrowseForFolder(0, "请选择要合并的文件夹", 0, "")
    If iFolder Is Nothing Then Exit Sub
    FilePath = iFolder.Items.Item.Path
    FilePath = IIf(Right(FilePath, 1) = "\", FilePath, FilePath & "\")
    FileName = Dir(FilePath & "*.xls*")
    Do Until Len(FileName) = 0
        If UCase(FilePath & FileName) <> UCase(ThisWorkbook.Path & "\" & ThisWorkbook.Name) Then
            Set rwk = Workbooks.Open(FileName:=FilePath & FileName)
            tabcolor = Int(Rnd * 56) + 1
            With rwk
                For Each Sh In .Worksheets
                    Sh.Copy After:=hb.Sheets(hb.Sheets.Count)
                    hb.Sheets(hb.Sheets.Count).Name = FileName & "-" & Sh.Name
                    hb.Sheets(hb.Sheets.Count).Tab.ColorIndex = tabcolor
                    If Not kOne Then hb.Sheets(1).Delete: kOne = True
                Next
                .Close True
             End With
        End If
        Set rwk = Nothing
        FileName = Dir
    Loop
    Application.DisplayAlerts = True
End Sub

(3)按F5运行,会弹出让你选择要合并的文件夹的窗口

(4)代码执行结果如下:

2、将多个excel文件合并在一个excel文件的一个sheet中。

(1)打开allExcel调出VB编程接口,粘贴如下代码

sub 合并当前目录下所有工作簿的全部工作表() 
dim mypath, myname, awbname 
dim wb as workbook, wbn as string 
dim g as long 
dim num as long 
dim box as string 
application.screenupdating = false 
mypath = activeworkbook.path 
myname = dir(mypath & "\" & "*.xls") 
awbname = activeworkbook.name 
num = 0 
do while myname <> "" 
if myname <> awbname then 
set wb = workbooks.open(mypath & "\" & myname) 
num = num + 1 
with workbooks(1).activesheet 
.cells(.range("a65536").end(xlup).row + 2, 1) = left(myname, len(myname) - 4) 
for g = 1 to sheets.count 
wb.sheets(g).usedrange.copy .cells(.range("a65536").end(xlup).row + 1, 1) 
next 
wbn = wbn & chr(13) & wb.name 
wb.close false 
end with 
end if 
myname = dir 
loop 
range("a1").select 
application.screenupdating = true 
msgbox "共合并了" & num & "个工作薄下的全部工作表。如下:" & chr(13) & wbn, vbinformation, "提示" 
end sub

(2)按F5运行代码,选择要合并的文件,效果如下

  • 21
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
可以使用 `pandas` 库来合并两个 Excel 文件,并保留样式。具体步骤如下: 1. 导入 `pandas` 库和 `openpyxl` 库。 ```python import pandas as pd from openpyxl import load_workbook ``` 2. 读取两个 Excel 文件,并将每个文件的每个 sheet 表格读取为一个 `pandas` 的 `DataFrame` 对象。 ```python file1 = pd.ExcelFile('file1.xlsx') file2 = pd.ExcelFile('file2.xlsx') df1 = file1.parse(file1.sheet_names[0]) # 读取第一个文件的第一个 sheet 表格 df2 = file2.parse(file2.sheet_names[0]) # 读取第二个文件的第一个 sheet 表格 ``` 3. 创建一个新的 Excel 文件,并将两个 `DataFrame` 对象写入该文件的两个 sheet 表格。 ```python writer = pd.ExcelWriter('merged_file.xlsx', engine='openpyxl') # 将第一个 DataFrame 对象写入第一个 sheet 表格,并保留样式 book = load_workbook('merged_file.xlsx') writer.book = book df1.to_excel(writer, sheet_name='Sheet1', index=False) writer.sheets['Sheet1'] = book['Sheet1'] # 将第二个 DataFrame 对象写入第二个 sheet 表格,并保留样式 df2.to_excel(writer, sheet_name='Sheet2', index=False) writer.sheets['Sheet2'] = book['Sheet2'] writer.save() ``` 完整代码如下: ```python import pandas as pd from openpyxl import load_workbook file1 = pd.ExcelFile('file1.xlsx') file2 = pd.ExcelFile('file2.xlsx') df1 = file1.parse(file1.sheet_names[0]) df2 = file2.parse(file2.sheet_names[0]) writer = pd.ExcelWriter('merged_file.xlsx', engine='openpyxl') book = load_workbook('merged_file.xlsx') writer.book = book df1.to_excel(writer, sheet_name='Sheet1', index=False) writer.sheets['Sheet1'] = book['Sheet1'] df2.to_excel(writer, sheet_name='Sheet2', index=False) writer.sheets['Sheet2'] = book['Sheet2'] writer.save() ``` 注意:上述代码,`file1.xlsx` 和 `file2.xlsx` 是要合并的两个 Excel 文件,`merged_file.xlsx` 是合并后生成的新文件。如果要合并更多的 Excel 文件,只需要将读取和写入的步骤扩展即可。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我头像是啥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值