easypoi模板导出excel以及遇到的合并问题

这篇具有很好参考价值的文章主要介绍了easypoi模板导出excel以及遇到的合并问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

背景是甲方要导出周报,但是导出的周报的样式比较复杂,只能选用模板导出,但是第一次使用模板导出遇到了一些问题的记录


一、模板导出的关键词

下图是来自官方文档的指令图片,附带官网链接,可以直接去官网看
easypoi导出excel合并单元格,java,链表,数据结构
easypoi官网链接

二、模板填写

下图就是我的模板,在测试的时候我感觉&NULL&和&NULL没有太大的区别,另外链表部分如果有为空的列必须要填
easypoi导出excel合并单元格,java,链表,数据结构
在固定文字,即存在于表头或者结尾只需要输入一次的地方可以使用 {{变量名}}
而在下面的列表填写值用的{{ $fe:变量名 t.变量名}},作用是横向遍历并新增,尾端总结这里一样(图片没有是因为我还没加上),这里的t.在官网有介绍,看图,另外}}必须和变量名紧挨着,不能有空格

easypoi导出excel合并单元格,java,链表,数据结构

另外代码中的模板后缀问题,xls和xlsx有一定区别,一般最好使用xlsx
对应程序部分

//获取模板路径,路径后面那个true是开启全sheet页的扫描,只有一个sheet的情况可以不写
		TemplateExportParams params = new TemplateExportParams("temp/week.xlsx", true);
		//开启横向遍历
		params.setColForEach(true);
		//用map是为了键对
		Map<String, Object> data = new HashMap<>();
		//获取要导入的链表信息(为了更方便理解这里代码不是源代码)
		List<类名> list = "获取导入值的方法,可以从数据库或者手动添加";
		//获取表格结尾的人员汇总信息
		String sumPeople = (String) meoiipProcedureFileMapper.getProjectPeopleDepart(ProjectContext.getPojectId());
		//根据在表格中的变量名称放入数据
		data.put("duringDate", "我这里下了一个方法来获取时间");
		data.put("loginer", "导出人姓名,比如admin或者方法获取");
		//链表导入要根据easypoi的官网的指令,此处使用{{$fe}},遍历并新增行,如你所见直接填写链表名称就可以
		data.put("report",list);
		data.put("peoplePlan"," 本周派遣人员:"+sumPeople+";下周计划派遣人员:"+sumPeople+"。");

三、导出模板合并问题

在导出时遇到一个问题就是导出多行的时候,由于后面几个实际上是多列合并为一列,除去开头和结尾的行,其余行都没有合并单元格,这是easypoi本身的bug,看这个方法MergedRegionHelper.class,这是在另一个大佬那里看到的,解决方法是在方法里合并单元格
easypoi导出excel合并单元格,java,链表,数据结构

//这是easypoi的bug,在4.4.0版本也没有解决所以手动合并
Workbook book = new FsscExcelUtil().createExcelByTemplate(params, null, null, data);
//这里的参数从左右到右分别是,第一sheet页,初始行,最终行,初始列,最终列
PoiMergeCellUtil.addMergedRegion(book.getSheetAt(0),5,list.size()+4,8,24);

四 结尾部分

//设置语言
		response.setCharacterEncoding("UTF-8");
		response.setHeader("content-Type", "application/vnd.ms-excel");
		response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("现场施工周报" + ".xlsx", "UTF-8"));
		book.write(response.getOutputStream());

以上代码拼起来就是完整的方法啦


总结

以上就是我在模板导出部分遇到的问题以及解决方法啦,希望对你有所帮助。
另外我对模板导入也不是很理解,还不会在模板导入的时候搞列合并,以及对于指令]]也不是很理解文章来源地址https://www.toymoban.com/news/detail-515946.html

