如果是 maven项目需要引入下面这个就可以

  1. <dependency>
  2. <groupId>net.sf.jxls</groupId>
  3. <artifactId>jxls-core</artifactId>
  4. <version>1.0.3</version>
  5. </dependency>
  1. 首先应该先把模板格式定好。
  2. 将数据传输过去
  3. 遍历数据,之后再深层嵌套遍历

直接上代码

  1. /**
  2. * 导出采购订单
  3. */
  4. @RequiresPermissions("tool:gen:code")
  5. @BussinessLog(title = "导出采购订单", businessType = BusinessType.GENCODE)
  6. @GetMapping("/exportToProveExcel/{id}")
  7. public void exportToProveExcel(HttpServletResponse response,@PathVariable("id") String id) throws IOException {
  8. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  9. String modelsPath = Global.getTemplatePath();
  10. PurchaseBillsEntity billsEntity = purchaseBillsService.findPurchaseBillsById(id);
  11. billsEntity.setPurInvs(purchaseInvsService.findPurchaseInvsByBillId(id));
  12. Map<String, PurchaseBillsEntity> beans = Maps.newHashMap();
  13. String sDate=sdf.format(billsEntity.getPurTime());
  14. billsEntity.setPurTime1(sDate);
  15. billsEntity.setExcelDetails(purchaseBillsService.collateSpecialty(billsEntity.getPurInvs()));
  16. beans.put("purchase", billsEntity);
  17. XLSTransformer transformer = new XLSTransformer();
  18. String xlsTemplateFileName = modelsPath+"/purchaseTemplate.xls";
  19. String outputFileName = "purchase-" + sdf.format(new Date()) + ".xls";
  20. InputStream in=null;
  21. OutputStream out=null;
  22. //设置响应
  23. response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName);
  24. response.setContentType("application/vnd.ms-excel");
  25. try {
  26. in=new BufferedInputStream(new FileInputStream(xlsTemplateFileName));
  27. Workbook workbook=transformer.transformXLS(in, beans);
  28. out=response.getOutputStream();
  29. //将内容写入输出流并把缓存的内容全部发出去
  30. workbook.write(out);
  31. out.flush();
  32. } catch (InvalidFormatException e) {
  33. e.printStackTrace();
  34. } catch (IOException e) {
  35. e.printStackTrace();
  36. } finally {
  37. if (in!=null){try {in.close();} catch (IOException e) {}}
  38. if (out!=null){try {out.close();} catch (IOException e) {}}
  39. }
  40. }
  1. @TableField(exist = false)
  2. private List<ExcelPlanDetailsEntity> excelDetails;
  3. @Data
  4. public class ExcelPlanDetailsEntity implements Serializable {
  5. private String specialty;
  6. private List<PurchaseInvsEntity> invsEntityList; //这里直接用的是嵌套循环(每一个专业对应多个个物料)
  7. }

下面模板会显示出来

前段点击链接 跳转的方式进行链接

  1. function getFilePath(id) {
  2. location.href =baseURL + "pos/purchaseBills/exportToProveExcel/"+id;
  3. opt.modal.msg('执行成功,正在生成采购订单请稍后…');
  4. }

