多个工作表汇总

一、R语言操作

library(xlsx)                 '载入xlsx包

data1<-data.frame()        '将空数据框赋给变量data1

data2<-list()                 '将空的列表框赋给变量data2

file<-"c:/users/administrator/desktop/input.xlsx"      '将文件路径赋给变量file

sht<-length(getSheets(loadWorkbook(file)))            '获取工作表的个数  

for(i in 1:sht){                                                           '开始循环

    data2[[i]]<-read.xlsx(file,sheetIndex=i,encoding="UTF-8")         '将工作表数据写入列表

    data1<-rbind(data2[[i]],data1)                                                 '将列表数据合并写入数据框

}

print(data1)                                             ‘显示数据框 

二、Vba+Sql操作

Sub 多工作表汇总()

    Dim Cnn As Object, FullPath$, Sht_Count&, i&, Sql$, Rs As Object

    Set Cnn = CreateObject("Adodb.Connection")

    FullPath = ThisWorkbook.FullName

    Cnn.Open "Provider=Microsoft.Ace.Oledb.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName

    Sht_Count = Worksheets.Count

    For i = 1 To Sht_Count - 1

        If Sql = "" Then

            Sql = "select * from [" & FullPath & "].[" & Worksheets(i).Name & "$]"

        Else

            Sql = Sql & " union all select * from [" & FullPath & "].[" & Worksheets(i).Name & "$]"

        End If

    Next i

    Set Rs = Cnn.Execute(Sql)

    Application.ScreenUpdating = False

    For i = 0 To Rs.Fields.Count - 1

        Cells(1, i + 1).Value = Rs.Fields(i).Name

    Next i

    [a2].CopyFromRecordset Rs

    Cnn.Close

    Application.ScreenUpdating = True

    Set Cnn = Nothing

End Sub

                                                                   ,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容