完成office文件操作可以帮助apache.poi包(我用poi-3.10-FINAL),导入对应的jar包(最好所有导入)

以下的程序演示了一些操作word的过程,具体的函数功能能够查看此包的官方API

import java.io.*;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.*;
import org.apache.poi.hwpf.usermodel.Range;
//xwpf专门加强处理Word2007 .docx 格式
import org.apache.poi.xwpf.usermodel.XWPFDocument; public class WordReader { WordExtractor wordExtractor; public static void main(String[] args) {
System.out.println("该word文档(docx格式)总页数例如以下:");
new WordReader().getPageCount("F:\\数据挖掘及其应用论文格式.docx"); System.out.println("\n获取整个word文本内容:");
System.out.println(new WordReader().getTextFromWord("F:\\word2003.doc")); System.out.println("按段获取文本内容:");
System.out.println(new WordReader().getTextByParagraph("F:\\word2003.doc"));
} // 统计word文件总页数(仅docx格式的有效!) doc格式也有对应的方法,可是因为doc本身的问题,导致获取的页数总是错误的。
public void getPageCount(String filePath) {
XWPFDocument docx;
try {
docx = new XWPFDocument(POIXMLDocument.openPackage(filePath));
int pages = docx.getProperties().getExtendedProperties()
.getUnderlyingProperties().getPages();// 总页数
int wordCount = docx.getProperties().getExtendedProperties()
.getUnderlyingProperties().getCharacters();// 忽略空格的总字符数
// 另外还有getCharactersWithSpaces()方法获取带空格的总字数。
System.out.println("Total pages=" + pages +"页; "+ " Total wordCount=" + wordCount);
} catch (IOException e) {
e.printStackTrace();
}
} // 获取word文档中全部文本的方法(仅对doc文件有效)
public String getTextFromWord(String filePath) {
String res = null;
File file = new File(filePath);
try {
FileInputStream fis = new FileInputStream(file);
wordExtractor = new WordExtractor(fis);
// 获取全部文本
res = wordExtractor.getText();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return res;
} // 按段获取文本(仅对doc文件有效)
public String getTextByParagraph(String filePath) {
String res = null;
FileInputStream fis;
try {
fis = new FileInputStream(filePath);
wordExtractor = new WordExtractor(fis);
// 获取段文本
String[] strArray = wordExtractor.getParagraphText();
for (int i = 0; i < strArray.length; i++) {
System.out.println("第 " + (i+1)+" 段\n"+strArray[i]);
} // 这个构造函数从InputStream中载入Word文档
HWPFDocument doc = new HWPFDocument(
(InputStream) new FileInputStream(filePath));
// 这个类为HWPF对象模型,对文档范围段操作
Range range = doc.getRange();
int num = range.numParagraphs();
System.out.println("该文档共" + num + "段");//空行也算一段
System.out.println("获取第"+num+"段内容例如以下:\n"+range.getParagraph(num-1).text());
fis.close(); } catch (IOException e) {
e.printStackTrace();
}
return res;
}
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Java阅读word程序说明文件的更多相关文章

  1. 利用aspose-words 实现 java中word转pdf文件

    利用aspose-words  实现 java中word转pdf文件 首先下载aspose-words-15.8.0-jdk16.jar包 引入jar包,编写Java代码 package test; ...

  2. 实现在线阅读WORD,PDF等文件,JAVA,PHP都可以

    1 <?php 2 //header("Content-type:text/html;charset=utf-8"); 3 //word转html 展示 4 $lj=$_GE ...

  3. java 调用本地应用程序 Java打开(.word,.txt,.pdf)文件

    https://blog.csdn.net/lebron3v/article/details/80741000

  4. java实现word转pdf文件(高效不失真)

    import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import org.aspectj ...

  5. [Java] Java读取Word文档

    前言 最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法. Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括 ...

  6. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  7. java使用poi读取ppt文件和poi读取excel、word示例

    java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm

  8. java导出word文件

    java导出word文件 test5.ftl文件生存方法, 第一步:用word新建test5.doc,填写完整模板,将需导出数据用${}代替 第二步:将test5.doc另存为test5.xml 第三 ...

  9. JAVA 基础编程练习题50 【程序 50 文件 IO】

    50 [程序 50 文件 IO] 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), 计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件&qu ...

随机推荐

  1. 简单QT应用了可实现手动布局QT应用

     新建QT项目 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/4 ...

  2. hdu4888 Redraw Beautiful Drawings

    14更多学校的第二个问题 网络流量   分别以行,列作为结点建图 i行表示的结点到j列表示的结点的流量便是(i, j)的值 跑遍最大流   若满流了便是有解   推断是否unique  就是在残余网络 ...

  3. MEF初体验之八:过滤目录

    当在使用子容器的时候,基于某些具体标准来过滤目录可能是重要的.例如,基于部件的创建策略来过滤是很常见的.下面的代码片段演示了如何构建这种特别方法: var catalog = new Assembly ...

  4. 中文乱码?不,是 HTML 实体编码!(转)

    在 如何用 Nodejs 分析一个简单页面 一文中,我们爬取了博客园首页的 20 篇文章标题,输出部分拼接了一个字符串: var $ = cheerio.load(sres.text); var an ...

  5. iOS coreData

    static int row=0; static const NSString *kStoryboardName = @"LRCoreDataViewController"; st ...

  6. 解决Activity启动黑屏和设置android:windowIsTranslucent不兼容activity切换动画的问题

    在该项目中遇到开Activity之后,黑屏问题,解决的办法是在网上通过设置发现theme和style特性,可以实现. http://www.cnblogs.com/sunzn/p/3407078.ht ...

  7. opencv在arm和x86在移植

    一个.开发环境 操作系统:fedora14 Opencv版本号:2.0 Qt版本号:4.7 arm:mini6410 交叉编译工具:arm-linux-gcc-4.5.1 二.安装与配置 Linux系 ...

  8. (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找

    环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...

  9. cocos2d-x 网络请求

    [cocos2dx]rapidjson用法以及中文显示的解决方法 cocos2dx 读取json及解析 cocos2dx rapidjson 高速解析JSON  --- [cocos2d-x官方文档] ...

  10. 【软件project】生存期模型(含图)

    为了反映软件生存周期内各个工作应怎样组织,各阶段怎样衔接,须要软件开发模型给出直观图示表达.软件开发模型是软件思想的详细化,是实施在过程模块中的软件开发方法和工具. 以下来介绍开发模型的特点以及他们的 ...