使用Hutool插入图片到Excel
一、pom引入
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.3</version>
</dependency>
</dependencies>
</project>
二、测试类
import cn.hutool.core.io.FileUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Sheet;
import org.junit.jupiter.api.Test;
public class TestHutoolExcel {
@Test
public void writePicTest() {
ExcelWriter writer = ExcelUtil.getWriter("D:\\1.xlsx");
writer.setDefaultRowHeight(70);
writer.setColumnWidth(-1, 30);
for (int i = 0; i < 10; i++) {
byte[] pictureData = FileUtil.readBytes("img/1.jpg");
writePic(writer, 0, i, pictureData, HSSFWorkbook.PICTURE_TYPE_JPEG);
}
writer.close();
}
private void writePic(ExcelWriter writer, int x, int y, byte[] pictureData, int picType) {
Sheet sheet = writer.getSheet();
Drawing drawingPatriarch = sheet.createDrawingPatriarch();
ClientAnchor anchor = drawingPatriarch.createAnchor(0, 0, 0, 0, x, y, x + 1, y + 1);
anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
int pictureIndex = sheet.getWorkbook().addPicture(pictureData, picType);
drawingPatriarch.createPicture(anchor, pictureIndex);
}
}