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

datagrid|excel|数据|下载

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

时间: 2025-01-20 12:00:43

实现将DataGrid中数据倒出Excel文件并下载的相关文章

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

datagrid|excel|数据|下载    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 Syste

问题解决了,先将改进代码贴出。(实现将DataGrid中数据倒出Excel文件并下载)

Imports SystemImports System.TextNamespace 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 MyData

Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)_实用技巧

这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 生成Excel文件的方法,见:[原].Net创建Excel文件(插入数据.修改格式.生成图表)的方法 先试用Response.WriteFile的方法: 复制代码 代码如下: FileInfo fi = new FileInfo(excelFile);//excelFile为文件在服务器上的地址 HttpResponse contextResponse = HttpContext.Current.Response; cont

如何用jquery 将 datagrid中数据导出到excel?

问题描述 如何用jquery 将 datagrid中数据导出到excel? 需要用到些什么插件?有例子更好 谢谢 解决方案 一个插件,将jquery数据生成excel的xml内容的字符串.下面是插件代码 <script> /** Jquery easyui datagrid js导出excel 修改自extgrid导出excel * allows for downloading of grid data (store) directly into excel * Method: extract

将DataGrid数据写入Excel文件

datagrid|excel|数据 前几天项目中有个地方需要将DataGrid的数据直接导入Excel里,以提供给用户下载,在网上找了下,好像都是与下面代码类似的实现: 程序代码: this.EnableViewState   =   false;         System.Globalization.CultureInfo   myCItrad   =   new   System.Globalization.CultureInfo("ZH-CN",true);System.IO

java导出数据到excel文件中

问题描述 怎么用java代码,来实现导出数据到excel文件中,引用包是poi的,不要jxl包的,请详细说说步骤啊.最好也讲讲导入excel 解决方案 解决方案二:google例子多的去了解决方案三:先简单介绍一下poi,poi是apache组织的一个开源项目,最新版为poi-3.0.1,要使用poi需要到apache网站下载poi-bin3.0.1.zip压缩包,并将poi-3.0.1.jar加入到项目的ClassPath中.下面是完成这个实例的步骤:1.建立好一个web工程:poi:2.导入

easyui datagrid 导出数据到excel

问题描述 easyui datagrid 导出数据到excel 点击导出,将数据到出到excel , 模板如下 解决方案 将datagrid数据导出到excelDataGrid中的数据导出到EXCEL导出DataGrid中的数据到Excel 解决方案二: easyui datagrid数据导出excel文件 解决方案三: 利用一个超链接,传送到后台当前页的数字,比如:nowPager=3,然后后台读取这页的数据,然后利用poi-3.1-FINAL.jar这个第三方的库导出数据到Excel, 如何

Java 使用poi把数据库中数据导入Excel的解决方法_java

Java 利用poi把数据库中数据导入Excel 效果: 使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包 核心代码: 连接数据库:DBConnection.java 复制代码 代码如下: package org.xg.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;i

在vb6中如何导入excel文件

问题描述 在vb6中如何导入excel文件?导入后按照不同的算法将数据进行计算后在界面上输出显示 解决方案 解决方案二:汗~忘了给分解决方案三:MSDN里有的吧,我这没有装vb6,给你vb.net的资料看看,基本差不多DimDSAsSystem.Data.DataSetDimMyCommandAsSystem.Data.OleDb.OleDbDataAdapterDimMyConnectionAsSystem.Data.OleDb.OleDbConnectionMyConnection=NewS