Java net.sf.jxls 生成模板 并导出excel
如果是 maven项目需要引入下面这个就可以
<dependency>
          <groupId>net.sf.jxls</groupId>
          <artifactId>jxls-core</artifactId>
          <version>1.0.3</version>
      </dependency>
- 首先应该先把模板格式定好。
 - 将数据传输过去
 - 遍历数据,之后再深层嵌套遍历
 
直接上代码
     /**
     * 导出采购订单
     */
    @RequiresPermissions("tool:gen:code")
    @BussinessLog(title = "导出采购订单", businessType = BusinessType.GENCODE)
    @GetMapping("/exportToProveExcel/{id}")
    public void exportToProveExcel(HttpServletResponse response,@PathVariable("id") String id) throws IOException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String modelsPath = Global.getTemplatePath();
        PurchaseBillsEntity billsEntity = purchaseBillsService.findPurchaseBillsById(id);
        billsEntity.setPurInvs(purchaseInvsService.findPurchaseInvsByBillId(id));
        Map<String, PurchaseBillsEntity> beans = Maps.newHashMap();
        String sDate=sdf.format(billsEntity.getPurTime());
        billsEntity.setPurTime1(sDate);
        billsEntity.setExcelDetails(purchaseBillsService.collateSpecialty(billsEntity.getPurInvs()));
        beans.put("purchase", billsEntity);
        XLSTransformer transformer = new XLSTransformer();
        String xlsTemplateFileName = modelsPath+"/purchaseTemplate.xls";
        String outputFileName = "purchase-" + sdf.format(new Date()) + ".xls";
        InputStream in=null;
        OutputStream out=null;
        //设置响应
        response.setHeader("Content-Disposition", "attachment;filename=" + outputFileName);
        response.setContentType("application/vnd.ms-excel");
        try {
            in=new BufferedInputStream(new FileInputStream(xlsTemplateFileName));
            Workbook workbook=transformer.transformXLS(in, beans);
            out=response.getOutputStream();
            //将内容写入输出流并把缓存的内容全部发出去
            workbook.write(out);
            out.flush();
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (in!=null){try {in.close();} catch (IOException e) {}}
            if (out!=null){try {out.close();} catch (IOException e) {}}
        }
    }
 @TableField(exist = false)
    private List<ExcelPlanDetailsEntity> excelDetails;
@Data
public class ExcelPlanDetailsEntity implements  Serializable {
private  String specialty;
private List<PurchaseInvsEntity> invsEntityList; //这里直接用的是嵌套循环(每一个专业对应多个个物料)
}
下面模板会显示出来


前段点击链接 跳转的方式进行链接
 function getFilePath(id) {
        location.href =baseURL + "pos/purchaseBills/exportToProveExcel/"+id;
        opt.modal.msg('执行成功,正在生成采购订单请稍后…');
    }
												
											Java net.sf.jxls 生成模板 并导出excel的更多相关文章
- vue  Excel导入,下载Excel模板,导出Excel
		
vue Excel导入,下载Excel模板,导出Excel vue Excel导入,下载Excel模板 <template> <div style="display: ...
 - NPOI根据模板生成chart图表导出Excel
		
导入NPOI的全部dll. 因为NPOI的API里面还没有对于Chart图表方面的操作,所以只能根据提示做好的图表作为模板,修改数据源的方法来改变图表. 注意:NPOI要用2003版以下的excel才 ...
 - SSM poi通过模板 反射导出excel
		
1 import java.lang.reflect.Field; 2 import java.lang.reflect.Method; 3 import java.util.Iterator; 4 ...
 - java 实现用户自由选择字段实现导出EXCEL表格
		
package com.thinkgem.jeesite.common.utils.excel; import java.io.File; import java.io.OutputStream; i ...
 - java通过jxls框架实现导入导出excel
		
//使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 02 03//读取04 05public class ReadExcel {06 private ...
 - 新知识:Java 利用itext填写pdf模板并导出(昨天奋战到深夜四点,知道今天两点终于弄懂)
		
废话少说,不懂itext干啥用的直接去百度吧. ***************制作模板******************* 1.先用word做出界面 2.再转换成pdf格式 3.用Adobe Acr ...
 - 尝试做一个.NET模板填充导出Excel工具
		
园友好,最近晚辈延续上篇后尝试进阶做成Excel模板填充数据生成工具 MiniExcel Template. 主要特点 同样以Stream流.延迟查询避免全部数据载入内存情况,做到1GB内存降低到只需 ...
 - 根据模板导出Excel报表并生成多个Sheet页
		
因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为 根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...
 - 根据模板导出Excel报表并复制模板生成多个Sheet页
		
因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为 根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...
 - 数据导出Excel,动态列
		
今天碰到一个需求,要求将用户回答的问卷及问题导出Excel表格,问卷对应的问题数量不一致,需要动态添加列表头,简单记录. 要导出Excel需要添加poi.jar包 用户-问卷实体(固定列): pack ...
 
随机推荐
- 【2】Kaggle 医学影像数据读取
			
赛题名称:RSNA 2024 Lumbar Spine Degenerative Classification 中文:腰椎退行性病变分类 kaggle官网赛题链接:https://www.kaggle ...
 - 【VMware VCF】VCF 5.2:部署整合架构的SDDC。
			
VMware 前不久发布了 VMware Cloud Foundation 5.2 版本,并带来了许多功能的升级,比如支持 vSAN Max 分解存储,管理工作负载域支持 vSAN ESA 延伸集群, ...
 - 使用.NET源生成器(SG)生成项目的版本号信息
			
之前写过一篇 源生成器生成自动注入的代码 主要是通过SyntaxProvider查找标注特性实现 其实除了SyntaxProvider之外还有几个很重要的Provider,比如:MetadataRef ...
 - 随机读取数组中n个元素
			
需求 随机不重复的显示一系列图片 分析 可使用Math.random(),其作用是返回介于 0(包含) ~ 1(不包含) 之间的一个随机数.先获取到图片路径,将图片路径放入数组中,再随机从数组中读取n ...
 - 【YashanDB数据库】YAS-00413 wait for receive timeout
			
[问题分类]错误码处理 [关键字]yasql,00413 [问题描述]使用工具设置不同并发迁移数据的过程中,导致yasql登录报错:YAS-00413 wait for receive timeout ...
 - ansible部署jdk source /etc/profile 不起作用?
			
问题: ansible调用playbook远程mvn执行打包时发现执行出错,找不到JAVA_HOME.我们的exporter JAVA_HOME=/usr/java/jdk1.8.0写在/etc/pr ...
 - 安卓Android虚拟机分享及使用
			
不知道大家伙在安装安卓虚拟机时被各式各样的问题折磨过没,我在安装安卓虚拟机时,遇到的问题简直就像长江之水源源不断,就算是最后安装好了也会因为各式各样的原因无法进入启动桌面. 当我发现这个可以直接导入到 ...
 - 获取sql语句
			
1.$model->_sql(); 方法实际执行的就是 $model->getLastSql(); 2.fetchSql fetchSql用于直接返回SQL而不是执行查询,适用于任何的CU ...
 - 一篇文章彻底讲懂malloc的实现(ptmalloc)
			
一.前言 C语言提供了动态内存管理功能, 在C语言中, 程序员可以使用 malloc() 和 free() 函数显式的分配和释放内存. 关于 malloc() 和free() 函数, C语言标准只是规 ...
 - .Net 中带有 ? 的运算符
			
// 带 ? 的表达式 // 1. 三元表达式 // 2. ?? 双问号 // obj1 ?? obj2 如果 obj1 为 空(null) 返回 obj2 // Configure the HTTP ...