博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java阅读word程序说明文件
阅读量:6842 次
发布时间:2019-06-26

本文共 2609 字,大约阅读时间需要 8 分钟。

完成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&&PHP)
查看>>
Code First开发系列之数据库迁移
查看>>
UI方面书籍推荐
查看>>
Spark SQL概念学习系列之Spark SQL 优化策略(五)
查看>>
pgpool-II的 FATAL: role "nobody" does not exist 错误
查看>>
jsp路径
查看>>
关于location.href几种用法的区别
查看>>
【转】拷贝构造函数/深拷贝/浅拷贝
查看>>
什么是类比估算法=自上而下的估算
查看>>
[Java] Java 打包成jar包 和 解压jar包
查看>>
模拟ajax的 script请求
查看>>
2013年小米校园招聘笔试题
查看>>
单片机第13课:串口通信---向计算机发送数据
查看>>
[译]更改自定义活动设计器上的图标
查看>>
使用WF4 状态机CTP1 进行工作流开发
查看>>
android studio 开发android app 真机调试
查看>>
[stm32] STM32的通用定时器TIMx系统了解
查看>>
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
查看>>
添加php的memcached扩展模块
查看>>
W3wp.exe占用CPU及内存资源
查看>>