`
zzc1684
  • 浏览: 1228210 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

POI 读取word (word 2003 和 word 2007)

阅读更多

 

    最近在给客户做系统的时候,用户提出需求,要能够导入 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.gzopenxml4j-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 中文字内容的测试类<br /> 
     * @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 示例文件。

 

 

分享到:
评论

相关推荐

    POI读取 word 2003 和 word 2007 的例子

    这是一个POI读取word 2003 和 word 2007的例子 是一个Eclipse工程 下载后直接导入工程 运行 src 目录下的 Test java 类即可 这个 rar 包中包含着 POI 读取word 2003 和 word 2007 所需要的 jar 包 也有需要读取的 ...

    [简单]poi读取word 2007简单文本框值

    标题中的“poi读取word 2007简单文本框值”指的是使用Apache POI库来读取Microsoft Word 2007文档中简单文本框内的文本内容。Apache POI是一个流行的开源Java库,用于处理Microsoft Office格式的文件,如Word(.docx...

    POI读取word文档的文字内容和图片内容

    在本主题中,我们将深入探讨如何使用POI库读取Word文档中的文字内容和图片。 首先,我们需要理解Word文档的基本结构。Word文档本质上是由一系列基于XML的数据存储在.OFFICEML格式的文件中,这使得我们可以通过解析...

    POI 读取 WORD EXCEL POWERPOINT 2003 2007

    Apache POI 是一个开源项目,专门用于处理 Microsoft Office 格式文档,如 Word、Excel 和 PowerPoint。这个项目为 Java 开发者提供了强大的 API,使得在没有安装 Microsoft Office 的情况下,也能进行读取、写入...

    JAVA-POI读取word每一段所在页码(附依赖jar包).zip

    我给出了代码和所有的解释,用POI读取word中的页码。也算是小方法了,基本很准确,为什么要加一个基本呢?因为,分页标志符号在第一行为空白行的时候没有分页符!!所以你的文档如果有很多首段空白行的话,不要浪费C...

    apache poi读取word内容

    在本案例中,我们将关注如何使用Apache POI来读取Word文档的内容,并将其以流的形式返回到Web应用程序的前端页面。 首先,Apache POI提供了一个名为`XWPFDocument`的类,用于处理`.docx`格式的Word文档。这个类允许...

    java 利用POI读取Word文件中的内容

    通过学习和理解这个例子,你可以更好地掌握使用Apache POI读取Word文件的技巧。 总之,Apache POI为Java开发者提供了一种方便的方式,使他们能够轻松地与Microsoft Word文档进行交互,读取其中的文字、表格和图像等...

    linux下poi读取word空指针异常问题解决

    ### Linux下使用POI读取Word文件出现空指针异常问题解决方案 #### 问题背景 在使用Apache POI处理Word文档时,在Linux环境下遇到了`java.lang.NullPointerException`异常。异常的具体位置出现在`org.apache.poi....

    POI解析word2007文本及图片(已测试).doc

    Apache POI 提供了对 Word 2007 文本和图片的解析功能,允许开发者读取和提取 Word 文档中的文本和图片内容。 Word 2007 文档结构 Word 2007 文档是基于 OpenXML 标准的,使用 ZIP 压缩文件格式来存储文档内容。...

    poi读取word代码

    poi读取word代码,可以通过此代码实现对word中的文本、图片、表格的读取。

    使用poi将word读取后替换指定内容后再次生成新word

    使用poi将word读取后替换指定内容后再次生成新word,本人经过测试,拿来即用!

    利用POI读取excel写入到word

    要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...

    apache POI 读取 Word

    apach poi 读取word 文档 jar 包。 博文链接:https://wxinpeng.iteye.com/blog/231881

    java poi读取word

    首先,让我们了解如何通过Java POI读取Word文档。在Java中,我们需要导入`org.apache.poi.xwpf.usermodel`包,因为这个包包含了处理`.docx`文件所需的类。`.docx`是Word 2007及更高版本使用的XML格式。以下是一个...

    Java POI读取word生成

    在Java编程中,使用POI库可以实现自动化操作,例如读取、创建、修改和展示这些文件。在这个场景中,我们关注的是如何利用Java POI来生成Word文档,以便有效地展示和规范数据。 首先,理解POI的基本概念是很重要的。...

    安卓使用poi读取及修改word文档

    在"安卓使用POI读取及修改Word文档"这个主题中,我们将深入探讨如何在Android环境中利用Apache POI的HWPFDocument组件来实现这一功能。 首先,我们需要理解的是,Android原生并不支持Apache POI库,因为它的设计...

    poi读取word只读纯文本

    poi读取word只读纯文本,通过poi的jar包的辅助,读取word中的纯文本。

    POI读取word文件内容

    在这个场景中,我们将聚焦于如何使用POI来读取Word文档的内容。 首先,我们需要了解Word的两种基本文件格式:`.doc`和`.docx`。`.doc`是早期版本的Word文档格式,而`.docx`是自Word 2007以来使用的基于XML的压缩...

    POI读取word文件

    接下来,我们将探讨如何使用POI读取Word文件。对于.docx格式的文件,我们可以使用XWPFDocument类;而对于.doc格式的文件,需要使用HWPFDocument类。以下是一个简单的例子,展示如何读取.docx文件: ```java import ...

Global site tag (gtag.js) - Google Analytics