利用jQuery npoi插件 asxh一般处理文件实现exce…

2018-06-18 02:20:53来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

最近开发的过程中遇到这么一个问题,利用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));
            //excel中插入数据
            HSSFWorkbook workbook = new HSSFWorkbook();
             Sheet sheet = workbook.CreateSheet("excel标签名称");
             Row rowHeader = sheet.CreateRow(0);//设置表头
             rowHeader.CreateCell(0).SetCellValue("第一列");
             Row rowData= sheet.CreateRow(1);//插入一行数据
             rowData.CreateCell(0).SetCellValue("");
             
            workbook.Write(context.Response.OutputStream);
            workbook.Dispose();
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

 

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();//提交表单
        }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:.net 创建属于自己的log类

下一篇:【.net】创建属于自己的log组件——改进版