Java-------操作word工具的选择

    在实际的开发中都会遇到 Java操作word文档,pdf文档,excel表格,以实现基本的功能和需要。如果没有接触之前,我们无从下手,今天我就对这些操作用什么工具或者方法做一些简单的陈述,以便可以直接查找对应的资料。

   Java操作word文档:

        Java 操作word,对word文档进行读写时,主要用 Apache写的POI这个工具类,网上有POI对用的API和文档,在自己实际的项目中可以查找对应的API进行对应的操作。特别注意的是: word 文档分03版和07版的,doc和docx两种,这两种读取的方式是不同的。以.docx文件结尾实际上也是压缩文件,当你把docx后缀名改成.zip,然后解压可以看到很多xml文件,实际上读取docx文档就是解析xml文档。不相信的可以自己尝试。

把docx改成为zip 的效果图

 1 什么是Apache POI

     全称Apache POI,使用Java编写的免费开源的跨平台的Java API。 是创建和维护操作各种符合 Office Open XML(OOXML)标准和微软的 OLE 2 复合文档格式(OLE2)的 Java API。用它可以使用 Java 读取和创建, 修改 MS Excel 文件. 而且, 还可以使用 Java 读取和创建 MS Word 和 MSPowerPoint 文件。Apache POI 提供 Java 操作 Excel 解决方案(适用于 Excel97-2008)。

 2 Apache POI的组件

Apache POI包含用于MS-Office的所有OLE2复合文档的类和方法。 此API的组件列表如下:

附上一个简单的代码: 

  • POIFS:此组件是所有其他POI元素的基本因素。 它用于显式读取不同的文件。
  • HSSF:用于读取和写入.xls格式的MS-Excel文件。
  • XSSF(XML SpreadSheet格式):用于MS-Excel的.xlsx文件格式。
  • HPSF:用于提取MS-Office文件的属性集。
  • HWPF:用于读取和写入MS-Word的.doc扩展文件。
  • XWPF(XML字处理器格式):用于读取和写入MS-Word的扩展文件 .docx 。
  • HSLF:用于阅读,创建和编辑PowerPoint演示文稿。
  • HDGF(Horrible DiaGram格式):它包含MS-Visio二进制文件的类和方法。
  • HPBF(Horrible PuBlisher格式):用于读取和写入MS-Publisher文件。
package com.lq.readDoc;

import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.ooxml.POIXMLDocument;
import org.apache.poi.ooxml.extractor.POIXMLTextExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * 读取文档中的doc和docx的内容
 */
public class ReadDocUtils {

    public static String ReadDoc(String path) throws IOException {
        String resullt = "";
        //首先判断文件中的是doc/docx
        try {
            if (path.endsWith(".doc")) {
                InputStream is = new FileInputStream(new File(path));
                WordExtractor re = new WordExtractor(is);
                resullt = re.getText();
                re.close();
            } else if (path.endsWith(".docx")) {
                OPCPackage opcPackage = POIXMLDocument.openPackage(path);
                POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
                resullt = extractor.getText();
                extractor.close();
            } else {
                System.out.println("此文件不是word文件");
            }
            } catch(Exception e){
                e.printStackTrace();
            }
            return resullt;
        }
}

  Java 操作PDF文档: 

         Java 操作PDF文档使用Itext 工具类比较方便,可以替换文字,上传图片,进行word和PDf之间的转化。网上有对应的文档和API,可以自己查找封装工具类。

  Java 操作Excel表格:

         Java 操作Excel: 目前我了解到的主要工具类有两个,一个是Apache的POI,另一个是Alibaba 开源的EasyExcel,EasyExcel解决了 POI 中存在的问题,如果要excel数据量很小,可以用Apache下的,如何是海量数据,建议用EasyExcel,他又很多优势。

         EasyExcel的核心功能

  • 读任意大小的03、07版Excel不会OOM
  • 读Excel自动通过注解,把结果映射为java模型
  • 读Excel支持多sheet
  • 读Excel时候是否对Excel内容做trim()增加容错
  • 写小量数据的03版Excel(不要超过2000行)
  • 写任意大07版Excel不会OOM
  • 写Excel通过注解将表头自动写入Excel
  • 写Excel可以自定义Excel样式 如:字体,加粗,表头颜色,数据内容颜色
  • 写Excel到多个不同sheet
  • 写Excel时一个sheet可以写多个Table
  • 写Excel时候自定义是否需要写表头

 

 

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值