Java读取word文件的程序演示

完成对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文件的程序演示

时间: 2024-10-15 22:39:29

Java读取word文件的程序演示的相关文章

Java读取word文件,字体,颜色

在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性.但由于需要,要把doc文档中的内容(字体,下划线,颜色等)读取应用到android中(不包括图片和图表). 后面采用的是poi三方jar包(原包太大,可以从源代码里自己抽取有用的一些代码减少包的大小). 我的想法是:把doc中的内容解析出来后,加上html对应的标签,在android中通过Html.fromHtml在TextView中进行显示

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

在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应用.如果想深入了解原理.请读者自行研究一些相关源码. 首先我们来认识一下读取相关文档的jar包: 1. 引用POI包读取word文档内容 poi.jar 下载地址 http://apache.freelamp.com/poi/release/bin/poi-bin-3.6-20091214.zip 

java读word文件

Java POI 读取word文件 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个 jar 包即可, 而 2007 版本(.

Java读取word文档解决方案

java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java2Word.jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄:itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法.经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,

Java编程:使用Java读取Excel文件内容

微软的ODBC驱动程序把工作表中的第一行作为列名(译者注:即字段名),工作表名作为数据库表名. 要通过JDBC访问工作表,我们还必须创建一个新的ODBC数据源,在Windows 2000系统上创建数据源的过程如下: 进入“控制面板” --> “管理工具” --> “数据源(ODBC)”,(译者注:打开后选择系统DSN),点击添加,在弹出窗口中选择“Driver do Microsoft Excel(*.xls)” 然后在数据源名处输入一个名字myexcel(译者注:相当于数据库名),然后点击“

Android读取word文件

之前通过第三方jar包tm-extractors-0.4.jar,实现了一个简单的读取word文件的demo,但是只能读取word的文本数据,无法读取图片.表格数据. 最近参考网上的例子http://blog.csdn.net/xiaoxiaobian3310903/article/details/6598500 终于能够读取word里面的图片,表格等内容.在android系统上读取Word格式文档基于的开源包--POI(The Java API For Microsoft Documents)

通过POI读取word文件

POI读取word只能读取内容不能读取格式 tm-extractors-0.4.jar import java.io.FileInputStream; import org.textmining.text.extraction.WordExtractor; public class Test { public static void main(String[] args) { try { FileInputStream in = new FileInputStream("d:\\a.doc&qu

java 读取word

读取word文件 import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.POIXMLDocument; import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.openx

java读取xml文件的三种方法

xml既简单又标准,值得拥有和学习,好多地方都用的到.假设有这么一个book.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Copyright w3school.com.cn --> <!-- W3School.com.cn bookstore example --> -<bookstore> -<book category="childre