java 基于poi 写入excel 合并单元格
来源:互联网 发布:庆钰软件科技有限公司 编辑:程序博客网 时间:2024/05/01 19:55
效果图如下:
提供个人的一些想法,大牛不要看
(1)对于要写入的数据,树形结构,构建临时类,嵌套,如下图(类似即可)
public class ValueObj { private String areaName = "";//名称private String areaId;private int colspan = 1;//该数据占有的合并单元格数量private List<ValueObj> objList = new ArrayList<ValueObj>();//自身private List<ConstructDetail> detailList = new ArrayList<ConstructDetail>();//根节点对应的相关数据
int flag1 = 1;for (int i = 0; i < aList.size(); i++) {//循环遍历其中的单列的所有数据CellRangeAddress region1 =null;ValueObj vo11 = aList.get(i);// if(i == 0) {region1 = new CellRangeAddress(1,vo11.getColspan(),(short)0,(short)0);//cellrangeaddress参数自行百度sheet.addMergedRegion(region1);//合并单元格setValueByRowAndCol(1 , 0 ,vo11.getAreaName(),sheet,lockstyle);//判断,插入数据相关操作,方法如下flag1 = flag1 + vo11.getColspan();//用于下次创建row}else {region1 = new CellRangeAddress(flag1,flag1 + vo11.getColspan() - 1,(short)0,(short)0);sheet.addMergedRegion(region1);setValueByRowAndCol(flag1 , 0 ,vo11.getAreaName(),sheet,lockstyle);flag1 = flag1 + vo11.getColspan();}}
private static void setValueByRowAndCol(int row, int col, String value, HSSFSheet sheet,HSSFCellStyle style) { HSSFRow hssfrow = sheet.getRow(row);//取数据 HSSFCell cell = null; if (hssfrow == null) { hssfrow = sheet.createRow(row); cell = hssfrow.createCell(col); cell.setCellType(HSSFCell.ENCODING_UTF_16); cell.setCellValue(value); } else { cell = hssfrow.createCell(col); cell.setCellType(HSSFCell.ENCODING_UTF_16); cell.setCellValue(value); cell.setCellStyle(style); } }
(3)最后一层数据内容的处理,相关部分代码
int flag5 =1;for (int i = 0; i < aList.size(); i++) {ValueObj vo1 = aList.get(i);for (int j = 0; j < vo1.getObjList().size(); j++) {ValueObj vo2 = vo1.getObjList().get(j);for (int k = 0; k < vo2.getObjList().size(); k++) {ValueObj vo3 = vo2.getObjList().get(k);for (int t = 0; t < vo3.getObjList().size(); t++) {ValueObj vo4 = vo3.getObjList().get(t);for (int x = 0; x < vo4.getDetailList().size(); x++) {ConstructDetail cd = vo4.getDetailList().get(x); HSSFRow hssfrow = sheet.getRow(flag5); if (hssfrow == null) { hssfrow = sheet.createRow(flag5); }hssfrow.setHeight((short) 400);Cell cellData = hssfrow.createCell(4);cellData.setCellType(HSSFCell.CELL_TYPE_STRING);cellData.setCellValue(cd.getConstructContent());Cell cellData5 = hssfrow.createCell(5);cellData5.setCellType(HSSFCell.CELL_TYPE_STRING);cellData5.setCellValue(cd.getPageNum());Cell cellData6 = hssfrow.createCell(6);cellData6.setCellType(HSSFCell.CELL_TYPE_STRING);Cell cellData7 = hssfrow.createCell(7);cellData7.setCellType(HSSFCell.CELL_TYPE_STRING);cellData7.setCellValue(cd.getProjectFeature());.//此处省略..flag5++;}
阅读全文
0 0
- java 基于poi 写入excel 合并单元格
- poi excel合并单元格
- poi excel单元格合并
- JAVA POI 操作EXCEL 合并单元格
- Java poi导出excel合并标题单元格
- java poi导出excel,合并单元格
- poi java导出excel时合并单元格
- java POI 实现Excel合并单元格
- java poi导出Excel表,合并单元格
- Java poi导出excel合并标题单元格
- Java poi操作合并单元格后写入内容
- javaweb项目 基于poi的excel导出 合并单元格
- java poi 合并单元格
- POI导出Excel--合并单元格
- POI之Excel单元格合并
- POI导出Excel 合并单元格
- POI导出excel合并单元格
- Apache POI Excel合并单元格
- 查看linux系统内存使用情况
- 意外泄露!!!室友的C语言考了99分竟然是因为这张图...
- 在IDEA中创建maven项目
- 有些感慨
- 51Nod 1459 迷宫游戏
- java 基于poi 写入excel 合并单元格
- LoRa技术如何使供应链和资产管理变得更智能
- DevicePass-through及网卡的直接分配在Xen里面的实现
- 在linux上配置Maven环境变量(重启mvn -v无效的解决方法)
- thymeleaf模版实现页面布局(layout)两种方法
- 浅谈数据库主从复制
- Jodd利器--开源Java微框架和工具
- 新手村 过程函数与递归 回文质数
- 2007年分区联赛提高组之一 统计数字