如何在VB.Net中使用数据库查询创建Excel文件?

如何在VB.Net中使用数据库查询创建Excel文件?,第1张

概述我想在VB.Net中使用数据库查询生成Excel文件.我该怎么做? 更确切地说:我想将查询“绑定”(很像将查询绑定到GridView)到Excel文件,以便表中的行占用新Excel文件中的相应单元格,并将文件保存到我的文件中.电脑.然后,将该文件邮寄给某人. 虽然我可以处理邮件部分,但是我需要帮助创建这样一个文件.谁知道如何实现我想要实现的目标? PS:我需要在VB.Net中这样做,我正在使用SQ 我想在VB.Net中使用数据库查询生成Excel文件.我该怎么做?

更确切地说:我想将查询“绑定”(很像将查询绑定到GrIDVIEw)到Excel文件,以便表中的行占用新Excel文件中的相应单元格,并将文件保存到我的文件中.电脑.然后,将该文件邮寄给某人.

虽然我可以处理邮件部分,但是我需要帮助创建这样一个文件.谁知道如何实现我想要实现的目标?

PS:我需要在VB.Net中这样做,我正在使用sql Server 2008.

解决方法 好吧这不完美,但它应该让你开始.首先,您需要添加对正在使用的Excel版本的引用.在我的情况下它是12.0(2007)但是这个代码应该适用于最后两个或三个版本,只有一两个小的改动.在页面顶部添加此项

导入Microsoft.Office.Interop

接下来添加一个函数来创建数据表

Public Function Createtable() As Datatable    Dim cn As New sqlConnection(My.Settings.con)    Dim cmd As New sqlCommand    Using da As New sqlDataAdapter()        Dim dt As New Datatable()        cmd.CommandType = CommandType.StoredProcedure        cmd.CommandText = "[dbo].[MyStoredProcedure]"        cmd.CommandTimeout = 0        cn.open()        cmd.Connection = cn        da.SelectCommand = cmd        da.Fill(dt)        cn.Close()        Return dt    End UsingEnd Function

接下来将代码带到Datatable并将其转储到Excel中.

Public Shared Sub PopulateSheet(ByVal dt As Datatable,ByVal file As String)            Dim oXL As Excel.Application = CType(CreateObject("Excel.Application"),Excel.Application)        Dim oWB As Excel.Workbook        Dim oSheet As Excel.Worksheet        Dim oRng As Excel.Range        oXL.Visible = True        oWB = oXL.Workbooks.Add        oSheet = CType(oWB.ActiveSheet,Excel.Worksheet)        Dim dc As DataColumn        Dim dr As DaTarow        Dim colindex As Integer = 0        Dim rowIndex As Integer = 0        For Each dc In dt.Columns            colindex = colindex + 1            oXL.Cells(1,colindex) = dc.Columnname        Next        For Each dr In dt.Rows            rowIndex = rowIndex + 1            colindex = 0            For Each dc In dt.Columns                colindex = colindex + 1                oXL.Cells(rowIndex + 1,colindex) = dr(dc.Columnname)            Next        Next        oSheet.Cells.Select()        oSheet.Columns.autoFit()        oSheet.Rows.autoFit()        oXL.Visible = True        oXL.UserControl = True        oWB.SaveAs(file)        oRng = nothing        oXL.Quit()        ExcelCleanUp(oXL,oWB,oSheet)    End Sub

现在,您可以通过按钮或您选择的任何事件来调用它

Dim dt As New Datatable    Try        dt = Createtable()        PopulateSheet(dt,"c:\test\Excelfile.xlsx")    Catch ex As Exception        MessageBox.Show(ex.Message)    Finally        dt.dispose()    End Try

现在这是非常基本的,但是通过一些工作,您可以进行单元格格式化,页面设置以及可以使用菜单/选项在Excel中完成的任何事情.

我们还应该通过添加代码来完成清理工作.

Private Shared Sub ExcelCleanUp( _    ByVal oXL As Excel.Application,_    ByVal oWB As Excel.Workbook,_    ByVal oSheet As Excel.Worksheet)    GC.Collect()    GC.WaitForPendingFinalizers()    Marshal.FinalReleaseComObject(oXL)    Marshal.FinalReleaseComObject(oSheet)    Marshal.FinalReleaseComObject(oWB)    oSheet = nothing    oWB = nothing    oXL = nothingEnd Sub
总结

以上是内存溢出为你收集整理的如何在VB.Net中使用数据库查询创建Excel文件?全部内容,希望文章能够帮你解决如何在VB.Net中使用数据库查询创建Excel文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存