Apache POI API和Apache Tika API有什么区别?

7

我有一个需求,需要从Excel/CSV文件中提取特定的列/行。有人建议我使用Tika来完成这个任务。

在研究Tika的过程中,我发现了POI API,发现它更加友好易用。

之后我们可能还需要解析PDF文件。

作为这个技术的新手,我想知道这两种技术有何不同,哪种技术更适合我的需求。

谢谢, Krishna


你是否检查了你给问题打的标签信息? - Nandkumar Tekale
2个回答

22

Apache Tika 提供了一种提取一系列格式一致文本和元数据的通用方法。它还提供内容检测、语言检测以及其他一些小工具。如果您编写代码与 Apache Tika 一起使用,那么您的代码将能够以相同的方式处理 大量不同格式的文件。您无需关心一个格式是否有标题,或者另一个是否将同样的逻辑称为 LongTitle 或 Subject。您也无需关心使用哪个库来处理某个格式。您只需要调用 Tika,它会为您完成繁重的工作,然后返回一致的元数据和文本内容。

Apache POI 是 Tika 使用的库之一。POI 支持大多数主要的 Microsoft Office 格式,包括 Excel (.xls 和 .xlsx)。它提供对整个文件格式的访问,允许您完全控制读取出的信息(还支持写入)。Tika 使用 POI 从各种不同的 Microsoft 格式中获取文本和元数据,但并不会提取所有内容。直接使用 POI 可以让您决定自己关心的内容并提取它。

如果您想支持许多文件格式,请使用 Tika。如果您想完全控制如何获取信息,请使用 POI。


@ha9u63ar 如果你在谷歌上搜索20秒或者点击答案中的链接,就可以找到Apache Tika支持的格式页面,它会告诉你确切支持哪些格式,包括Word格式... - Gagravarr

1
Apache POI是一个完整的解析器/编写器,适用于大多数微软文档。它支持新引入的2007(XSSF)格式和Microsoft 2003文件格式(HSSF)。Apache POI提供两个级别的API用于解析和生成Microsoft文件。一个是高级API,它在读取整个文件并将其保留在内存中时会占用比较多的内存,类似于XML中的DOM解析,另一个是低级API,用于对内存占用要求较高的使用场景,类似于SAX/StAX解析。
另一方面,Apache Tika是内容分析工具,我猜想它只支持Microsoft Excel和许多其他抽取组件。Tika不支持编写新文件或从Tika生成内容,但这根本不是他们的用例。
因此,您需要根据自己的需求做出选择。

我想解析PDF、Word+Excel (2003-2007)、PPT、CSV和txt文件。我知道PDF、TXT和JPG文件没有任何依赖关系,但是当使用.docx和.doc文件时,我经常遇到错误。 - ha9u63a7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接