首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

datagrid导出为excel时为何有时成功,有时不成功,该如何处理

2011-12-30 
datagrid导出为excel时为何有时成功,有时不成功datagrid导出为excel时为何有时成功,有时不成功我用的是200

datagrid导出为excel时为何有时成功,有时不成功
datagrid导出为excel时为何有时成功,有时不成功
我用的是2003
成功时弹出系统另存为对话框的文件类型为Mircrosoft   Excel
不成功时弹出系统另存为对话框的文件类型为Html   Document
不同的datagrid调用同一个函数,1个datagrid有时成功,有时不成功
另外2个几乎都不成功

        Public   Shared   Sub   Convert(ByVal   ADatagrid   As   DataGrid,   ByVal   response   As   System.Web.HttpResponse)
                response.Clear()
                response.AppendHeader( "Content-Disposition ",   "attachment;filename=Excel.xls ")
                'response.AddHeader( "content-disposition ",   "inline;filename=Excel.xls ")
                response.Charset   =   " "
                'set   the   response   mime   type   for   excel
                response.ContentType   =   "application/vnd.ms-excel "
                'response.ContentType   =   "application/ms-excel "
                '               response.contenttype   =   "application/vnd.ms-excel ";
                'response.addheader( "content-disposition ",   "inline;filename= "
                '     +       httputility.urlencode( "下载文件.xls ",encoding.utf8       )       );      


                'create   a   string   writer
                Dim   stringWrite   As   New   System.IO.StringWriter
                'create   an   htmltextwriter   which   uses   the   stringwriter
                Dim   htmlWrite   As   New   System.Web.UI.HtmlTextWriter(stringWrite)
                ADatagrid.RenderControl(htmlWrite)

                response.Write(stringWrite.ToString)
                response.End()
        End   Sub


[解决办法]
点击Button2时保存
private void Button2_Click(object sender, System.EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312 ";
Response.AppendHeader( "Content-Disposition ", "attachment;filename=FileName.xls " );

Response.ContentEncoding = System.Text.Encoding.UTF7;

//设置输出文件类型为excel文件。
Response.ContentType = "application/ms-excel ";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
------解决方案--------------------


是不是有什么进程把你的steam抢占了
导致的
[解决办法]
按理说正常啊
[解决办法]
如果datagrid里有显示的按钮列或者其他控件时、分页的情况下,会导不成功的。
[解决办法]
有没有一种更稳定的datagrid导出成excel方案?

我也是用楼主的方案,但是当datagrid数据量达到3000多行的时候就会报错;但实际上我们的用户另存超过3000行的机会很多,搞到我整天被投诉,郁闷死了……

热点排行