关于lucene处理word、excel、ppt、txt、pdf等格式文件的代码如下:
- public class ReadFile {
- /**
- * 处理word2003
- * @param path
- * @return
- * @throws Exception
- */
- public static String readWord(String path) throws Exception {
- String bodyText = null;
- InputStream inputStream = new FileInputStream(path);
- WordExtractor extractor = new WordExtractor(inputStream);
- bodyText = extractor.getText();
- return bodyText;
- }
- /**
- * 处理word2007
- * @param path
- * @return
- * @throws IOException
- * @throws OpenXML4JException
- * @throws XmlException
- */
- public static String readWord2007(String path) throws IOException, OpenXML4JException, XmlException {
- OPCPackage opcPackage = POIXMLDocument.openPackage(path);
- POIXMLTextExtractor ex = new XWPFWordExtractor(opcPackage);
- return ex.getText();
- }
- /**
- * 处理excel2003
- * @param path
- * @return
- * @throws IOException
- */
- public static String ReadExcel(String path) throws IOException {
- InputStream inputStream = null;
- String content = null;
- try {
- inputStream = new FileInputStream(path);
- HSSFWorkbook wb = new HSSFWorkbook(inputStream);
- ExcelExtractor extractor = new ExcelExtractor(wb);
- extractor.setFormulasNotResults(true);
- extractor.setIncludeSheetNames(false);
- content = extractor.getText();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- return content;
- }
- /**
- * 处理excel2007
- * @param path
- * @return
- * @throws IOException
- */
- public static String readExcel2007(String path) throws IOException {
- StringBuffer content = new StringBuffer();
- // 构造 XSSFWorkbook 对象,strPath 传入文件路径
- XSSFWorkbook xwb = new XSSFWorkbook(path);
- // 循环工作表Sheet
- for (int numSheet = 0; numSheet < xwb.getNumberOfSheets(); numSheet++) {
- XSSFSheet xSheet = xwb.getSheetAt(numSheet);
- if (xSheet == null) {
- continue;
- }
- // 循环行Row
- for (int rowNum = 0; rowNum <= xSheet.getLastRowNum(); rowNum++) {
- XSSFRow xRow = xSheet.getRow(rowNum);
- if (xRow == null) {
- continue;
- }
- // 循环列Cell
- for (int cellNum = 0; cellNum <= xRow.getLastCellNum(); cellNum++) {
- XSSFCell xCell = xRow.getCell(cellNum);
- if (xCell == null) {
- continue;
- }
- if (xCell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {
- content.append(xCell.getBooleanCellValue());
- } else if (xCell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {
- content.append(xCell.getNumericCellValue());
- } else {
- content.append(xCell.getStringCellValue());
- }
- }
- }
- }
- return content.toString();
- }
- /**
- * 处理ppt
- * @param path
- * @return
- */
- public static String readPowerPoint(String path) {
- StringBuffer content = new StringBuffer("");
- InputStream inputStream = null;
- try {
- inputStream = new FileInputStream(path);
- SlideShow ss = new SlideShow(new HSLFSlideShow(new FileInputStream(path)));// is
- // 为文件的InputStream,建立SlideShow
- Slide[] slides = ss.getSlides();// 获得每一张幻灯片
- for (int i = 0; i < slides.length; i++) {
- TextRun[] t = slides[i].getTextRuns();// 为了取得幻灯片的文字内容,建立TextRun
- for (int j = 0; j < t.length; j++) {
- content.append(t[j].getText());// 这里会将文字内容加到content中去
- }
- }
- } catch (Exception ex) {
- System.out.println(ex.toString());
- }
- return content.toString();
- }
- /**
- * 处理pdf
- * @param path
- * @return
- * @throws IOException
- */
- public static String readPdf(String path) throws IOException {
- StringBuffer content = new StringBuffer("");// 文档内容
- PDDocument pdfDocument = null;
- try {
- FileInputStream fis = new FileInputStream(path);
- PDFTextStripper stripper = new PDFTextStripper();
- pdfDocument = PDDocument.load(fis);
- StringWriter writer = new StringWriter();
- stripper.writeText(pdfDocument, writer);
- content.append(writer.getBuffer().toString());
- fis.close();
- } catch (java.io.IOException e) {
- System.err.println("IOException=" + e);
- System.exit(1);
- } finally {
- if (pdfDocument != null) {
- org.pdfbox.cos.COSDocument cos = pdfDocument.getDocument();
- cos.close();
- pdfDocument.close();
- }
- }
- return content.toString();
- }
- /**
- * 处理txt
- * @param path
- * @return
- * @throws IOException
- */
- public static String readTxt(String path) throws IOException {
- StringBuffer sb = new StringBuffer("");
- InputStream is = new FileInputStream(path);
- // 必须设置成GBK,否则将出现乱码
- BufferedReader reader = new BufferedReader(new InputStreamReader(is, "GBK"));
- try {
- String line = "";
- while ((line = reader.readLine()) != null) {
- sb.append(line + "\r");
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- return sb.toString().trim();
- }
- }
使用jar包如下:
相关推荐
本篇将深入探讨如何利用Lucene实现对Word、PPT、Excel、PDF和TXT等常见文件类型的全文检索。 首先,我们要理解什么是全文检索。全文检索是指在文档集合中,通过搜索文档中的所有词汇,找出包含特定查询词的文档。与...
在版本3.6中,它提供了强大的文件检索功能,支持对多种文件类型的搜索,包括PDF、Word、PPT、Excel、TXT、HTML和XML等。这个版本的Lucene已经过封装,使得开发者能够更方便地集成到自己的项目中,实现快速的全文检索...
POI 库是一个开放源代码的 Java 库,提供了对 Microsoft Office 文件格式的读写能力。 读取 WORD 文件 在读取 WORD 文件时,需要使用 `org.apache.poi.hwpf` 包下的 `WordExtractor` 类来提取文档内容。下面是一个...
本文将深入探讨如何使用C#进行多格式文档(如Excel、Word、PowerPoint和PDF)的全文检索。 一、Excel全文检索 在C#中,可以使用Microsoft Office Interop库来操作Excel文件。首先,需要引用`Microsoft.Office....
PDF(Portable Document Format)是一种由Adobe Systems开发的文件格式,旨在保持文档的原始布局和样式,使其在不同的设备和操作系统之间可移植。PDF文件可以包含文本、图像、表格、超链接和其他多媒体元素。解析PDF...
A: pdf文件 B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx...
在实践中,Lucene可以处理多种格式的文件,如Word、Excel、PPT和PDF,这些文件通过特定的解析器(如Apache POI和PDFBox)将内容提取出来,然后进行索引。通过封装接口,开发者可以轻松地将这些功能整合到自己的应用...
lucene全文检索,适用于ppt,word,pdf,excel等
Lucene.NET支持多种文档格式的索引和搜索,包括但不限于Word、Excel、PDF和PowerPoint等。 #### 2. 索引构建流程概述 构建索引的过程主要包括以下几个步骤: - **指定资源文件和索引文件的存放路径**:在构建索引...
A: pdf文件 B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx...
A: pdf文件 B: office word文件 ".doc", ".odt", ".docx", ".dotm", ".docm" C: wps文档 ".wps" D: office excel文件 ".xls", ".xlsx", ".xlsm", ".xltm" E: wps表格 ".et" F: office powerPoint文件 ".ppt", ".pptx...
为文件建立索引,目前仅支持(txt,word,excel,ppt,pdf文件),然后搜索索引文件
- 抓取图片时需考虑图片大小、格式等因素。 - 可以通过图像处理技术进一步优化图片质量。 - **3.1.6 垂直行业抓取** - 针对特定行业或领域的数据抓取,如医疗、金融等。 - 需要深入理解该领域的专业知识。 **...
本文将深入探讨Lucene在4.10及更高版本中的核心功能,包括如何建立索引、删除索引以及如何处理Office文档,如读取Word、Excel、PowerPoint等文件。 一、Lucene基础知识 1.1 Lucene简介 Lucene是一个高性能、全功能...
lucene nutch 搜索引擎 开发 实例 源代码 源码 包含lucene使用的所有源代码,从建立索引,搜索,删除,...还有PDF 解析,WORD解析 ,EXCEL,ppt,xml解析等,,都有源码实现 还有nutch源码,spider源码。。。 非常齐全
【描述】"没有写pdf格式的验证"意味着该系统可能不包含针对PDF文件的特定验证机制,这可能是因为开发者选择专注于支持Office套件,如Word、Excel、PPT等格式的文档。Office套件是日常工作中常用的文档格式,对于...
- **3.2.4 Rtf文件**:介绍了如何处理Rtf格式的文档。 - **3.2.5 Excel文件**:讲解了从Excel表格中抽取数据的技术。 - **3.2.6 PowerPoint文件**:探讨了从PPT文档中提取信息的方法。 - **3.3 提取垂直行业信息*...
10. **文本提取**:从HTML和其他格式的文件中提取文本,如PDF、Word、Excel、PowerPoint等,HTMLParser是常用的工具,DOM树和NekoHTML则用于解析和清洗网页内容。 11. **中文分词**:在Lucene和Lietu等工具中,中文...