调用示例:
File wordFile = new File("D:\\temp.doc");
//读取Word文档中所有文本内容,以字符串形式返回
System.out.println(WordFileUtil.extractTextFromWordFile(wordFile));
工具类源码:
Word2003版本工具类:
/**
* Word2003FileUtil.java
* Copyright ® 2010 窦海宁
* All right reserved
*/
package org.aiyu.core.common.util.file.office;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.poi.hwpf.extractor.WordExtractor;
/**
* <p>Word2003版文件工具类
*
* <p>通用的Word2003版文件工具类,可用于从Word文档中抽取文本信息
*
* @author 窦海宁, chong0660@sina.com
* @since AiyuCommonCore-1.0
* @version AiyuCommonCore-1.0
*/
public abstract class Word2003FileUtil {
/**
* <p>从Excel文档中提取文本信息
*
* @param wordFile Excel文件
*
* @return 提取后的文本信息
*
* @modify 窦海宁, 2013-08-12
*/
protected static String extractTextFromWordFile(File wordFile) {
String returnValue = null;
if (wordFile != null) {
if (wordFile.isFile()) {
InputStream inputStream = null;
try {
inputStream = new FileInputStream(wordFile);
WordExtractor wordExtractor = new WordExtractor(inputStream);
returnValue = wordExtractor.getText();
} catch (Exception ex) {
System.err.println(ex.getMessage());
} finally {
IOUtils.closeQuietly(inputStream);
}
}
}
return returnValue;
}
}
Word2007版本工具类:
/**
* Word2007FileUtil.java
* Copyright ® 2017 窦海宁
* All right reserved
*/
package org.aiyu.core.common.util.file.office;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
/**
* <p>Word2007版文件工具类
*
* <p>通用的Word2007版文件工具类,可用于从Word文档中抽取文本信息
*
* @author 窦海宁, chong0660@sina.com
* @since AiyuCommonCore-1.0
* @version AiyuCommonCore-1.0
*/
public abstract class Word2007FileUtil {
/**
* <p>从Excel文档中提取文本信息
*
* @param wordFile Excel文件
*
* @return 提取后的文本信息
*
* @modify 窦海宁, 2017-01-18
*/
protected static String extractTextFromWordFile(File wordFile) {
String returnValue = null;
if (wordFile != null) {
if (wordFile.isFile()) {
InputStream inputStream = null;
try {
inputStream = new FileInputStream(wordFile);
XWPFDocument document = new XWPFDocument(inputStream);
XWPFWordExtractor wordExtractor = new XWPFWordExtractor(document);
returnValue = wordExtractor.getText();
} catch (Exception ex) {
System.err.println(ex.getMessage());
} finally {
IOUtils.closeQuietly(inputStream);
}
}
}
return returnValue;
}
}
统一调用工具类:
/**
* WordFileUtil.java
* Copyright ® 2017 窦海宁
* All right reserved
*/
package org.aiyu.core.common.util.file.office;
import java.io.File;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
/**
* <p>Word文件工具类
*
* <p>通用的Word文件工具类,可用于从Word文档中抽取文本信息
*
* @author 窦海宁, chong0660@sina.com
* @since AiyuCommonCore-1.0
* @version AiyuCommonCore-1.0
*/
public abstract class WordFileUtil {
/**
* <p>从Excel文档中提取文本信息
*
* @param wordFile Excel文件
*
* @return 提取后的文本信息
*
* @modify 窦海宁, 2017-02-06
*/
public static String extractTextFromWordFile(File wordFile) {
String resultText = null;
if (wordFile != null && wordFile.exists()) {
String extension = FilenameUtils.getExtension(wordFile.getName());
if (StringUtils.equalsIgnoreCase("doc" , extension)) {
//Office2003版文件处理
resultText = Word2003FileUtil.extractTextFromWordFile(wordFile);
} else if (StringUtils.equalsIgnoreCase("docx" , extension)) {
//Office2007版文件处理
resultText = Word2007FileUtil.extractTextFromWordFile(wordFile);
} else {
//文件类型有误
}
}
return resultText;
}
}
统一调用工具类通过文件扩展名(DOC与DOCX,不区分大小写)判断文件版本,暂时没有想到更好的办法;本工具类使用POI_3.15实现,无须目标机器安装OFFICE软件也可进行文件读写。
分享到:
相关推荐
在这个主题中,我们将深入探讨如何使用Java POI库来实现Word(包括.doc和.docx)以及TXT文件的读写操作。 首先,让我们了解一下Java POI的工作原理。POI库提供了HSSF和XSSF两个API,分别用于处理旧版的二进制Excel...
在Android平台上,使用Apache POI库来操作Microsoft Office的Word(docx)文档是一项常见的需求。Apache POI是一个开源项目,主要设计用于处理Microsoft的文件格式,如.docx、.xlsx和.pptx等。本篇文章将深入探讨...
在实际应用中,Apache POI 的功能不仅限于简单的读写操作,还支持复杂的格式转换、样式调整和模板填充等功能,是 Java 开发者处理 Word 文件的强大工具。然而,需要注意的是,由于 `.doc` 文件格式的复杂性,处理...
Apache POI 是一个流行的开源库,专为处理Microsoft Office格式的文件,如Word(.doc/.docx)和Excel(.xls/.xlsx)。本教程将深入探讨如何使用Apache POI库来实现这些文件向HTML的转换,以实现跨平台和浏览器的兼容...
Apache POI是一个流行的Java库,用于读写Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)等。而`poi-tl`是基于Apache POI的一个扩展库,它提供了更高级的功能,特别是在基于模板生成复杂...
在Android平台上,Apache POI库通常用于处理Microsoft Office格式的文件,如Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。在这个场景中,我们关注的是如何利用POI在Android环境中替换Word文档(.docx)中的...
这篇内容将深入探讨如何使用Apache POI库来操作DOC和DOCX文件,并涉及相关的转换功能。 首先,Apache POI 包含了 HWPFOI 和 XWPFPOI 两个主要模块,分别用于处理旧版的 .doc 文件(基于二进制的 Word 97-2003 格式...
Apache POI提供了HPSF(Hierarchical Property Set Format)和HWPF(Horrible Word Processor Format)等组件,分别用于处理DOC和DOCX文件。 在实际的转换过程中,可能的步骤包括: 1. 使用HWPF读取DOC文件:首先,...
在早期,Microsoft Word使用的是.doc格式,这是一种二进制文件格式,随着时间的推移,为了提高文件的开放性和可读性,微软推出了基于XML的.docx格式。尽管两种格式都可以被现代版本的Word打开,但.docx格式在版本...
Apache POI提供了HWPF(Horrible Word Processor Format)类库用于处理老版本的Word文档(.doc),而XWPF类库则用于处理较新的OpenXML格式的Word文档(.docx)。在这个案例中,由于是处理.doc文件,我们将主要关注...
关于压缩包中的"poi读写word模板包",可能包含了一些示例代码或模板文件,帮助开发者理解如何使用Apache POI进行Word模板的读写。解压后,你可以查看这些文件来学习具体实现,包括如何查找和替换模板中的特定字符串...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)、PowerPoint(.ppt, .pptx)等。通过使用POI,开发者可以创建、读取、修改这些文件,并且将...
`doc`是早期版本的Microsoft Word文档,而`docx`是基于XML的较新格式,包含文本、样式、图像等元素。`xls`是老版Excel表格文件,而`xlsx`同样是XML为基础的新格式,用于存储表格数据和格式。 要解析这些文件,我们...
Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。在本案例中,我们关注的是如何使用Apache POI将Word文档转换为HTML格式,并且保持原有的样式、表格...
对于Word文档,POI提供了HWPFDocument类来读取旧版本的.doc文件,而XWPFDocument则用于处理新版本的.docx文件。开发者可以读取段落、表格、图片等元素,并进行操作。 5. **写入Word文件** 创建或修改Word文档时,...
Apache POI是一个流行的开源库,主要用于处理Microsoft Office格式的文件,包括Word(.doc和.docx)、Excel(.xls和.xlsx)以及PowerPoint(.ppt和.pptx)。在这个场景中,你提到的"POI生成doc文档和docx文档相关jar...
在Java编程语言中,Apache POI是一个非常流行的库,它允许开发者处理Microsoft Office格式的文件,包括Word(.doc和.docx)文档。本篇将详细介绍如何利用Apache POI库来读取Word文件中的内容。 首先,理解Apache ...
通常,开发者会使用第三方库如Apache POI-OOXML-Simple,这是一个轻量级的版本,只包含读写XLSX和DOCX文件所需的类。 3. **XML 文件与Word/Excel 文档**:描述中提到了从XML文件中读取数据来生成文档,这可能意味着...