博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POI读取word2003和word2007
阅读量:4282 次
发布时间:2019-05-27

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

首先引入Maven依赖,如下

 

org.apache.poi
poi
3.13
org.apache.poi
poi-scratchpad
3.13
org.apache.poi
openxml4j
1.0-beta
org.apache.poi
poi-ooxml
3.13
dom4j
dom4j
1.6.1
org.apache.geronimo.specs
geronimo-stax-api_1.0_spec
1.0
org.apache.poi
ooxml-schemas
1.1
org.apache.xmlbeans
xmlbeans
2.3.0

 

下面编写Java工具类,代码如下

 

import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.net.URL;import org.apache.poi.POIXMLTextExtractor;import org.apache.poi.hwpf.extractor.WordExtractor;import org.apache.poi.xwpf.extractor.XWPFWordExtractor;import org.apache.poi.xwpf.usermodel.XWPFDocument;public class WordReader {		public synchronized static String read(String url){		if (url.endsWith("doc") || url.endsWith("DOC")) {			return readWord2003(url);		}else if (url.endsWith("docx") || url.endsWith("DOCX")) {			return readWord2007(url);		}else {			return "";		}    	}		private static String readWord2007(String url) {  		POIXMLTextExtractor ex = null;		XWPFDocument xwpf = null;		InputStream is = null;        try {        	is = new URL(url).openStream();            xwpf = new XWPFDocument(is);            ex = new XWPFWordExtractor(xwpf);            return ex.getText();        } catch (FileNotFoundException e) {            e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();         } finally{        	try {				ex.close();			} catch (IOException e) {				e.printStackTrace();			}        	try {				xwpf.close();			} catch (IOException e) {				e.printStackTrace();			}        	try {        		is.close();			} catch (IOException e) {				e.printStackTrace();			}        }        return null;    }		private static String readWord2003(String url) {		WordExtractor wordExtractor = null;		InputStream fis = null;		try {			fis = new URL(url).openStream();	        wordExtractor = new WordExtractor(fis);	        String content = wordExtractor.getText();	        return content;	    } catch (FileNotFoundException e) {	    	e.printStackTrace();  	    } catch (IOException e) {  	     	e.printStackTrace(); 	    } finally{	    	try {				wordExtractor.close();			} catch (IOException e) {				e.printStackTrace();			}	    	try {				fis.close();			} catch (IOException e) {				e.printStackTrace();			}	    }		return null;	} 		public static void main(String[] args) {		System.out.println(read("http://file.neeq.com.cn/upload/A0/B0/C2/F236.doc"));		System.out.println(read("http://file.neeq.com.cn/upload/A0/B0/C2/F260.docx"));	}}

 

 

转载地址:http://aocgi.baihongyu.com/

你可能感兴趣的文章
OK6410A 开发板 (八) 24 linux-5.11 OK6410A start_kernel 功能角度 第三阶段
查看>>
OK6410A 开发板 (八) 25 linux-5.11 OK6410A 进程角度 裸机和进程的区别
查看>>
getopt 解析
查看>>
文章标题
查看>>
linux前后台切换
查看>>
nmap
查看>>
uboot执行顺序main_loop
查看>>
uboot编译内容详解
查看>>
uboot Makefile 分析
查看>>
uboot网络验证
查看>>
烧写uboot
查看>>
QT安装
查看>>
QtCreator介绍
查看>>
QT工程实例
查看>>
pkg-config
查看>>
Linux内核分析-1/反汇编(堆栈)
查看>>
Linux内核分析-2/时间片轮转多道程序
查看>>
Linux内核分析-4/5/系统调用
查看>>
c/c++常见关键字
查看>>
C++内存地址分配和内存区划分简介
查看>>