EasyPOI 导出图片存在合并单元格只填充一个单元格问题
时间:2019-08-20
本文章向大家介绍EasyPOI 导出图片存在合并单元格只填充一个单元格问题,主要包括EasyPOI 导出图片存在合并单元格只填充一个单元格问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
重写cn.afterturn.easypoi.excel.export.template.ExcelExportOfTemplateUtil
添加 createImageCell 方法
1 public void createImageCell(Cell cell, double height, String imagePath, byte[] data) throws Exception { 2 if(height > (double)cell.getRow().getHeight()) { 3 cell.getRow().setHeight((short)((int)height)); 4 } 5 //获取当前单元格所在的sheet 6 Sheet sheet = cell.getRow().getSheet(); 7 //获取当前sheet页中的所有合并单元格信息 8 List<CellRangeAddress> mergedRegions = sheet.getMergedRegions(); 9 //获取当前单元格的开始列号 10 int firstColumn = (short)cell.getColumnIndex(); 11 //获取当前单元格的开始行号 12 int firstRow = cell.getRow().getRowNum(); 13 //获取当前单元格的结束列号 14 int lastColumn = (short)(cell.getColumnIndex()); 15 //获取当前单元格的结束行号 16 int lastRow = cell.getRow().getRowNum(); 17 for(CellRangeAddress mergedRegion : mergedRegions){ 18 //判断当前单元格是否包含合并行或和并列 当前单元格的所有行号和列号都包含在合并域内 则认为当前单元格存在合并行或和并列 19 if(cell.getColumnIndex()>=mergedRegion.getFirstColumn() 20 && cell.getColumnIndex()<=mergedRegion.getLastColumn() 21 && cell.getRow().getRowNum()>=mergedRegion.getFirstRow() 22 && cell.getRow().getRowNum()<=mergedRegion.getLastRow()){ 23 //获取合并域的开始行号 24 firstRow = mergedRegion.getFirstRow(); 25 //获取合并域的结束行号 26 lastRow = mergedRegion.getLastRow(); 27 //获取合并域的开始列号 28 firstColumn = mergedRegion.getFirstColumn(); 29 //获取合并域的结束列号 30 lastColumn = mergedRegion.getLastColumn(); 31 break; 32 } 33 } 34 35 Object anchor; 36 if(this.type.equals(ExcelType.HSSF)) { 37 anchor = new HSSFClientAnchor(0, 0, 0, 0, (short)firstColumn, firstRow, (short)(lastColumn+1), lastRow+1); 38 } else { 39 anchor = new XSSFClientAnchor(0, 0, 0, 0, (short)firstColumn, firstRow, (short)(lastColumn+1), lastRow+1); 40 } 41 42 if(StringUtils.isNotEmpty(imagePath)) { 43 data = ImageCache.getImage(imagePath); 44 } 45 46 if(data != null) { 47 PoiExcelGraphDataUtil.getDrawingPatriarch(cell.getSheet()).createPicture((ClientAnchor)anchor, cell.getSheet().getWorkbook().addPicture(data, this.getImageType(data))); 48 } 49 50 } 51
原文地址:https://www.cnblogs.com/jia-0112/p/11385588.html
- php性能监测模块XHProf
- BZOJ 1022: [SHOI2008]小约翰的游戏John (Anti-nim)
- 洛谷P2252 取石子游戏(威佐夫博弈)
- HDU 3032 Nim or not Nim?(Multi-Nim)
- POJ 2311 Cutting Game(二维SG+Multi-Nim)
- js去掉html标签和去掉字符串文本的所有的空格
- php操作memcache的使用测试总结
- linux awk命令详解
- php str_split 解决中文
- PHP汉字转拼音函数
- 51NOD 1185 威佐夫游戏 V2(威佐夫博弈)
- HDU 1527 取石子游戏(威佐夫博弈)
- PHP文件操作类
- Linux添加/删除用户和用户组
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php微信扫码支付 php公众号支付
- PHP析构函数destruct与垃圾回收机制的讲解
- 关于php unset对json_encode的影响详解
- python实现二分类和多分类的ROC曲线教程
- PHP随机数函数rand()与mt_rand()的讲解
- PHP实现小程序批量通知推送
- Keras loss函数剖析
- Laravel使用scout集成elasticsearch做全文搜索的实现方法
- python3.4中清屏的处理方法
- TensorFlow Autodiff自动微分详解
- python interpolate插值实例
- pandas.DataFrame.drop_duplicates 用法介绍
- python如何进入交互模式
- PHP静态方法和静态属性及常量属性的区别与介绍
- 详解PHP变量传值赋值和引用赋值变量销毁