| 网站首页 | 建站学院 | 资源下载 | 建站教程 | 图片素材 | 网贝社区 | 
您现在的位置: 网贝建站 >> 建站学院 >> ASP.NET >> 数据库应用 >> 正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
DataGrid在PostBack后定
DataGrid的EditCommandC
方便的使用单击和双击更
为DataGrid添加自定义Da
如何用DataGrid实现类似
嵌套的DataGrid如何为子
如何利用DataGrid纵向显
联合主键的情况怎么在Da
有的时候DataGrid取值取
DataGrid模板列中控件的
将DataGrid中数据倒出Excel文件并下载         ★★★★
将DataGrid中数据倒出Excel文件并下载
作者:佚名 文章来源:网贝整理|http://www.netbei.com/ 点击数: 更新时间:2005-1-11 0:52:23
Imports System
Imports System.Text
Namespace toExcel

    '功能:将asp.net中DataGrid生成Excel文件下载。
    'Mountains改进:1、支持中文 2、隐藏列不显示
    '日期:2002.10.30
    Public Class DataGridToCSV

        Public Function GenerateFile(ByRef Page As System.Web.UI.Page, ByVal MyDataGrid As System.Web.UI.WebControls.DataGrid, ByVal FileName As String) As String

            Dim resp As HttpResponse
            Dim colCount As Integer = MyDataGrid.Columns.Count - 1

            resp = Page.Response

            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312") '解决中文乱码之关键
            'resp.Charset = "utf-8"
            'resp.AddFileDependency(FileName)
            'resp.ContentType = "Text/HTML"
            ''resp.AppendHeader("Content-Type", "text/html; charset=gb2312")

            resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName)  '必要,做成下载文件
   

            Dim colHeaders As String = ""
            Dim strItems As StringBuilder = New StringBuilder()

            Dim myCol As DataGridColumn

            Dim i As Integer

            For i = 0 To colCount
                myCol = MyDataGrid.Columns(i)
                If myCol.Visible = True Then
                    colHeaders = colHeaders & myCol.HeaderText.ToString & ","
                End If
            Next

            If colHeaders.Length > 0 Then
                colHeaders = colHeaders.Substring(0, colHeaders.LastIndexOf(","))
            End If

            colHeaders = colHeaders & Chr(13) & Chr(10)



            resp.Write(colHeaders)

            Dim colRow As String

            Dim item As DataGridItem

            For Each item In MyDataGrid.Items
                resp.Write(FormatExportRow(colCount, item, MyDataGrid))
            Next item

            resp.End()

        End Function

        Private Function FormatExportRow(ByVal colCount As Integer, ByVal Item As DataGridItem, ByVal MyDataGrid As System.Web.UI.WebControls.DataGrid) As String
            Dim strItem As String
            Dim i As Integer

            For i = 0 To colCount
                If MyDataGrid.Columns(i).Visible = True Then
                    If Item.Cells(i).Text Is System.DBNull.Value Then
                        Item.Cells(i).Text = ""
                    End If
                    If i = colCount Then
                        strItem += Item.Cells(i).Text.ToString & Chr(13) & Chr(10)
                    Else
                        strItem += Item.Cells(i).Text.ToString & ","
                    End If
                End If
            Next
            strItem = Replace(strItem, " ", " ")
            Return strItem
        End Function


    End Class

End Namespace
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)