VB.Net多少行代码完成多个excel合并

因为还没有做过Excel合并这样的项目,我也比较好奇,如果使用VB.Net,那么需要多少行代码。
于是有了以下代码(请自行添加对Excel 的Com引用):


Imports Microsoft.Office.Interop
Public Class Form1
    Dim maxcount As Integer = 0
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim path As String = "D:\lessons\mergexls"
        Dim files() As String = IO.Directory.GetFiles(path)
        Dim saveExcelfile As String = path & "\allexcel.xlsx"
        Dim xlsAll As New Excel.Application()
        Dim Wbook As Excel.Workbook = xlsAll.Workbooks.Add
        Dim Wsheet As Excel.Worksheet = Wbook.Worksheets.Add
        For Each singlexls As String In files
            writeExcel(singlexls, xlsAll, Wsheet)
        Next
        Wbook.SaveAs(saveExcelfile)
        xlsAll.Quit()
    End Sub
    Private Sub writeExcel(ByVal xlssinglefile As String, ByVal xlsapp As Excel.Application, ByVal allSheet As Excel.Worksheet)
        Dim Wsinglebook As Excel.Workbook = xlsapp.Workbooks.Open(xlssinglefile)
        Dim Wsinglesheet As Excel.Worksheet = Wsinglebook.Worksheets(1)
        For i As Integer = 1 To Wsinglesheet.UsedRange.Rows.Count
            maxcount += 1
            For j As Integer = 1 To Wsinglesheet.UsedRange.Columns.Count
                allSheet.Cells(maxcount, j).Value = Wsinglesheet.Cells(i, j).value
            Next
        Next
        Wsinglebook.Close()
    End Sub
End Class

28行。不过代码算是很精简了,实际操作的时候总行数应该还要多点。
最后要吐槽的是,Excel的COM组件工作起来太慢了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值