java导出excel并压缩
来源:互联网 发布:java项目怎么打jar包 编辑:程序博客网 时间:2024/06/06 07:28
- /**
- * 导出支付宝批量支付文件excel
- *
- * @param name
- * @param begintime
- * @param endtime
- * @param p
- * @param l
- * @param k
- * @param request
- * @param response
- */
- @RequestMapping("exportApplyBatchExcel")
- public void exportApplyBatchExcel(String name, String begintime, String endtime, Integer p, Integer l, String k,
- HttpServletRequest request, HttpServletResponse response) {
- // if (auth.getCurrentUserId(k) == null) {
- // ResponseUtil.json(JsonUtil.toString(GenericResponses.TOKEN_LOSE),
- // response);
- // return;
- // }
- // 逐页查询数据,将所有数据导出到excel表中(注:此方法中不传p,l参数,使用的是service层中,默认的第1页开始,每页显示50条)
- Integer pp = 1;
- Long tt = 1l;
- String[] headers = { "批次号", "付款日期", "付款人email", "账户名称", "总金额(元)", "总笔数" };
- OutputStream out = null;
- while (true) {
- pp++;
- // 查询数据库
- ListResponse<?> listResponse = this.finApi.selectApplyBatch(name, begintime, endtime, p, l, k);
- // 获取总页数
- Long total = listResponse.getTotal();
- if (tt > 0) {
- tt = total - pp;
- } else {
- break;
- }
- // 获取查询结果,数据列表
- Object result = listResponse.getResult();
- // 类型转换
- if (result != null) {
- List<ApplyBatchMXVo> applyBatchMXVos = JsonUtil.readJsonList(JsonUtil.toString(result),
- ApplyBatchMXVo.class);
- // 导出
- try {
- // 设置导出excel文件
- out = response.getOutputStream();
- ZipOutputStream zipOutputStream = new ZipOutputStream(out);
- String fileName = "批量支付文件" + ".zip";
- response.setContentType("application/octet-stream ");
- response.setHeader("Connection", "close"); // 表示不能用浏览器直接打开
- response.setHeader("Accept-Ranges", "bytes");// 告诉客户端允许断点续传多线程连接下载
- response.setHeader("Content-Disposition",
- "attachment;filename=" + new String(fileName.getBytes("GB2312"), "ISO8859-1"));
- response.setCharacterEncoding("UTF-8");
- // 遍历填充数据
- for (ApplyBatchMXVo vo : applyBatchMXVos) {
- List<List<Object>> datas = new ArrayList<>();
- List<Object> data = new ArrayList<>();
- data.add(vo.getId());// 批次号
- data.add(vo.getCreateTime());// 付款时间
- data.add(vo.getPayAccount());// 付款人email
- data.add(vo.getPayName());// 账户名称
- data.add(vo.getTotalCost());// 总金额(元)
- data.add(vo.getTotalCount());// 总笔数
- datas.add(data);
- List<Object> data2 = new ArrayList<>();
- // 插入第二行表头
- data2.add("商户流水号");// 商户流水号
- data2.add("收款人email");// 收款人email
- data2.add("收款人姓名");// 收款人姓名
- data2.add("付款金额(元)");// 付款金额(元)
- data2.add("付款理由");// 付款理由
- datas.add(data2);
- for (ApplyMoneyMXVo amvo : vo.getApplyMoneyMXVos()) {
- List<Object> data3 = new ArrayList<>();
- data3.add(amvo.getApplyNo());// 商户流水号
- data3.add(amvo.getUserAccount());// 收款人email
- data3.add(amvo.getUserName());// 收款人姓名
- data3.add(amvo.getMoney());// 付款金额(元)
- data3.add(amvo.getPayCase());// 付款理由
- datas.add(data3);
- }
- // 导出文件zip压缩设置
- Workbook book = GenerateXmlUtil.generateCreateXsl(headers, datas, "批量支付文件");
- ZipEntry entry = new ZipEntry(vo.getId() + ".xls");
- zipOutputStream.putNextEntry(entry);
- book.write(zipOutputStream);
- }
- // 关闭输出流
- zipOutputStream.flush();
- zipOutputStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- ResponseUtil.text(TraceUtil.trace(e), response);
- }
- }
- // 重新设置分页参数
- p = pp;
- }
- }
阅读全文
0 0
- java导出excel并压缩
- java 导出并下载excel
- JAVA导出EXCEL并下载
- java excel导出并下载
- java导出Excel并下载
- java导出excel并下载
- java导出多个excel表格,并压缩成zip输出
- Java通过Spring MVC导出批量Excel文件压缩包,并弹出下载框
- java实现Excel压缩成Zip导出
- java导出word并压缩,含有表
- java图片的导出,并压缩
- j2se导出多个excel 并压缩输出
- java导出excel文件(压缩后导出)
- java读取数据库并导出到Excel
- java导出EXCEL并操作格式
- java web导出excel并下载
- java-导出excel并解决乱码问题
- java 提取曲线图数值并导出excel
- 2.3 战争的基本原则
- 2.3.2 《战争论》的基本原则
- 深入分析volatile的实现原理
- 声发射噪声源判断及噪音信号剔除
- 2.3.3 《战略论--间接路线》…
- java导出excel并压缩
- Spring Boot自定义错误页面
- 2.3.4 《孙子兵法》的基本原则
- HDU 6171 Admiral [双向bfs+hash]
- 图片传值(ViewPager+滑动+缩放)
- 2.3.5 《五轮书》的基本原则
- 数据结构之链表简单操作
- 2.3.6 游击战的基本原则
- 2.4 军事与广义动量定理