java - 使用 apache tika 获取 Excel 工作表的数量

标签 java excel apache-tika

使用 apache tika 提取 Excel 内容时,我只能从第一张表中提取内容。如何找到总页数?我使用的代码如下所示。

BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("D:\\ExtractExcel\\test.xlsx"));
ParseContext pcontext = new ParseContext();
OOXMLParser msofficeparser = new OOXMLParser();
msofficeparser.parse(inputstream, handler, metadata, pcontext);

最佳答案

如果您只想处理某些工作表,则需要以输出 HTML 的方式调用 Apache Tika。您可以在 Apache Tika Parsing to XHTML example 中查看一种方法。 。如果这样做,您将看到从 Excel 文件获得的 XHTML 类似于

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="meta:last-author" content="RIBEN9"/>
<meta name="dcterms:modified" content="2007-10-01T16:31:43Z"/>
<title>Simple Excel document</title>
</head>
<body>
   <div class="page"><h1>Feuil1</h1>
   <table><tbody><tr>   <td>Sample Excel Worksheet - Numbers and their Squares</td></tr>
   <tr> <td/></tr>
   </tbody></table>
   </div>
   <div class="page"><h1>Feuil2</h1>
   <table><tbody><tr>   <td/></tr>
   </tbody></table>
   </div>
</body></html>

如您所见,每张工作表都有自己的 <div class="page">部分,这样你就可以按它来分割

如果您查看 Fetching just certain bits of the XHTML 的 Tika 示例,您将了解如何仅拉出一张纸

关于java - 使用 apache tika 获取 Excel 工作表的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524109/

相关文章:

java - 使用 POI 创建 XLSX 文件

c# - 具有元语言抽象的语言是否比仅使用反射 API 的语言表现更好?

Excel VBA将数组数组传递给函数

java - 如何在 jar 文件中使用 Tika 自定义解析器?

pdf - 尝试索引 PDF 时出现 Elasticsearch Parse Exception 错误

java - Android 应用程序一开始就崩溃

java - Android 按钮循环

c# - 如何使用 c# 对 excel 单元格的背景颜色使用无填充?

使用 VBA 创建的 Excel 复选框不成比例

java - 如何从 pst 文件获取帖子附件