GridView输出Excel

问题描述

今天在一个ASP.NET项目使用Gridview的方式输出Excel到客户端,代码如下:1Response.Buffer=true;2//Response.ClearContent();3//指定http名称和值4Response.AddHeader("content-disposition","attachment;filename="+HttpUtility.UrlEncode("test",System.Text.Encoding.UTF8)+".xls");5//指定文件类型6Response.ContentType="application/excel";7Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");8StringWritersw=newStringWriter();9ExcelGridView.AllowPaging=false;10this.ExcelGridView.DataSource=dtStudentScore;11ExcelGridView.DataBind();12//HtmlTextWriter输出流13HtmlTextWriterhtw=newHtmlTextWriter(sw);14ExcelGridView.RenderControl(htw);15stringstyle=@"<style>.text{mso-number-format:@;}</script>";//单元格式为文本格式16//sw写入到http输出流17Response.Output.Write(style);18Response.Output.Write(sw.ToString());19Response.Flush();20Response.End();21ExcelGridView.Visible=false;在客户端输出Excel后,在点击原页面上任何按钮,页面没有任何反应,请问这是为什么?

解决方案

解决方案二:
不知道了
解决方案三:
因为你用的这个输出原理是改变了页面的输出类型
解决方案四:
服务器送给客户端的数据包类型能够是text/html文本,也能够是gif/jpeg图像文档,所以每次传输前,我们都必须告知客户端将要传输的文档类型,一般默认情况下为“text/html”类型。<%response.contenttype="text/html"%><%response.contenttype="image/gif"%><%response.contenttype="image/jpeg"%><%response.contenttype="text/plain"%><%response.contenttype="image/jpeg"%><%response.contenttype="application/x-cdf"%>
解决方案五:
可以换一种方法试试又很多方法的
解决方案六:
你可以用这种方法:DataSetds=GridView数据源try{stringsql=string.Empty;System.IO.File.Delete(Server.MapPath("/Uploads/ChangInExport.xls"));//删除原文件System.IO.File.Copy(Server.MapPath("/Uploads/ExportTemplate.xls"),Server.MapPath("/Uploads/ChangInExport.xls"),true);//COPY母板文件//对空文件进行Insert数据插入stringMyConnectionstring="Provider=Microsoft.Jet.OLEDB.4.0;DataSource='"+myname+"';Excel8.0;HDR=YES";OleDbConnectionolconn=newOleDbConnection(MyConnectionstring);olconn.Open();//循环插入每一条数据for(inti=0;i<ds.Tables[0].Rows.Count;i++){stringxm=ds.Tables[0].Rows[i]["xm"].ToString();stringxbm=ds.Tables[0].Rows[i]["xbm"].ToString();stringzkzh=ds.Tables[0].Rows[i]["zkzh"].ToString();stringksh=ds.Tables[0].Rows[i]["ksh"].ToString();stringzyh=ds.Tables[0].Rows[i]["zyh"].ToString();stringgx=ds.Tables[0].Rows[i]["gx"].ToString();stringzy=ds.Tables[0].Rows[i]["zy"].ToString();stringlqpc=ds.Tables[0].Rows[i]["lqpc"].ToString();sql="Insertinto["+mytablename+"$]([xm],[xbm],[zkzh],[ksh],[zyh],[gx],[zy],[lqpc])VALUES('"+xm+"','"+xbm+"','"+zkzh+"','"+ksh+"','"+zyh+"','"+gx+"','"+zy+"','"+lqpc+"')";OleDbCommandcmd1=newOleDbCommand(sql,olconn);cmd1.ExecuteNonQuery();}olconn.Close();}catch(Exceptionex){//导出错误记入日志}
解决方案七:
引用3楼junzhang4008的回复:

服务器送给客户端的数据包类型能够是text/html文本,也能够是gif/jpeg图像文档,所以每次传输前,我们都必须告知客户端将要传输的文档类型,一般默认情况下为“text/html”类型。<%response.contenttype="text/html"%><%response.contenttype="image/gif"%><%response.contenttype="image/jpeg"%><%response.contenttype="text/plain"%><%response.contenttype="image/jpeg"%><%response.conte…

谢谢回答,那请问我遇到这种问题该如何处理?
解决方案八:
不行就把页面reload一次把。呵呵,很龌龊的方法。
解决方案九:
引用7楼junzhang4008的回复:

不行就把页面reload一次把。呵呵,很龌龊的方法。

我想知道为什么会出现这种问题,因为我同一个项目下面其他页面也是用同样方式导出Excel的,不会出现这样的问题,我的代码是完全拷贝他,非常奇怪。
解决方案十:
在一个新页面输出

时间: 2024-11-02 22:24:32

GridView输出Excel的相关文章

ASP.NET使用GridView导出Excel实现方法_实用技巧

本文实例讲述了ASP.NET使用GridView导出Excel实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /// <summary>  /// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流  /// </summary>  /// <param name="dtData">要导出的数据源</param>  public static void DataTable1Excel(S

关于利用服务器控件GridView导出Excel问题

问题描述 利用GridView导出excel,方法基本相同,遇到一问题我有一列数据类型为nvarchar(20)型,但是保存的数据全部是数字,导出到excel时显示有问题如:2.00807E+16双击显示详细时后面有错误,请问应该怎么整法才不会以科学计算法导出?顺便列出导出的方法.publicvoidOutExcel(DataTabledt,Pagepage){GridViewgv=newGridView();page.Response.Clear();page.Response.AddHead

求教:gridview导出Excel后,表格的列宽如何设成最适应列宽。

问题描述 gridview导出Excel后,表格的列宽如何设成最适应列宽.还有,表格除了GridView的内容外,其余的空白表格没有网格线.求大神教教.谢谢了.急.protectedvoidButton1_Click(objectsender,EventArgse){Export("application/ms-excel","学生成绩报表.xls");GridView1.Enabled=true;}privatevoidExport(stringFileType,

输出EXCEL文件的通用函数,很实用

excel|函数 阿余常要把各种各样的查询结果输出到EXCEL中,所以做了下面这段小程序,用于把一个SQL的SELECT查询出的结果输出为EXCEL格式文件,这个程序你只要设好用于取得一个记录集的SQL的SELECT查询语句和一个文件名,程序就能输出EXCEL格式文件了,这个程序一共由三个文件构成,第一个文件的文件名为:toexcel.asp是主文件,内容如下: <% '前面是设置数据源并链接到数据库,请自行书写相关语句,此处略过 sql=session("toexcelsql"

JSP动态输出Excel及中文乱码的解决

excel|js|动态|解决|中文|中文乱码 最近在网上看到一个用java来操纵excel的open source,在weblogic上试用了一下,觉得很不错,特此向大家推荐一下. 首先去http://www.andykhan.com/jexcelapi/index.html下载最新的JExcelApi,把jxl.jar置于你的classpath中. 写一个javaBean,利用JExcelApi来动态生成excel文档,我这里写一个最简单的,示意性的.复杂的你可能还要查询数据库什么的. ///

ASP输出EXCEL文件的通用函数

下面这段小程序,用于把一个SQL的SELECT查询出的结果输出为EXCEL格式文件,这个程序你只要设好用于取得一个记录集的SQL的SELECT查询语句和一个文件名,程序就能输出EXCEL格式文件了,这个程序一共由三个文件构成,第一个文件的文件名为:toexcel.asp是主文件,内容如下: <% '前面是设置数据源并链接到数据库,请自行书写相关语句,此处略过 sql=session("toexcelsql") '这里是要输出EXCEL的查询语句,如 "SESECT *

通过table标签,PHP输出EXCEL的实现方法

以下是利用table标签,对PHP输出EXCEL的实现代码进行了介绍,需要的朋友可以过来参考下   关键代码: 复制代码 代码如下: <?php  header("Content-type:application/vnd.ms-excel");  header("Conten-Disposition:filename=hp.xlsx");  ?> 第一句是用来声明文件内容的格式:第二局是用来修改文件名的.如果没有第二个语句的话,生成的文件将是没有后缀名的

表格 输出 excel 重复-点击控件把表格输出到EXCEL后,再进行操作都是表格输出到EXCEL,应该怎么解决?

问题描述 点击控件把表格输出到EXCEL后,再进行操作都是表格输出到EXCEL,应该怎么解决? 做了一个按钮LbtToExcel,点击后把表格table1的内容输出到excel.代码在下面,功能可以实现的,点击后生成了一个Excel文件.但是后面我在页面上点别的按钮,都变成了生成Excel文件,请问该如何解决?多谢指点. Protected Sub LbtToExcel_Click(ByVal sender As Object ByVal e As System.EventArgs) Handl

c#-C#输出excel保存问题,文件位置

问题描述 C#输出excel保存问题,文件位置 book.SaveAs(""D:text"" Type.Missing Type.Missing Type.Missing Type.Missing Type.Missing Excel.XlSaveAsAccessMode.xlNoChange Type.Missing Type.Missing Type.Missing Type.Missing Type.Missing); book.Close(true Type