不规范EXCEL表格导入内存表中

本文介绍了一个使用Visual Basic编写的函数,该函数可以将Excel文件的数据加载到DataTable对象中。此过程包括打开Excel文件、读取数据并填充DataTable。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加载Excel数据
    Private Function LoadExcelData(ByVal Path As String)


        txtMsg.Text = "Excel数据导入中..."
        Dim msgError As String = ""
        Dim miss As Object = System.Reflection.Missing.Value
        Dim wss As Excel.Sheets
        Dim ws As Excel.Worksheet = Nothing
        Dim excelApp As Excel.Application = New Excel.Application
        Dim wbs As Excel.Workbooks = excelApp.Workbooks

        Dim dt As New Data.DataTable

        Try

            Dim wb As Excel.Workbook = wbs.Open(Path, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss)
            excelApp.Visible = False
            wss = wbs(1).Worksheets
            ws = wss.Item(1)
            Dim rowNum As Integer = ws.UsedRange.Cells.Rows.Count
            Dim colNum As Integer = ws.UsedRange.Cells.Columns.Count

            '读取栏位标题,创建临时表
            For i As Integer = 0 To colNum - 1 '取列值
                Dim FieldName As String = ws.Range(ws.Cells(1, i + 1), ws.Cells(1, i + 1)).Text.ToString().Trim()
                If FieldName = "" Then
                    '检查Excel格式是否正确
                    msgError = "Excel格式不正确,请检查"
                    Exit For '相当于break退出
                End If

                dt.Columns.Add(FieldName)
            Next

            If msgError = "" Then
                For i As Integer = 1 To rowNum - 1
                    Dim CellValue As String = ws.Range(ws.Cells(i + 1, 1), ws.Cells(i + 1, 1)).Text.ToString().Trim()
                    If CellValue = "" Then
                        Exit For
                    End If
                    Dim dr As DataRow = dt.NewRow()
                    For j As Integer = 0 To colNum
                        CellValue = ws.Range(ws.Cells(i + 1, j + 1), ws.Cells(i + 1, j + 1)).Text.ToString().Trim()
                        dr(j) = CellValue
                    Next
                    'ds.Rows.Add(dr)
                    dt.Rows.Add(dr)
                Next
                dgvSizeLabel.DataSource = dt
                txtMsg.Text = "Excel数据导入成功"
            Else

                txtMsg.Text = "读取Excel发生错"
            End If
        Catch ex As Exception
            Throw ex
            'txtMsg.Text = "读取Excel发生错误"
            'dgvSizeLabel.DataSource = ds.Tables("temp")

        End Try
        excelApp.Quit()
    End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值