EasyPOI不逗你,直接上干货,实战分享Export导出
小白浅谈,多多指点,也不多啰里吧嗦;就是一个技巧分享,记录一下自己的成果。做编程开发的、特别是偏后端Java的,或多或少都要接触到数据乃至出数据报表,今天就分享使用叫一个叫EasyPOI的技术集成框架,帮助我们快速实现导出需求。
直接开干,最近拿到一个这样的需求,业务同事给了一个Excel数据模板,希望按照他的文件格式来一份数据统计报表,如下图
作为久经沙场的菜鸟,首先想到的就是通过模板方式导出,确定了技术方案,搜寻尝试一波之后选定了我们今天的主角:EasyPOI,感兴趣的可以自行查阅相关介绍和教程,今天不讲基础,不讲理论,直接上实践,上模板,如下图
制定模板文件时,使用到的EasyPOI的技术点模板指令:$fe: 下移插入,把当前行,下面的行全部下移.size()行,然后插入 n: 表示 这个cell是数值类型 {{n:}} fn: 格式化数字 {{fn:(obj;###.00)}} 采用{{}}写法表达式,然后根据表达式里面的数据取值
生成报表时使用的技术点
pom文件依赖:(因为使用的是spring-boot) cn.afterturn easypoi-spring-boot-starter 4.4.0
代码:
合并单元格中变量valSize是一个int类型,及集合的大小,因为模板文件上方的集合是一个动态的list,而模板下面有另一个小集合统计"集团"这列需要做合并处理,这一行不能无法固定最终在哪,所以选择使用上方固定几行(5)+list的大小来确定最终"xxx百货"是在文件的哪一行合并。
模板中取值的变量名实际就是按照需要定义对应的java实体对象,和我们在前端展示数据是一个道理,表达式不一样而已。TemplateExportParams params = new TemplateExportParams("templates/SUMYYYYMM-Ts.xlsx"); map.put("date", "20221201-20230131"); map.put("totalAmt", "2567893120.0054"); Workbook workbook = ExcelExportUtil.exportExcel(params, map); //合并单元格 PoiMergeCellUtil.mergeCells(workbook.getSheetAt(0), 5+valSize, 0, 1); File savefile = new File("D:tempexcel"); if (!savefile.exists()) { savefile.mkdirs(); } try(FileOutputStream fos = new FileOutputStream("D:tempexceloutSUMYYYYMM01.xlsx")){ workbook.write(fos); }
看似简单,实际也是尝试了很多遍才达到最终效果,我喜欢用哪一块就看哪一块知识点,主要是模板的制定,也走过一些弯路,按照这个思路,实际上是可以横向动态遍历,横向的列是动态的,如果做成横向动态,应该是比较万能吧。
个人浅见,希望对各位码友有所帮助!
一个来自真实二胎妈妈的口述一个真实的故事,如果你喜欢这篇文章欢迎转发,让更多的二胎妈妈看到!谢谢!01hr都说出生顺序决定性格,这个,我真信。比如我姐,比我早出生三年,作为老大,她在我眼里,简直是倔得自讨苦
FENG景创森动态充满温度与色彩的公园长辛店二七公园为充分展现丰台区创森成果我们将逐个介绍丰台区的百余处公园快来看看有没有你家门口的公园今天,小编要为大家介绍的是长辛店二七公园小编带你赏长辛店二七公园隶属于北京市丰台区园林绿化局,原
秋萍退休后一人一车自驾游98天,训练有素的小海鸭今天在海边溜达,碰到一群小海鸭,以前只吃过海鸭蛋,但是,从没有见过在海里游泳的小鸭子。所以,特别好奇,立刻拿着手机扑像它们,也不顾松软的沙土踩下去,海水就会把鞋子弄湿。这群鸭子好像
人老了,想要安度晚年,需要拥有以下四个依靠01hr人这一生,皆在自渡。现实告诉你,有钱能使鬼推磨,没钱寸步难行。没有钱的老人,生活很苦,走到哪里,都会招人嫌弃。吃吃喝喝生病住院走亲访友,哪一样都要钱。因此,很多人在中年的时
人间蒸发的山西前首富李兆会跑路了?今天要提到的主人公李兆会,当初那绝对是资本界的操盘高手,李兆会1981年生于山西闻喜,2003年1月,李兆会因父亲李海仓遇刺,而中断了在澳大利亚的学习,回到国内继承由其父亲一手建立
别把孩子养成老实人,父母常说5句话,孩子自信又勇敢有句话叫做老实人,办老实事,这是一种人生的态度,也是为人处世的准则。可如果孩子太过老实,缺乏变通,老实过头了,变成迂腐,还容易受人欺负,保护不了自己的利益。不让老实人吃亏,更多地是
1965年,李宗仁自美回国,蒋介石特务沿路追杀,巴基斯坦帮了大忙1965年7月12日下午2点,一位老人小心翼翼地坐上了从苏黎世飞往香港的飞机。,一路之上,他头戴紫色礼帽,全身上下都被包裹得严严实实,只露出一双眼睛注视着身边的一举一动。只是这位老
1955年,上将名单中王建安因骄傲自满被去除,这是为什么?1955年新中国开始建国后的第一次全体授衔共分元帅,大将,上将,中将及少将五等军衔,用以表彰在新中国建立过程中抛洒热血的功勋良将。但是就在授衔前毛主席看着名单中的一人对其进行单独的
从多元一体视角认识仰韶文化重要性1921年,仰韶遗址的发掘和仰韶文化的命名,开启了以考古学对中华文明起源的科学探索。百年探索得到的一个重要结论是中华文明的形成在辽阔的地理背景中展开,经历了各地区多元发展相互碰撞最
三国杀强度不弱的老将刘封作为一将成名2013的老将之一,刘封自上线初就备受诟病,只因为他的技能看起来并没有什么用,用起来甚至是自杀的利器,但这只是新手玩家的做法。而刘封在真正的会玩的玩家手里却是控场的利器
问道内测更新等级上限突破赠送道具改为限制交易乾坤罩调整大家好,我是小鹿,最近问道手游内测服进行了更新,比起以往的日常活动的测试,这次出了不少关乎各位道友的更新,那就是这么长时间终于开了等级上限,对于乾坤罩五色光环也进行了调整。在经过一