我正在尝试使用example将HSSFWorkbook转换为.HTML文件,但该示例无效,因为我使用的Maven依赖项根本不包含openxml4j类。这是为什么......在任何地方都没有解释?
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-beta2</version>
</dependency>
以下是ToHtml.java的代码片段,无法找到类:
public static ToHtml create(InputStream in, Appendable output)
throws IOException {
try {
Workbook wb = WorkbookFactory.create(in);
return create(wb, output);
} catch ( InvalidFormatException e){
throw new IllegalArgumentException("Cannot create workbook from stream", e);
}
}
基本上,找不到 WorkbookFactory 和 InvalidFormatException 的分支。我该如何解决这个问题?我不知道等效工厂在我使用的标准POI中的位置。是否有无证件的弃用或什么?
答案 0 :(得分:2)
POI的所有不同组件的完整列表,它们的依赖关系以及它们的Maven工件ID在Apache POI Components page中给出。
如果您想同时使用HSSF和XSSF(WorkbookFactory
允许),您需要依赖poi-ooxml
而不仅仅poi
。
将您的maven依赖关系切换为poi-ooxml
,它将拉入所有必需的部分(包括直的poi
jar),然后您的示例代码将会正常工作
也就是说,您可能还想查看Apache Tika,它提供支持(建立在POI和其他方面)以将各种文档转换为HTML(+检测类型,获取元数据等)