public void ExportByWeb(DataTable dataSource, string strHeaderText, string strFileName)
{
HttpContext curContext = HttpContext.Current;
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = Encoding.UTF8;
curContext.Response.Charset = "GB2312";
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8));
curContext.Response.BinaryWrite(NPOIHelper.Export(dataSource, strHeaderText).GetBuffer());
curContext.Response.End();
}
&http://q.cnblogs.com/q/32205/ 这位网友和我的状况类似,我只要浏览器禁用迅雷插件,下载下来的就是我想要的excel
试试加上Response.ContentLength
没这个属性。。
@defyhunter:
不好意思,记错了,应该是:
curContext.Response.AddHeader("Content-Length","文件大小");
@defyhunter:
建议试试下面的方法:
将
curContext.Response.ContentType = "application/vnd.ms-excel";
改为
curContext.Response.ContentType = "application/octet-stream";
我感觉这个方法能解决你遇到的问题。
@dudu: 结果还是不行额。。
@defyhunter: 如果实在不行,只能禁用迅雷插件了