首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载excel文件,点击“无法解析从服务器收到的消息”。

问下载excel文件,点击“无法解析从服务器收到的消息”。
EN

Stack Overflow用户
提问于 2015-06-15 18:21:06
回答 1查看 909关注 0票数 0

我想做一个onclick函数,它下载一个excel文件,当用户单击一个按钮时也会创建该文件,所以我找到了用于onclick的这个函数。

代码语言:javascript
复制
        public void CreateExcel(object sender, EventArgs e) 
    {
        DataTable dt;
        dt = Database.Get_All_Approval_Table_Grouped            
        string attachment = "attachment; filename=example.xls";
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/vnd.ms-excel";
        string tab = "";
        foreach (DataColumn dc in dt.Columns)
        {
            Response.Write(tab + dc.ColumnName);
            tab = "\t";
        }
        Response.Write("\n");
        int i;
        foreach (DataRow dr in dt.Rows)
        {
            tab = "";
            for (i = 0; i < dt.Columns.Count; i++)
            {
                Response.Write(tab + dr[i].ToString());
                tab = "\t";
            }
            Response.Write("\n");
        }
        Response.End();
    }

以下是我收到的答复:

代码语言:javascript
复制
Line: 885
Error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.
EN

回答 1

Stack Overflow用户

发布于 2015-06-15 20:17:00

错误是因为您没有下载Excel文件,而是在为ASP.net WebForms页面提供服务。

你是modifying the response out from under WebForms。

而且,那不是Excel

即使您解决了这个问题(通过使用.ashx处理程序提供原始内容),Excel也会拒绝它。

您的服务器指示内容类型的是application/vnd.ms-excel。

代码语言:javascript
复制
Response.ContentType = "application/vnd.ms-excel";

只不过它不是文件的。当Excel试图解压缩.xlsx文件时,它将失败,并发出安全警告,提示内容与指示的类型不匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30852284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档