VB2010将SQL数据集导出到Excel

时间:2016-01-06 12:10:09

标签: sql sql-server vb.net excel

作为长期休息之后任何形式的编码的新手,我已经开始了一个工作中的小项目,我会感激一些帮助。

我有点背景 - 当项目提交到我们的办公室时,它们被输入到定制软件中,并将它们存储在MS SQL 2012 DB中。这不能改变。我们还使用本地电子表格来跟踪谁正在处理哪个项目,并且此电子表格目前已手动填充...

我已经开始使用自动脚本,如下所示,但我不知道自己是否在正确的轨道上。到目前为止,我已经使用debug.print函数来确认连接是否合理,但是当我运行此代码时,它会在行上返回一个COM异常

xlSht.Cells(i + 1, j + 1) = ds.Tables(0).Rows(i).Item(j)

有人能告诉我我的方式错误吗?

由于

    'Create connection
    Dim connectionstring As String
    connectionstring = "Data Source=.\SQLExpress;Database=AdventureWorks2012;Integrated Security=true;"

    Try
        SQLConn = New SqlConnection(connectionstring)
        SQLConn.Open()

    Catch ex As Exception
        MsgBox(ex.Message & " Error Connecting to database!", MsgBoxStyle.Critical)
        Exit Sub
    End Try

    'run SQL query to Dataset
    Dim da As SqlDataAdapter
    da = New SqlDataAdapter("SELECT * from person.addresstype", SQLConn)

    Dim ds As New DataSet
    Dim i, j As Integer
    Dim filename = "C:\Users\{user}\Desktop\testing.xlsx"
    Dim xlApp, xlBook, xlSht

    da.Fill(ds)

    'copy data from Dataset to xlsx
    xlApp = CreateObject("Excel.Application")
    xlBook = xlApp.WorkBooks.Open(filename)
    xlSht = xlApp.activesheet

    For i = 0 To ds.Tables(0).Rows.Count - 1
        For j = 0 To ds.Tables(0).Columns.Count - 1
            xlSht.Cells(i + 1, j + 1) = ds.Tables(0).Rows(i).Item(j)
        Next
    Next

    xlBook.Save()
    xlApp.Close()
    xlApp.Quit()

    xlSht = Nothing
    xlBook = Nothing
    xlApp = Nothing

End Sub

0 个答案:

没有答案