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行的机会很多,搞到我整天被投诉,郁闷死了……