Java net.sf.jxls 生成模板 并导出excel的更多相关文章

  1. vue Excel导入,下载Excel模板,导出Excel

    vue  Excel导入,下载Excel模板,导出Excel vue  Excel导入,下载Excel模板 <template> <div style="display: ...

  2. NPOI根据模板生成chart图表导出Excel

    导入NPOI的全部dll. 因为NPOI的API里面还没有对于Chart图表方面的操作,所以只能根据提示做好的图表作为模板,修改数据源的方法来改变图表. 注意:NPOI要用2003版以下的excel才 ...

  3. SSM poi通过模板 反射导出excel

    1 import java.lang.reflect.Field; 2 import java.lang.reflect.Method; 3 import java.util.Iterator; 4 ...

  4. java 实现用户自由选择字段实现导出EXCEL表格

    package com.thinkgem.jeesite.common.utils.excel; import java.io.File; import java.io.OutputStream; i ...

  5. java通过jxls框架实现导入导出excel

    //使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 02 03//读取04 05public class ReadExcel {06 private ...

  6. 新知识:Java 利用itext填写pdf模板并导出(昨天奋战到深夜四点,知道今天两点终于弄懂)

    废话少说,不懂itext干啥用的直接去百度吧. ***************制作模板******************* 1.先用word做出界面 2.再转换成pdf格式 3.用Adobe Acr ...

  7. 尝试做一个.NET模板填充导出Excel工具

    园友好,最近晚辈延续上篇后尝试进阶做成Excel模板填充数据生成工具 MiniExcel Template. 主要特点 同样以Stream流.延迟查询避免全部数据载入内存情况,做到1GB内存降低到只需 ...

  8. 根据模板导出Excel报表并生成多个Sheet页

    因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为  根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...

  9. 根据模板导出Excel报表并复制模板生成多个Sheet页

    因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为  根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...

  10. 数据导出Excel,动态列

    今天碰到一个需求,要求将用户回答的问卷及问题导出Excel表格,问卷对应的问题数量不一致,需要动态添加列表头,简单记录. 要导出Excel需要添加poi.jar包 用户-问卷实体(固定列): pack ...

随机推荐

  1. JavaScript设计模式样例十 —— 组合模式

    组合模式(Composite Pattern) 定义:又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.目的:将对象组合成树形结构以表示"部分-整体"的层次结构.场景:您 ...

  2. OpenTelemetry 实战:从零实现应用指标监控

    前言 在上一篇文章:OpenTelemetry 实战:从零实现分布式链路追踪讲解了链路相关的实战,本次我们继续跟进如何使用 OpenTelemetry 集成 metrics 监控. 建议对指标监控不太 ...

  3. python pyqt6 QMainWindow 使用QComboBox 窗口移位

    QMainWindow 可拖拽移动,但是点击QComboBox  时,窗口有时会误识别为拖拽移动,导致窗口自动移动位置 在QMainWindow中,新增事件筛选器 # 避免点击QComboBox时,窗 ...

  4. PicGo RequestError: Error: tunneling socket could not be established, cause=connect ECONNREFUSED 127.0.0.1:36677

    PicGo RequestError: Error: tunneling socket could not be established, cause=connect ECONNREFUSED 127 ...

  5. SQL Server STRING_AGG

    参考: How To Use STRING_AGG – Concat Multiple Row Values In SQL Server 如果你想做 string.join(',', collecti ...

  6. ASP.NET Core – Handle Error on Web API

    前言 上一篇讲了 ASP.NET Core – Handle Error on Razor Page 这一篇继续说说 Web API 的错误处理. 主要参考 Handle errors in ASP. ...

  7. C# 开源浏览器性能提升,体验Chrome级速度

    前言 使用 C# 和 CefSharp 开发的全功能网页浏览器. 项目介绍 SharpBrowser 是目前最快的开源 C# 网页浏览器! 采用了轻量级的 CEF 渲染器,在呈现网页时甚至比 Goog ...

  8. Project: Kill e

    接到上级任务,今天来暗杀 \(e\) 据说杀死 \(e\) 的方式就是把他算出来,好吧,现在我们还是来算一下 考虑使用如下代数式求解 \[e\ \text{site:baidu.com} \] 虽然我 ...

  9. 三大硬核方式揭秘:Java如何与底层硬件和工业设备轻松通信!

    大家好,我是V哥,程序员聊天真是三句不到离不开技术啊,这不前两天跟一个哥们吃饭,他是我好多年前的学员了,一直保持着联系,现在都李总了,在做工业互联网相关的项目,真是只要 Java 学得好,能干一辈子, ...

  10. 剪枝的应用,bfs判重 蚱蜢跳——蓝桥p642

    **问题描述 总共有九个盘子,八只蚱蜢,且每个盘子中只能容下一只蚱蜢,蚱蜢的编号为1~8,如果蚱蜢所在的盘子紧邻着空盘子,那么该蚱蜢可以从自己的盘子跳到空盘子中,也可以隔一个盘子跳到空盘子中,问一开始 ...