将DataGrid中数据倒出Excel文件并下载
点击次数:21 次 发布日期:2008-11-26 23:34:19 作者:源代码网
|
源代码网推荐 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 源代码网供稿. |
