【问题标题】:How To Export Data That Coming From DataBase Via Function to Excel如何通过函数将来自数据库的数据导出到 Excel
【发布时间】:2014-01-13 12:30:04
【问题描述】:

我有一个问题我还没有找到合适的答案....我有一个检索数据的功能

从数据库中,我想通过单击按钮将所有数据导出到 excel 文件我该怎么做??

Here is my function:

******************


Protected Sub btnExport_Click(ByVal sender as Object,ByVal e as EventArgs)

Try

Dim tmp as String = ""

Dim dba as New DBAccess
Dim ds as DataSet = dba.GetGlobalAdminUser(m_user.UserID)

If Not ds Is Nothing Then

Dim dt as DataTable = ds.Tables(0)

????

End IF



End Sub

【问题讨论】:

    标签: c# database vb.net


    【解决方案1】:

    你需要自己创建文件,你应该使用 OpenXml 库。你应该避免使用 OLE/COM

    这是一种不需要大量编码的方法:

    How to Create/Open Excel files using OpenXml with C#

    这是另一种编写数据集的方式:

    http://www.codeproject.com/Articles/692121/Csharp-Export-data-to-Excel-using-OpenXML-librarie

    【讨论】:

    • 它将要求您下载一些新的 GAC 程序集。
    • 保存的时候有什么方法可以在新窗口打开吗?
    • 您可能知道如何在新窗口中打开它以使用 XLS 文件弹出窗口吗?因为我不想把它保存在我的电脑上。
    • 我不明白你在问什么。什么新窗口?优秀吗?
    • 是的,因为它把它保存到我的电脑我想在新窗口上显示它有什么办法吗?
    【解决方案2】:

    试试这个方法。你必须使用like

    Protected Sub btnExport_Click(ByVal sender as Object,ByVal e as EventArgs)
    
    Try
    
    Dim tmp as String = ""
    
    Dim dba as New DBAccess
    Dim ds as DataSet = dba.GetGlobalAdminUser(m_user.UserID)
    
    If Not ds Is Nothing Then
    
    Dim dt as DataTable = ds.Tables(0)
    
    DatatableToExcel(dt)
    
    End IF
    ...
    ...
    End Sub
    
    Private Sub DatatableToExcel(ByVal dtTemp As DataTable)
        Dim _excel As New Microsoft.Office.Interop.Excel.Application
        Dim wBook As Microsoft.Office.Interop.Excel.Workbook
        Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet
    
        wBook = _excel.Workbooks.Add()
        wSheet = wBook.ActiveSheet()
    
    
        Dim dt As System.Data.DataTable = dtTemp
        Dim dc As System.Data.DataColumn
        Dim dr As System.Data.DataRow
        Dim colIndex As Integer = 0
        Dim rowIndex As Integer = 0
    
        For Each dc In dt.Columns
            colIndex = colIndex + 1
            _excel.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
                _excel.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
            Next
        Next
    
        wSheet.Columns.AutoFit()
        Dim strFileName As String = "C:\datatable.xlsx"
        If System.IO.File.Exists(strFileName) Then
            System.IO.File.Delete(strFileName)
        End If
    
        wBook.SaveAs(strFileName)
        wBook.Close()
        _excel.Quit()
    End Sub
    

    【讨论】:

    • 有什么方法可以在新窗口中打开 XLS 吗?
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2020-12-26
    相关资源
    最近更新 更多