到了这里,关于easypoi模板导出excel以及遇到的合并问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 模板文件导出Excel【EasyPoi实战系列】- 第478篇

    ​历史文章( 文章 累计470+) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 【EasyPoi实战系列】Spring Boot使用Ea

    2024年02月11日
    浏览(34)
  • Java POI导出Excel时,合并单元格没有边框的问题

    今天用POI导出Excel的时候,发现导出的单元格确少边框,最后发现有2个方案可以解决。 CellRangeAddress的4个参数分别表示:起始行号,终止行号, 起始列号,终止列号

    2024年02月14日
    浏览(38)
  • poi+easypoi实现表头多层循环,多级动态表头、树形结构动态表头、纵向合并单元格、多个sheet导出

    我前面也写过几篇关于easypoi复杂表格导出的文章,什么一对多纵向合并、多级表头、动态表头、多个sheet等,这些我写那几篇文章之前做项目都遇到过,并且都实现出来了。 感兴趣的可以看看: easypoi多级表头、多个sheet导出,动态导出列、动态更改表头 easypoi一对多,纵向合

    2024年02月08日
    浏览(36)
  • Easypoi word 模板导出问题

    按word模板导出报错 源代码:  报的错误信息: 错误原因:linux环境路径找不到 linux 环境打印路径如下: templateFile.getPath():file:/home/sjzx/backend/admin/sjzx-admin-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/word/template.docx windos环境打印路径ruxi templateFile.getPath():D:workplacesjzx-backendsjzx-admintargetclasse

    2024年02月01日
    浏览(36)
  • Java导出Excel并合并单元格

    需求:需要在导出excel时合并指定的单元格 项目基于若伊框架二次开发,本着能用现成的就不自己写的原则,先是尝试了@Excel注解中needMerge属性 查了一圈别人的使用,大致是需要定义一个List集合,集合元素为对象,对象中的属性标注@Excel注解,并表明name属性 照葫芦画瓢 查

    2024年01月19日
    浏览(30)
  • 若依框架自定义导出Excel多sheet页+合并单元格(Poi)

    先看效果:     在用若依框架是发现自带的导出功能中并不能导出多个sheet和合并单元格,所以我在这里做了修改希望可以帮到你,用到的点个赞呗! 我们先一步步来 整个程序的思路为先返回下载地址,然后根据下载地址去下载excel 首先是我们需要excel的下载地址,这里我们

    2024年02月03日
    浏览(39)
  • 前端vue+elementui导出复杂(单元格合并,多级表头)表格el-table转为excel导出

    需求 :前端对el-table表格导出 插件 : npm install xlsx -S npm install file-saver --save 原理 :直接导出el-table的表格里面的数据,这样就会存在缺点,只会导出当前页面的数据,如果需要导出全部数据,可以自己重新渲染一个全部数据不可见的el-table表格,来导出就可以了 扩展 :经过

    2024年02月04日
    浏览(60)
  • 使用EasyPoi导出Excel

        注意日期类型 注解内要加上: exportFormat = \\\"yyyy-MM-dd hh:mm:ss\\\"   属性字段 属性值 @TableField 这个字段代表数据库表的字段 @Excel name代表导出Excel列名称 @Excel orderNum代表Excel列排在第几列 @Excel replace一般数据库存的性别例如0和1,导出的值0展示为男性,女展示为女性   直接调用

    2023年04月15日
    浏览(40)
  • vue导入导出excel、设置单元格背景色、文字居中、合并单元格、设置列宽(使用xlsx库和xlsx-style库)

    xlsx 是由 SheetJS 开发的一个处理excel文件的npm库 适用于前端开发者实现导入导出excel文件的经典需求 为了区别于xlsx文件,突出其应用语言,该库通常又被称为 js-xlsx 需要以下步骤: 安装 xlsx 库 你可以使用 npm 包管理器安装 xlsx 库,也可以将 xlsx 下载到本地,然后在 HTML 文件中

    2024年02月16日
    浏览(42)
  • EasyPoi快速入门(Excel导入导出工具)

    简介: easypoi是一款Excel快速导入导出的工具,最近有所使用,结合了网上的一些用法和官方文档的介绍,在在这里总结一下最简单的esaypoi导入Excel的实现,网上很多教程都已经封装了工具类,虽然方便,但第一次接触easypoi可能看的不是清晰,现在总结一下最为直观的SpringBoot集成easypoi快

    2023年04月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包