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;
	}
}

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

时间: 2024-07-29 09:36:24

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

java按指定后缀复制文件并保留原始文件夹路径

为了只复制java原代码文件,不要class文件或其他不需要的文件,写的一个java窗口小程序 指定文件后缀,原始文件文件夹路径,目的文件夹路径,如原始路径为,D:\Projects,目的路径为C:\User\ABC\Desktop\newProject\, 要复制.java文件,复制后的路径为C:\User\ABC\Desktop\newProject\Projects\...不改变原路径,只复制.java文件 1 package copyfile; 2 /** 3 * @author ycl

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

Java程序员从笨鸟到菜鸟之(一百零三)java操作office和pdf文件(一)java读取word,excel和pd

在平常应用程序中,对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.ziph

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, excel, 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-

JAVA原始的导出excel文件,快捷通用 方便 还可以导出word文档哦

现在导出excel基本上都是用poi了,当报表格式很负责的时候 开发难度会加大 如果报表有格式有变化 那就更复杂了,先发现一个很老的技术,可以解决格式复杂的报表. 实例代码如下: <%@ page contentType="application/vnd.ms-excel;charset=GBK" %> <%@page import="java.net.URLEncoder"%> <% String filedisplay = &quo

JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦

如今导出excel基本上都是用poi了,当报表格式非常负责的时候 开发难度会加大 假设报表有格式有变化 那就更复杂了,先发现一个非常老的技术.能够解决格式复杂的报表. 实例代码例如以下: <%@ page contentType="application/vnd.ms-excel;charset=GBK" %> <%@page import="java.net.URLEncoder"%> <% String filedisplay =

java 抽取 word,pdf 的四种武器

转自:https://www.ibm.com/developerworks/cn/java/l-java-tips/     感谢作者发布的文章 用 jacob 其实 jacob 是一个 bridage,连接 java 和 com 或者 win32 函数的一个中间件,jacob 并不能直接抽取 word,excel 等文件,需要自己写 dll 哦,不过已经有为你写好的了,就是 jacob 的作者一并提供了. jacob jar 与 dll 文件下载: http://www.matrix.org.

java操作word (jacob)

什么是jacob? jacob是一个开源项目它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库.它可运行在x86和支持32位和64位Java虚拟机 X64的环境(摘除自百度词条). 准备工作: 需要的jar包:jacob.jar:此外还需要将jacob.dll放在在windows/system32目录下,否则会报错Could not initialize class com.jacob.activeX.ActiveXComponent. 实例 需要导入的