• Apache POI的使用


                  Apache POI


    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
    结构:
    HSSF - 提供读写Microsoft Excel格式档案的功能。
    XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
    HWPF - 提供读写Microsoft Word格式档案的功能。
    HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
    HDGF - 提供读写Microsoft Visio格式档案的功能。

    创建Excel 文档

    示例1将演示如何利用Jakarta POI API 创建Excel 文档。
    示例1程序如下:
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import java .io.FileOutputStream;
    public class CreateXL {
    /** Excel 文件要存放的位置,假定在D盘下*/
    public static String outputFile="D:\test.xls";
    public static void main(String argv[]){
    try{
    // 创建新的Excel 工作簿
    HSSFWorkbook workbook = new HSSFWorkbook();

    // 在Excel工作簿中建一工作表,其名为缺省值
    // 如要新建一名为"效益指标"的工作表,其语句为:
    // HSSFSheet sheet = workbook.createSheet("效益指标");
    HSSFSheet sheet = workbook.createSheet();

    // 在索引0的位置创建行(最顶端的行)
    HSSFRow row = sheet.createRow((short)0);

    //在索引0的位置创建单元格(左上端)
    HSSFCell cell = row.createCell((short) 0);

    // 定义单元格为字符串类型
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);

    // 在单元格中输入一些内容
    cell.setCellValue("增加值");

    // 新建一输出文件流
    FileOutputStream fOut = new FileOutputStream(outputFile);

    // 把相应的Excel 工作簿存盘
    workbook.write(fOut);
    fOut.flush();

    // 操作结束,关闭文件
    fOut.close();

    System.out.println("文件生成...");
    }catch(Exception e) {
    System.out.println("已运行 xlCreate() : " + e );
    }
    }
    }


    读取Excel文档中的数据

    示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为test1.xls的Excel文件。
    示例2程序如下:
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import java .io.FileInputStream;
    public class ReadXL {
    /** Excel文件的存放位置。注意是正斜线*/
    public static String fileToBeRead="D:\test1.xls";
    public static void main(String argv[]){
    try{
    // 创建对Excel工作簿文件的引用
    HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));

    // 创建对工作表的引用。
    // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
    HSSFSheet sheet = workbook.getSheet("Sheet1");

    // 也可用getSheetAt(int index)按索引引用,
    // 在Excel文档中,第一张工作表的缺省索引是0,
    // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
    // 读取左上端单元
    HSSFRow row = sheet.getRow(0);
    HSSFCell cell = row.getCell((short)0);

    // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
    System.out.println("左上端单元是: " + cell.getStringCellValue());
    }catch(Exception e) {
    System.out.println("已运行xlRead() : " + e );
    }
    }
    }


    设置单元格格式

    在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:

    1、创建字体,设置其为红色、粗体:
    HSSFFont font = workbook.createFont();
    font.setColor(HSSFFont.COLOR_RED);
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

    2、创建格式
    HSSFCellStyle cellStyle= workbook.createCellStyle();
    cellStyle.setFont(font);
    3、应用格式
    HSSFCell cell = row.createCell((short) 0);
    cell.setCellStyle(cellStyle);
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("标题 "); 
    处理WORD文档
    import java .io.*;
    import org.textmining.text.extraction.WordExtractor;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    public class TestPoi {
    public TestPoi() {
    }
    public static void main(String args[]) throws Exception
    {
    FileInputStream in = new FileInputStream ("D:\a.doc");
    WordExtractor extractor = new WordExtractor();
    String str = extractor.extractText(in);
    //System.out.println("the result length is"+str.length());
    System.out.println(str);
    }
    }
    Apache软件基金会
    顶级项目
    ActiveMQ    Ant       Apache HTTP Server   APR
    Beehive    Camel     Cassandra        Cayenne
    Cocoon      Commons     Derby              Directory
    Excalibur    Felix      Forrest          Geronimo
    Gump     Hadoop   Harmony         HBase
    iBATIS           Jackrabbit    James         Lenya
    Lucene         Maven     mod_perl          MyFaces
    OFBiz         OpenEJB    OpenJPA            POI
    Roller      Shale       SpamAssassin     stdcxx
    Struts        Subversion   Tapestry           Tomcat
    Traffic Server  Tuscany    Velocity         Wicket
    XMLBeans

    其他项目
    Jakarta项目    Apache XML    Apache Incubator

    子项目
    BCEL    BSF    Cactus JMeter
    Slide    Xerces   Batik    FOP
    Log4j    XAP    River    ServiceMix
    Log4Net   Abdera   Ivy    CXF
    ODE    Solr

  • 相关阅读:
    javascript 正則表達式补充
    NOIP2010 引水入城
    [Elasticsearch] 集群的工作原理
    师傅快看!全国首个民间资本为主的物联网行业投融资平台诞生了!
    【解决】hive与hbase表结合级联查询的问题
    ssh2项目整合 struts2.1+hibernate3.3+spring3 基于hibernate注解和struts2注解
    Python网络爬虫(一):初步认识网络爬虫
    Android天气预报+百度天气接口
    《从零開始学Swift》学习笔记(Day 55)——使用try?和try!差别
    使用SQL Profile及SQL Tuning Advisor固定运行计划
  • 原文地址:https://www.cnblogs.com/yangzumin/p/3179871.html
Copyright © 2020-2023  润新知