最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97、2003、2007的,这三个版本存储数据的格式上都有相当大的差别,而现在 97 基本上已经退出市场,几乎没有人用这个版本了, 所以在我们的系统中只考虑 2003 版本和 2007 版本的,因为我们只要求能够读取 word 中的文字内容即可,其中的文字样式、图片等信息可以忽略,也不用直接操作 word 文件, 所以我们选择 用 apache 的 POI 进行读取。

读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:  1. openxml4j-bin-beta.jar  2. poi-3.5-beta6-20090622.jar  3. poi-ooxml-3.5-beta6-20090622.jar  4 .dom4j-1.6.1.jar  5. geronimo-stax-api_1.0_spec-1.0.jar  6. ooxml-schemas-1.0.jar  7. xmlbeans-2.3.0.jar 其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目录下可以找到)。

编写代码之前我们得先下载所需要的 jar 包, 我们只需下载 poi-bin-3.5-beta6-20090622.tar.gz 和 openxml4j-bin-beta.jar 即可,因为所需要的其他 jar 包都能在 poi-bin-3.5-beta6-20090622.tar.gz 中找到, 下面是下载地址: poi-bin-3.5-beta6-20090622.tar.gz:http://apache.etoak.com/poi/dev/bin/poi-bin-3.5-beta6-20090622.tar.gz openxml4j-bin-beta.jar:http://mirror.optus.net/sourceforge/o/op/openxml4j/openxml4j-bin-beta.jar       下方是读取 word 文件的 Java 代码,值得注意的是: POI 在读取 word 文件的时候不会读取 word 文件中的图片信息, 还有就是对于 2007 版的 word(.docx), 如果 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.openxml4j.opc.OPCPackage;

import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

/**

* POI 读取 word 2003 和 word 2007 中文字内容的测试类

* @createDate 2009-07-25

* @author Carl He

*/

public class Test {

public static void main(String[] args) {

try {

//word 2003: 图片不会被读取

InputStream is = new FileInputStream(new File("c://files//2003.doc"));

WordExtractor ex = new WordExtractor(is);

String text2003 = ex.getText();

System.out.println(text2003);

//word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后

OPCPackage opcPackage = POIXMLDocument.openPackage("c://files//2007.docx");

POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);

String text2007 = extractor.getText();

System.out.println(text2007);

} catch (Exception e) {

e.printStackTrace();

}

}

}

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.openxml4j.opc.OPCPackage;

import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

/**

* POI 读取 word 2003 和 word 2007 中文字内容的测试类

* @createDate 2009-07-25

* @author Carl He

*/

public class Test {

public static void main(String[] args) {

try {

//word 2003: 图片不会被读取

InputStream is = new FileInputStream(new File("c://files//2003.doc"));

WordExtractor ex = new WordExtractor(is);

String text2003 = ex.getText();

System.out.println(text2003);

//word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后

OPCPackage opcPackage = POIXMLDocument.openPackage("c://files//2007.docx");

POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);

String text2007 = extractor.getText();

System.out.println(text2007);

} catch (Exception e) {

e.printStackTrace();

}

}

}  如果想下载完整的示例代码,可以到这里下载,这个 rar 包中有 POI 读取word 2003 和 word 2007 所需要的全部 jar 包 和 word 2003、word 2007 示例文件。

java word 2003_POI 读取word (word 2003 和 word 2007) (转)相关推荐

  1. java word 2003_[Java教程]POI 读取word (word 2003 和 word 2007)(转)

    [Java教程]POI 读取word (word 2003 和 word 2007)(转) 0 2017-09-27 16:00:29 POI 读取word (word 2003 和 word 200 ...

  2. java读取word文档的复杂表格_poi读取word表格 java POI 如何读取word的表格中的表格...

    poi 操作word 2007 (如何删除word中的某一个表格)小编忘了哪年哪月的哪日小编在哪面墙上刻下张脸张微笑着忧伤着凝望小编的脸. public static void changeTable ...

  3. POI 读取word (word 2003 和 word 2007

    最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2007的,这三个版本存储数据的格式上都有相当大的差别,而现在 9 ...

  4. POI 读取word (word 2003 和 word 2007)

    最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2007的,这三个版本存储数据的格式上都有相当大的差别,而现在 9 ...

  5. java读取word表格中的数据_JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  6. java poi无法读取word_java poi word读取

    用 poi 读取word文件 . 老是报错 org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid header signature ...

  7. java下载附件给(pdf、pptx、word、excel、图片)添加水印

    java下载附件给(pdf.pptx.word.excel.图片)添加水印 使用组件 poi itext spire.xls ooxml-schemas twelvemonkeys.imageio 等 ...

  8. java+vue实现前后端导出html的word文档

    java+vue实现前后端导出html的word文档 该内容主要是完成项目中实战导出word文档,而且不需要其他的依赖,原生的写法即可! 本项目架构: PS:不是这个架构的话看下逻辑就好,赶紧找别的博 ...

  9. java下freemarker2.3.28+aspose实现生成word文档生成、word转pdf转换

    一.java生成word文档 java生成word文档常用的两种方式: (1)apache下的poi类库处理office文档 (2)freemarker编辑word文件转换的xml文件 通过网上了解, ...

最新文章

  1. 港大徐爱民组研究助理招聘-内分泌代谢方向
  2. 斯坦福《编程方法学》 笔记与资源
  3. [算法笔记]-环形链表Ⅱ-解题方法
  4. 财经数据提取器上线拉
  5. python messagebox弹窗退出_python 中messagebox使用 做中断调试不错
  6. ROS-MikroTik-RouterOS-培训认证各种证书
  7. .NET 环境下进制间的转换
  8. linkedin 第三方网站登录(JavaScript SDK)
  9. 虚拟机安装LEDE之后如何配置连接互联网
  10. 电子病历系统服务器配置,河北省人民医院电子病历系统实施方案
  11. 【转载+整理】区块链学习笔记-北大肖臻老师课后笔记(01-13)——BTC篇
  12. 有向图的邻接矩阵的平方运算的含义
  13. select下拉框如何显示提示语,不要出现下拉选项中
  14. filezilla定时上传_windows下定时利用bat脚本实现ftp上传和下载
  15. 【地平线开发板 模型转换】将pytorch生成的onnx模型转换成.bin模型
  16. 数字图像处理学习笔记4第四章 图像变换 附实验
  17. 看过千万的风景 比不上故乡的美丽
  18. 艾兰岛编辑器-全局存储
  19. 2012IT公司校园招聘笔试面试题
  20. php session超时时间_php怎么设置session超时时间

热门文章

  1. Xilinx FPGA开发基本流程
  2. sql嵌套查询时避免报错的方式
  3. 计算机应聘大学生自我介绍,大学生计算机毕业面试自我介绍
  4. 混战的低代码江湖,如何区分「李逵」和「李鬼」?
  5. 浅析Promise原理
  6. MVTec 针对 Intel 发行版工具套件推出新插件
  7. css3发光字js特效代码
  8. MATLAB利用主成分分析进行综合评价排名
  9. gis海量资源网盘提供VIP账号无广告高速下载 (更新更多资源)
  10. ORACLE 字符串替换函数 REPLACE()