当前位置:首页 > 网络编程 > WEB编程 > ASP.net > 将DataGrid中数据倒出Excel文件并下载

将DataGrid中数据倒出Excel文件并下载

点击次数:21 次 发布日期:2008-11-26 23:34:19 作者:源代码网
源代码网推荐 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

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华