POI 將圖片匯出到excle表格
1.建立表格
HSSFWorkbook wb = new HSSFWorkbook();
2.建立sheet頁
HSSFSheet sheet = wb.getSheetAt(0);
3.建立圖片快取
BufferedImage bufferImage = new BufferedImage();
4.建立位元組陣列輸出流
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ByteArrayOutputStream 的例項是一個位元組型別的陣列(byte[]),裡面有32個元素。
5.拿到圖片路徑並放進圖片快取裡
bufferImage = ImageIo.read(new File(圖片路徑));
ImageIo類是javax.imageio包中的,用來簡單的處理圖片的IO。
6.將圖片以定義的格式轉成位元組陣列
ImageIO.write(bufferImg, "png", byteArrayOut);
“png”是圖片格式
7.建立HSSFClienAnchor對像
HSSFClientAnchor anchor = new HSSFClientAnchor(8,8,0,255,(short)1,(count+15),(short)7,(count+25));
HSSFClienAnchor就是建立一個錨點,標記圖片在表格中的位置。後面八個引數的意思是:
- 引數:
dx1
- 第一個單元格內的x座標。dy1
- 第一個單元格內的y座標。dx2
- 第二個單元格內的x座標。dy2
- 第二個單元格內的y座標。col1
- 第一個單元格的列(基於0)。起始列row1
- 第一個單元格的行(基於0)。起始行col2
- 第二個單元格的列(基於0)。結束列
row2
- 第二個單元格的行(基於0)。結束行
8.設定錨點型別
anchor.setAnchorType(3);
引數有4個:0 代表 使用錨點單元移動和調整大小(0)
1 代表 不要移動,但要使用錨點單元調整大小(1)
2 代表 移動單元但不調整大小(2)
3 代表 不要隨著底層的行/列移動或調整大小(3)
9.建立頂級容器 HSSFPatriarch 一個sheet只能建立一個
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFPatriarch 就是一個容器,可以建立圖片和形狀。
10.建立圖片
patriarch.createPicture(anchor,wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
11.輸出
FileOutputStream fileOut = new FileOutputStream(匯出路徑) ;
wb.write(fileOut );
java 小白,有錯希望大家可以提出,一起學習