java 批量导入图片到excel

1 package com.sun.office.excel;
2
3 import java.awt.image.BufferedImage;
4 import java.io.ByteArrayOutputStream;
5 import java.io.File;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8
9 import javax.imageio.ImageIO;
10
11 import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
12 import org.apache.poi.hssf.usermodel.HSSFPatriarch;
13 import org.apache.poi.hssf.usermodel.HSSFSheet;
14 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
15
16 public class ExcelImageDemo {
17
18 public static void main(String[] args) {
19 FileOutputStream fileOut = null;
20 BufferedImage bufferImg = null;
21 // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
22 try {
23 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
24 bufferImg = ImageIO.read(new File("D:/ubuntn.jpg"));
25 ImageIO.write(bufferImg, "jpg", byteArrayOut);
26
27 HSSFWorkbook wb = new HSSFWorkbook();
28 HSSFSheet sheet1 = wb.createSheet("test picture");
29 // 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
30 HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
31 for (int i = 0; i < 3; i++) {
32 // anchor主要用于设置图片的属性
33 HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 250, (short) 1, 1+i*10, (short) 5, 8+i*10);
34 // 插入图片
35 patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
36 }
37 HSSFSheet sheet2 = wb.createSheet("test picture2");
38 //第二个sheet页
39 HSSFPatriarch patriarch2 = sheet2.createDrawingPatriarch();
40 for (int i = 0; i < 3; i++) {
41 // anchor主要用于设置图片的属性
42 HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 250, (short) 1, 1+i*10, (short) 5, 8+i*10);
43 // 插入图片
44 patriarch2.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
45 }
46 fileOut = new FileOutputStream("Excel.xls");
47 // 写入excel文件
48 wb.write(fileOut);
49 System.out.println("----Excle文件已生成------");
50 } catch (Exception e) {
51 e.printStackTrace();
52 } finally {
53 if (fileOut != null) {
54 try {
55 fileOut.close();
56 } catch (IOException e) {
57 e.printStackTrace();
58 }
59 }
60 }
61 }
62 // 关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数,有必要在这里说明一下:
63 // dx1:起始单元格的x偏移量,
64 // dy1:起始单元格的y偏移量,
65 // dx2:终止单元格的x偏移量,
66 // dy2:终止单元格的y偏移量,
67 // col1:起始单元格列序号,从0开始计算;
68 // row1:起始单元格行序号,从0开始计算,
69 // col2:终止单元格列序号,从0开始计算;
70 // row2:终止单元格行序号,从0开始计算,
71 //添加多个图片时:多个pic应该share同一个DrawingPatriarch在同一个sheet里面。
72 }

转载于:https://www.cnblogs.com/zhengjie-yjx/p/8259888.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值