使用POI:XSSF将图像插入Excel 我正在使用maven poi依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>
</dependency>
AND代码为:
InputStream my_banner_image = new FileInputStream("input.png");
byte[] bytes = IOUtils.toByteArray(my_banner_image);
int my_picture_id = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
我收到了这些错误:
1)对于IOUtils类型,未定义toByteArray(InputStream)方法 2)PICTURE_TYPE_PNG无法解析或不是字段
任何帮助都会得到满足。感谢。
答案 0 :(得分:0)
宣传回答评论:
您想要使用的方法非常适用于Apache POI 3.11,您可以在POI Javadocs中查看有关它的完整详细信息。
详细说明POI Components page,在poi-ooxml
上定义Maven依赖关系会引入主poi
组件jar,这是IOUtils类所在的位置,所以这一点很好< / p>
在这种情况下你所拥有的(根据评论)是你的类路径上的第二个较旧的POI副本。您需要删除这个旧的POI jar(或POI jar),与大多数Java项目一样,如果所有POI jar都来自同一版本,并且没有旧版本,那么Apache POI将只能正常工作。
因为这是一个相当普遍的问题 - 很多框架都会发送POI的旧副本 - 例如POI FAQ entry on this very thing。如果您无法手动找到旧罐子,您可以使用那里给出的代码来找出旧罐子将其移除的位置。
另外,还要记住另一件事 - 许多项目提供了一个名为IOUtils
的类 - 确保您导入代码的那个是org.apache.poi.util.IOUtils
而不是其他东西!