package com.excel; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class Picture { public static void main(String[] args) { String filepath = SysConfig.getProperty("filepath"); String picturepath = SysConfig.getProperty("picturepath"); int rowNum = Integer.parseInt(SysConfig.getProperty("rowNum")); int cellNum = Integer.parseInt(SysConfig.getProperty("cellNum")); boolean result = insertPicture("excel路径", "图片路径", 1, 2);// 1代表插入的行数-1 // ,2代表插入的列数-1 System.out.println("图片插入结果为==" + result); } /* 插入图片地址 文件地址 插入图片位置的关键字 图片类型 */ /** * @param filePath * @param picturePath * @param rowNum * @param cellNum * @return */ public static boolean insertPicture(String filePath, String picturePath, int rowNum, int cellNum) { // 初始化IO流内容 FileOutputStream fileOut = null; BufferedImage bufferImg = null; int rowN = rowNum;// 图片插入行的初始化 int cellN = cellNum;// 图片插入列的初始化 try { // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); bufferImg = ImageIO.read(new File(picturePath));// 图片地址 ImageIO.write(bufferImg, "png", byteArrayOut); // 创建一个工作薄 HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath)); HSSFSheet sheet1 = wb.getSheetAt(0); // 创建插入图片需要的容器 HSSFPatriarch patriarch = sheet1.createDrawingPatriarch(); /* * HSSFClientAnchor几个数字解释:3:是x轴的开始节点, 0: * 是y轴的开始节点,1023:是x轴的结束节点,255:是y轴的结束节点 * ,1:是从Excel的2列开始插入图片,10:是从excel的第11行开始插入图片, * 11:图片占用11列的位置,25:图片结束在excel的26行 */ HSSFClientAnchor anchor = new HSSFClientAnchor(3, 0, 1023, 255, (short) ((short) cellN), (rowN), (short) ((short) cellN + 1), (rowN)); anchor.setAnchorType(2); // 插入图片 patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); fileOut = new FileOutputStream(filePath); // 写入excel文件 wb.write(fileOut); fileOut.close(); return true; } catch (IOException io) { io.printStackTrace(); System.out.println("io erorr : " + io.getMessage()); return false; } finally { if (fileOut != null) { try { fileOut.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
最近下载更多
kuntay LV1
2022年2月24日
asdsasddas LV6
2021年9月14日
1358849392 LV21
2019年12月26日
zuopizi LV1
2019年10月7日
doutao6677 LV25
2019年8月5日
john93 LV15
2018年12月11日
HelloWorld_123 LV1
2018年10月24日
扎一个 LV1
2018年8月20日
arashiaa LV1
2018年8月15日
丶知北游丿 LV9
2018年7月23日
最近浏览更多
3334004690 LV10
5月27日
qwertyui惊鸿 LV7
2023年3月17日
java小书童 LV18
2023年2月27日
kuntay LV1
2022年2月24日
asdsasddas LV6
2021年9月14日
ewan007 LV30
2021年7月22日
iRichard1314 LV6
2021年7月19日
x2b2d2 LV12
2021年7月10日
225443 LV4
2021年6月25日
shen779 LV1
2021年3月16日