poi操作Excel高级格式处理(随项目更新)

前言:

随着人们审美要求的提高,对于excel表格的格式也提出了相应的要求,针对每个项目模板的需求不同,excel所呈现的形式也是大相径庭。虽然我们为了方便维护管理,可以使用类似 **WindDistriButionReportToExcel extends ExportExcelBase2**泛型的方法简化操作。但是对于格式方面依据需要进行定制化处理。
问题一:有多张图片的情况之下,两两图片并排?
poi操作Excel高级格式处理(随项目更新)
使用循环解决(今日无法上传图片,后期补上)

   //如果勾选了某选项 判断图片长度依据条件取相应的图片
             if(Integer.parseInt(stype[j]) == 3){
            	ROW = ROW + 3;
            	int start = 0;
				if(cout == 16){
					start = 0;
				} 
				if(cout == 17){
				//取1-16
					start = 1;
				}
				if(cout == 18){
				//取2-17
					start = 2;
				}
				for (int i = start; i < start+15; i = i + 2,ROW = ROW + 21) {
					 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
					 ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();
						try {
							        	
						bufferImg = ImageIO.read(new File(imagePath[i]));
						bufferImg1 = ImageIO.read(new File(imagePath[i + 1]));
						    } catch (IOException e1) {
						// TODO Auto-generated catch block
						   e1.printStackTrace();
						       }
						try {
							ImageIO.write(bufferImg, "png", byteArrayOut);
							ImageIO.write(bufferImg1, "png", byteArrayOut1);
							
						    } catch (IOException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						       }
						//创建一个图片容器
						HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
						HSSFPatriarch patriarch1 = sheet.createDrawingPatriarch();
						// col   图片的左上角的列数
						// row    图片左上角开始的行数
						// col1  图片右下角的列数
						// row1 图片右下角的行数,
						HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,
						   (short) 1, ROW, (short) 9, ROW+21);//在表格里面设置 与顶有多少距离,与左边有多少距离,后面是所占位置大小
						HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 255, 255,
								   (short) 10, ROW, (short) 18, ROW+21);
						anchor.setAnchorType(3);
						anchor1.setAnchorType(3);
						
							           // 插入图片1
						patriarch.createPicture(anchor, wb.addPicture(byteArrayOut
							 .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
							      // 插入图片2
						patriarch1.createPicture(anchor1, wb.addPicture(byteArrayOut1
								 .toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
						ROW = ROW + 3;
						
				}

问题二:poi合并单元格,设置列宽

     // 四个参数分别是:起始行,起始列,结束行,结束列 
    sheet.addMergedRegion(new CellRangeAddress(ROW, ROW, 1, 16));
    //设置所有列宽
    sheet.setDefaultColumnWidth((short) 14.5);   
    //定制某列列宽
    sheet.setColumnWidth(0, 4 * 512);//设计宽度四位数,第0列