点击下载按钮后内存中生成Excel文件再下载

这篇博客展示了如何在后台通过Aspose库在内存中创建一个Excel工作簿,填充数据,然后直接发送到客户端供用户下载。前端部分通过创建一个链接触发HTTP请求,传递参数,并模拟点击以启动下载过程。

//********** 后台代码 

public void PostExportData()
        {

            var RoleID = 0;

            if (Request["roleID"] != null)
                int.TryParse(Request["roleID"], out RoleID);

            Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
            Aspose.Cells.Worksheet sheet = (Aspose.Cells.Worksheet)workbook.Worksheets[0];

            int currentRow = 0;
            sheet.Cells[currentRow, 0].PutValue("登录名");
            sheet.Cells[currentRow, 1].PutValue("姓名");
            sheet.Cells[currentRow, 2].PutValue("性别");
            sheet.Cells[currentRow, 3].PutValue("年龄");
            sheet.Cells[currentRow, 4].PutValue("手机");
            sheet.Cells[currentRow, 5].PutValue("固话");
            sheet.Cells[currentRow, 6].PutValue("学院");
            sheet.Cells[currentRow, 7].PutValue("角色");
            sheet.Cells[currentRow, 8].PutValue("咨询类型");
            sheet.Cells[currentRow, 9].PutValue("问题类型");
            sheet.Cells[currentRow, 10].PutValue("个案问题关键词");
            sheet.Cells[currentRow, 11].PutValue("咨询对象");
            sheet.Cells[currentRow, 12].PutValue("录音录像");
            sheet.Cells[currentRow, 13].PutValue("工作性质");
            sheet.Cells[currentRow, 14].PutValue("对性别要求");
            sheet.Cells[currentRow, 15].PutValue("擅长领域");
            sheet.Cells[currentRow, 16].PutValue("可预约时间段");
            sheet.Cells[currentRow, 17].PutValue("紧急程度");

 
            using (MemoryStream ms = workbook.SaveToStream())
            {
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.ContentType = "application/octet-stream";
                var FileName = NPsy.Common.Tool.GetFileName();
                Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName + ".xls");
                Response.BinaryWrite(ms.GetBuffer());
            }
            // 或用下面的方式更简洁
            // workbook.Save(System.Web.HttpContext.Current.Response,  string.Format("{0}.xls", FileName) , ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));

        }

//*********** 前端页面

function ExportTemple() {
        var id = your.value;

        if (id != '') {
           var a =  document.createElement("a");
           a.href = '/url?ID=' + id;
           a.click();
           a.remove();
        } else {
            // 处理
        }
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值