asp.net c# datatable导出到Excel乱码 10

把一个dataset里面的多个datatable导出到一个Excel中的多个Sheet。时而乱码,时而不乱码;时而页面自动关闭,时而不关闭。未发现规律。乱码时服务器上的文... 把一个dataset里面的多个datatable导出到一个Excel中的多个Sheet。时而乱码,时而不乱码;时而页面自动关闭,时而不关闭。未发现规律。乱码时服务器上的文件是没有问题的(是先把Excel文件保存到服务器端的一个文件夹下再输出给用户),只是下载之后再打开有问题,感觉是把前台aspx文件输出到了Excel,如图所示:

而服务器上的文件或者说正常情况却是:

把文件输出到前台的代码如下:

protected static void SaveXls(string fileURL)
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileURL);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Charset = "GB2312";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpContext.Current.Server.UrlEncode(fileInfo.Name.ToString()));
System.Web.HttpContext.Current.Response.AddHeader("content-length", fileInfo.Length.ToString());
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
System.Web.HttpContext.Current.Response.WriteFile(fileURL);
//System.Web.HttpContext.Current.Response.Flush();
//System.Web.HttpContext.Current.Response.End();
}

就是这样,求大神解救。
问题已解决,在writefile之前暂停线程1s即可。
展开
 我来答
ml02218370
2014-02-23 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:135
采纳率:100%
帮助的人:59万
展开全部
1你下载的时候是否使用了迅雷软件,去除浏览器关联
2 你数据库文件是否进行了XML或调用office SDK进行了编辑
3 你客户端office是否安装了加密软件
4 fileURL是否正确,端口号是否冲突,如不是使用默认80端口,需要将URL打全
追问
怎么个全法?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanes2005
2014-02-22 · 超过35用户采纳过TA的回答
知道答主
回答量:115
采纳率:100%
帮助的人:50.6万
展开全部
尝试通过这种方式来传回前台
HttpResponse.Redirect("~/DownLoadFile/xxx.xlsx" )
这样就是直接下载服务器文件了
追问
你是说把这句
System.Web.HttpContext.Current.Response.WriteFile(fileURL);
改成这句?
System.Web.HttpContext.Current.Response.Redirect(fileURL);
貌似不行啊。
追答
HttpResponse 和System.Web.HttpContext.Current.Response 是两个不同的类
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式