easypoi的封装是非常好的,用起来很简单。

官方教程地址:http://easypoi.mydoc.io/

但是在使用模板导出图片到合并单元格时出问题了,官网找了好几遍没找到方案。

其实官方早就实现了只是没有直接的文档说明。解决办法:

走起:

先上图片:

1、模板

2、导出效果

3、文件存放位置

4、代码实现

坑就在这里,官网里有这个模板导出图片的例子,但是是导出到单个单元格。没说合并单元格的情况下怎么导出。所以我在模板里合并了单元格,再导出的图片,结果图片只填充第一个单元格,并没有填充满整个合并后的单元格。然后就设置宽和高,结果只是撑大了第一个单元格。网上都查遍了也没有解决方案。最后自己仔细看了看ImageEntity这个类,测试后发现,通过ImageEntity再去合并单元格就ok了。在此呈上解决方案。

import cn.afterturn.easypoi.entity.ImageEntity;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import org.apache.poi.ss.usermodel.Workbook;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;public class ExcelTest {public static void main(String[] args) {//第二个参数true是为了开启多sheet扫描,就是同一个xls文件中有多个工作表的时候。// false则只填充一个sheet。我这里只有一个sheet可以为false。也可以为trueTemplateExportParams params = new TemplateExportParams("E:\\easypoi\\temp.xlsx", true);//创建map存放需要替换的内容Map<String,Object> map = new HashMap<>();map.put("name","groot");//添加姓名//下边开始添加图片。有几个注意点。ImageEntity image = new ImageEntity();//#1、大小尽量不要在这里设置、在模板里调整好大小更好。不设置图片大小就会直接填充满模板里的单元格。
//        image.setHeight(200);
//        image.setWidth(500);//#2、这里是设置合并单元格,但是千万不要再模板你提前合并单元格。合并了这里会报错。行合并多少个格子在这里设置。image.setRowspan(3);//向下合并三行image.setColspan(2);//向右合并两列//添加图片image.setUrl("E:\\easypoi\\1.jpg");map.put("desktop",image);//放入map//放入desktop图片ImageEntity image2 = new ImageEntity();
//        image.setHeight(200);
//        image.setWidth(500);image2.setRowspan(3);image2.setUrl("E:\\easypoi\\2.png");map.put("qrcode",image2);//数据载入,生成excel文件Workbook book = ExcelExportUtil.exportExcel(params, map);//创建保存路径、这不可以省略、如果路径存在了可以不用创建。这里是防止路径不存在的File savefile = new File("E:\\easypoi\\");if (!savefile.exists()) {savefile.mkdirs();}try {//设置导出文件名、创建输出流FileOutputStream fos = new FileOutputStream("E:\\easypoi\\excel.xlsx");//导出excel文件book.write(fos);fos.close();} catch (IOException e) {e.printStackTrace();}}
}

5、pom配置依赖(貌似所有的都在这了,这个功能只需要使用easypoi-base即可)

            <!-- https://mvnrepository.com/artifact/cn.afterturn/easypoi-base --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.1.2</version></dependency><!-- https://mvnrepository.com/artifact/cn.afterturn/easypoi-annotation --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.1.2</version></dependency><!-- https://mvnrepository.com/artifact/cn.afterturn/easypoi-web --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>4.1.2</version></dependency><!-- https://mvnrepository.com/artifact/cn.afterturn/easypoi --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi</artifactId><version>4.1.2</version><type>pom</type></dependency>

easypoi利用模板导出图片到Excel;解决easypoi导出图片到合并单元格单元格被拉伸的问题相关推荐

  1. 性能碾压 POI !利用模板语法快速生成 Excel 报表

    本期讲师:刘鹏 GcExcel项目组,核心开发者 Hello,大家好,本期葡萄城技术公开课,将由我来为大家带来<性能碾压 POI !利用模板语法快速生成 Excel 报表>的技术分享. 本 ...

  2. PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。

    PHP 利用PHPExcel到处数据到Excel:还有导出数据乱码的解决方案. 参考文章: (1)PHP 利用PHPExcel到处数据到Excel:还有导出数据乱码的解决方案. (2)https:// ...

  3. PR导出错误怎么办?解决PR导出视频提示“编译影片时出错“ GPU渲染错误 错误代码:-1609629695

    有位用户在使用PR模板制作视频时,遇到PR导出出错的问题,问题描述:编译影片时出错,加速渲染器错误"(如下图所示) 编译影片时出错. GPU渲染错误 无法处理帧. 这部分因视频内容不同而出错 ...

  4. php导出复杂表头excel,php如何导出复杂列的excel?

    //前台处理 document.getElementById("a_export").οnclick=function(){ $("#LoadingPark") ...

  5. Excel 2010 VBA 入门 033 批量合并相同的单元格

    目录 Range的Merge方法合并单元格 VBA运行时关闭警告 多行中相同的内容处理 示例: Range的Merge方法合并单元格 单元格对象的Merge方法可以用来合并相邻的单元格区域,使之成为一 ...

  6. easypoi导出数值型_解决EasyPoi导出Excel金额数值类型

    前言 实际业务中,业务部门总有各种苛刻的要求,于是就开始了斗智斗勇节奏... X:这数字怎么不是数值类型的? 我:数值和文本有什么区别吗? X:当然有区别,我们要快速看总和.平均值等等 我:好...S ...

  7. jsPdf+html2Canvas+react实现前端页面导出pdf,并解决jspdf分页图片过长截断问题

    第一步 在utils下面创建一个工具文件exportPDF.js 以下每一句代码都有对应的注释,并且针对不同情况,作出了相应的解释,如果有需要的话,请耐心看完. import html2Canvas ...

  8. axios 请求接口获取文件流数据导出数据到excel,解决乱码

    axios.get("URL",{params:{data1:data1,data2:data2},headers: { 'Content-Type': 'application/ ...

  9. yy 服务器维护中 图片无法显示,解决简书图片不显示问题“系统维护中,图片暂时无法加载”...

    天突然发现之前的文章图片全部都这样了,我还以为图片丢了! 9949918-5bfb96c2b65b9c7e.png 但是其实图片还是可以访问的 配合 Chrome,Safari 扩展程序 Tamper ...

最新文章

  1. ACMNO.48 01字串
  2. 54页PPT揭示AI革命及其前沿进展!
  3. php操作session
  4. OpenCV简介及图像处理示例教程
  5. 浅谈JAVA中如何利用socket进行网络编程(二)
  6. 苹果cms v8模板 红色动漫影视模板
  7. UI设计和平面设计有什么区别哪个前景更好
  8. excel 第六次人口普查_计算机二级考试真题-Excel-第六次人口普查数据的统计分析...
  9. Java api监控_网站api监控、api监控教程详解
  10. 深入详细理解矩阵 (矩阵的加减乘、转置、共轭、共轭转置)
  11. Java基础知识点梳理
  12. jpype了解,获取,安装
  13. three.js obj模型的mtl材质贴图不显示
  14. js+html 实现关系拓扑图
  15. html编辑器贴吧,推荐HTML编辑器
  16. Sun开源拳头产品迎不同未来
  17. Apple Pay支付分享
  18. C语言位运算符:与、或、异或、取反、左移和右移
  19. 何谓BLDC电机?BLDC电机是如何旋转的?
  20. IFIX所有版本的操作系统支持

热门文章

  1. 学了 C 语言到底能做什么, 能从事什么工作?(附课程)
  2. 直击本质:聊聊小程序的前世今生
  3. Mac电脑搞自动化浏览器总是自动化更新怎么办?看这个就可以了。
  4. w3c 斐波纳契奇数求和算法挑战
  5. 用PowerPoint2007制作倒计时进度条
  6. Binary Knapsack (BKP) Problem 是什么
  7. 关于ntko从后台传输文档时发生文件存取错误,暨关于response使用的注意点
  8. 【设计模式】迪米特法则
  9. 《Hud 2589》Phalanx详解
  10. 密码学0930大作业