Excel导入SQL(VB.NET版)

【前言】

       我们从第一次机房就开始接触了数据库内容导出到Excel,机房重构的时候同样遇到了,做过VB版的也做过VB.NET版的(其实两者并没有多大差别)。考试导数据的时候用过一次将Excel导入到数据库,当时并没有深入的去想是怎么导进去的。

【内容】

  ●窗体展示

Excel导入SQL(VB.NET版)_第1张图片

●想法启蒙

       在讨论需求的时候说到这个功能在考试导数据的时候见到过,当时是需要先下载模板,这个项目是用VB.NET写的,学习asp.net的时候用到过一个控件是可以直接打开资源管理器的,就想到VB.NET版的可不可以也有这么一个控件,结果是没有那种封装好的,但是有一个openfiledialog控件,瞬间就来了灵感,打开点击上图浏览按钮应该出现资源管理器,果断求助度娘,经过一番尝试,终于成功了!

       Excel导入数据库思路:点击浏览---->出现资源浏览器---->选择需要导入的Excel---->Excel名称显示在文本框中---->点击导入按钮进行数据导入。

【代码展示】

打开资源管理器选择所需Excel

        Dim di As DirectoryInfo
        '计数已导入公司控件的index
        Dim index As Integer
        '获取选中文件的路径

        '实体层
        Dim lineEntity As New Entity.LineEntity
        'B层实体
        Dim ImportExcelBLL As New BLL.advancedQueryBLL
        '先将文本框清空
        txtFileName.Text = ""
        '打开文件的初始路径
        OpenFileDialog1.InitialDirectory = "c:\"
        '限定打开文件的类型
        OpenFileDialog1.Filter = "Excel files (*.xlsx)|*.xlsx|Excel files (*.xls)|*.xls"
        OpenFileDialog1.FilterIndex = 2
        OpenFileDialog1.RestoreDirectory = True
        '打开资源管理器成功
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            '获取Excel文件名
            di = New DirectoryInfo(Me.OpenFileDialog1.FileName)
            '获取.在选中文件名内的位置
            Point = di.Name.ToString().IndexOf(".")

            '将文件名称显示在文本框中
            txtFileName.Text = Microsoft.VisualBasic.Left(di.Name.ToString(), Point)
            '循环比较选中表是否已经导入过
            If cmbTable.Items.Count <> 0 Then
                For index = 0 To cmbTable.Items.Count
                    If txtFileName.Text = cmbTable.Items(index) Then
                        Throw New Exception("该表已经导入,不可重复选择")
                    End If
                Next
            End If
            '全局变量,文件的名称
            FileNames = txtFileName.Text
            '获取文件路径
            fileName = Me.OpenFileDialog1.FileName
        End If

将Excel数据添加进数据集

 '建立Excel连接,读入数据
                Dim strConn As String = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source='" & fileName & "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
                Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn)
                Dim mydataset As DataSet = New DataSet
                '将Excel的数据填充到数据集中
                da.Fill(mydataset)

●解说

      相信在机房重构的时候对datatable和dataset已经有一定的了解了,上述的代码已经完成了将Excel中的数据添加进数据集的功能,下一步就对应数据库中的表依次遍历数据集中表中对应字段下信息添加到数据库即可。

【总结】

      这次收获很大,之前只是了解导出,对应着导入也是一个经常会用到的功能。再一次体验到了度娘的强大。刚开始一筹莫展,做出来发现并不是想象中那么难。多尝试,多学习!

你可能感兴趣的:(Excel导入SQL(VB.NET版))