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 小白,有错希望大家可以提出,一起学习