你的位置:首页 > ASP.net教程

[ASP.net教程]利用jQuery npoi插件 asxh一般处理文件实现excel的下载


最近开发的过程中遇到这么一个问题,利用ajax和ashx文件实现下载功能。发现代码调试走完之后并没有弹出下载框。

研究了一段时间之后发现解决这种问题有两种方法,1.ajax获取数据集在前台做处理实现导出(个人不大喜欢这样有兴趣自行度娘)。2.既然都请求服务端了那就服务端搞定这件事。

下面说一下第二种方法:这种方法的实质上没有使用ajax的方式。

先说一下一般处理文件的写法

public class DownLoadExcel : IHttpHandler {    public void ProcessRequest (HttpContext context) {    context.Response.ContentType = "application/vnd.ms-excel";    context.Response.ContentEncoding = Encoding.UTF8;    context.Response.Charset = "";    context.Response.AppendHeader("Content-Disposition",      "attachment;filename=" + HttpUtility.UrlEncode("测试", Encoding.UTF8));      HSSFWorkbook workbook = new HSSFWorkbook();      //省略向HSSFWorkbook 中插入数据      workbook.Write(context.Response.OutputStream);      workbook.Dispose();  }   public bool IsReusable {    get {      return false;    }  }

View Code

1.利用<a></a>标签

<a href="test.ashx"></a>

这种方法不方便传入参数。

2.利用表单发送请求

可以用div将表单隐藏如下

<a id="aexport" href="#" onclick="aexport();">导出</a> <div style="display:none">  <form target="_blank" method="post">  </form> </div>

js代码如下

 function aexport() {      var url ="test.ashx?canshu1=1"      $("form").attr("action", url);//设置表单提交的对象      $("form").submit();//提交表单    }