使用 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/