POI操作EXCEL插入图片:完整实现与优化技巧
在 Excel 中插入图片(如 Logo、二维码、报表图表)可增强文档的可视化效果。Apache POI 提供了灵活的图片插入功能,支持多种图片格式(PNG、JPG 等)和位置调整。本文将详细讲解插入图片的核心步骤、代码实现及常见问题解决方案。
核心原理与类
POI 插入图片的核心逻辑是:
- 将图片转为字节数组;
- 通过
Workbook.addPicture()注册图片资源; - 使用绘图对象(
Drawing)将图片锚定到指定单元格位置。
关键类说明:
| 类名 | 作用描述 |
|---|---|
HSSFWorkbook/XSSFWorkbook |
工作簿对象,提供 addPicture() 方法注册图片资源(返回图片索引)。 |
HSSFPatriarch/XSSFDrawing |
绘图管理器,负责创建图片对象并关联到工作表。 |
ClientAnchor |
图片锚点,定义图片在工作表中的位置(起始行列、偏移量等)。 |
Picture |
图片对象,支持调整尺寸、获取图片信息等操作。 |
完整代码实现
以下示例支持 .xls(Excel 2003)和 .xlsx(Excel 2007+)格式,演示如何插入本地图片到指定单元格,并调整尺寸。
通用工具类(兼容两种格式)
maven依赖
1 | <dependency> |