用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心.Net

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

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-12 16:03:11

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

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

栏目导航

本类热门阅览

相关文章

PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:2,890.62500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号