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

java读取word的几种方式

阅读更多
1.使用apache poi组件

   先到http://poi.apache.org/index.html去下载poi-bin-3.2-FINAL-20081019.zip压缩包,把里面的三个jar加入工程中。下面写个测试servlet类。比如请求为href="/TestPOI/readword.do?doc=F:/test.doc"

    public class ReadwordServlet extends HttpServlet {
    static final private String CONTENT_TYPE = "text/html; charset=gb2312";
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
            response.setContentType(CONTENT_TYPE);
            response.setHeader("Content-Disposition", "test.doc");
            String doc = request.getParameter("doc");
           
            String text = null;
            try {
                text = readDoc(doc);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            PrintWriter out = response.getWriter();
            result(request, out, text);
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
            doPost(request,response);
    }
    private void result(HttpServletRequest request, PrintWriter out, String text)
    throws ServletException, IOException {
        out.println("<h3>DOCBEGIN</h3><br/>");
        out.println(text);
        out.println("<br/><h3>DOCEND</h3>");
        out.close();
    }

///使用POI的WordExtractor类进行读取word内容

   private String readDoc(String doc) throws Exception{

      FileInputStream in = new FileInputStream(new File(doc));

       WordExtractor extrator = new WordExtractor(in);

      String text = extrator.getText();
      return text;
   }

}

2. 使用POI的拓展包tm-extractors-0.4.jar

http://mirrors.ibiblio.org/pub/mirrors/maven2/org/textmining/tm-extractors/0.4/去下载并加入工程中,它一个就够了,不用POI.

  替换掉原先readDoc(String doc)方法就可以。

    private String readDoc(String doc) throws Exception{
        FileInputStream in = new FileInputStream(new File(doc));
        WordExtractor extrator = new WordExtractor();
        String text = extrator.extractText(in);
        return text;
    }

3.  使用FileInputStream流的方式:

  用下面替换掉CONTENT_TYPE(因为流对word格式不熟悉无法自己处理,所以只能使用word格式了)

static final private String CONTENT_TYPE = "application/msword; charset=gb2312";

用下面替换doPost方法内容

response.setContentType(CONTENT_TYPE);
            response.setHeader("Content-Disposition", "test.doc");
            String doc = request.getParameter("doc");

   FileInputStream fin = new FileInputStream(doc);
           OutputStream out = response.getOutputStream();
           byte[] bs = new byte[2048];
           for(int i=fin.read(bs); i>-1; i=fin.read(bs)){
               out.write(bs, 0, i);
           }
           fin.close();
           out.close();

4.  可以使用中间件,效果当然很好,但是要花钱。如:科翰软件的微软office网路中间件
    http://www.kehansoft.com/soaoffice/doclist.asp
    或者NTKO Office也可以。
分享到:
评论
1 楼 zi_wu_xian 2016-08-19  
现在可以使用PageOffice了,这是一个代替soaoffice的产品,可以兼容目前最新的操作系统和office环境。www.zhuozhengsoft.com的下载中心可以下载免费的试用开发包,demo也比较多。

相关推荐

    Java读取Word文档页数

    里面包含一个word转pdf的jar,和一个读取pdf的jar。可以实现Java读取Word文档的页数。

    java读取word,pdf格式文档方法

    整理了用java如何读取word文档,pdf文档的几种方法,含有程序

    JAVA上百实例源码以及开源项目

    Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色...

    JAVA上百实例源码以及开源项目源代码

    Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色...

    java开源包11

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包6

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包9

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包101

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包4

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包5

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包8

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    freemarker生成复杂word

    如流程审批单,在流程处理完成后将处理过程按照流程单的要求导出,有时程序中需要实现生成标准Word文档,要求能够打印,并且保持页面样式不变,常见的方案有POI、iText、JACOB、JSP几种方式,POI读取Word文档比较...

    java开源包10

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包3

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包1

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包2

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java开源包7

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    Java资源包01

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java范例开发大全源代码

     实例139 利用POI读取Word文件中的内容 208  7.3 字符流 209  实例140 按顺序创建文件 210  实例141 按顺序读取文件 211  实例142 追加文件内容 211  实例143 只显示文件中指定的字符 214  实例...

Global site tag (gtag.js) - Google Analytics