.net生成EXCEL,不通过文件流

本文介绍了一种使用 ASP.NET 将数据库中的数据导出到 Excel 的方法。通过 C# 代码连接数据库并获取数据,然后利用 Excel 对象模型将数据写入新的 Excel 文件中。此过程包括设置连接字符串、执行 SQL 查询、填充 DataSet 并将其转换为 Excel 工作表。
摘要由CSDN通过智能技术生成

 Private constringconnect As String = ConfigurationManager.ConnectionStrings("smeorgConnectionString").ConnectionString.ToString
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            createExcel()

        End If
    End Sub

    Private Function getdate() As DataSet
        Dim con As New System.Data.SqlClient.SqlConnection(constringconnect)
        Dim cmd As New System.Data.SqlClient.SqlDataAdapter("SELECT top 50 * FROM  Table_1", con)
        con.Open()
        Dim myds As New DataSet()
        cmd.Fill(myds)
        con.Close()
        cmd.Dispose()
        Return myds

    End Function
    Private Sub createExcel()
        Dim ds As DataSet = getdate()
        Dim exce As New Excel.Application() '需要添加EXCEL.exe引用
        Dim rowindex As Integer = 1
        Dim collindex As Integer = 0
        exce.Application.Workbooks.Add(True) '添加EXCEL对象的工作表
        Dim tabel As System.Data.DataTable = ds.Tables(0) 
        For Each col As DataColumn In tabel.Columns '将所得表的列名,赋值给单元格
            collindex = collindex + 1
            exce.Cells(1, collindex) = col.ColumnName

        Next


        For Each row As DataRow In tabel.Rows'取得所得表的,数据行
            rowindex = rowindex + 1
            collindex = 0
            For Each col As DataColumn In tabel.Columns
                collindex = collindex + 1
                exce.Cells(rowindex, collindex) = row(col.ColumnName).ToString

            Next
        Next
        exce.Visible = False'隐藏后台处理
        exce.DisplayAlerts = False
        exce.Save(MapPath("excel/Excel.xls"))
        exce.Application.Workbooks.Close()
        exce.Quit()

//释放使用的EXCEL对象
        System.Runtime.InteropServices.Marshal.ReleaseComObject(exce)
        GC.Collect()'调用垃圾收集内存


    End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值