zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    服务部署 RPC vs RESTful
    模拟浏览器之从 Selenium 到splinter
    windows程序设计 vs2012 新建win32项目
    ubuntu python 安装numpy,scipy.pandas.....
    vmvare 将主机的文件复制到虚拟机系统中 安装WMware tools
    ubuntu 修改root密码
    python 定义类 简单使用
    python 定义函数 两个文件调用函数
    python 定义函数 调用函数
    python windows 安装gensim
  • 原文地址:https://www.cnblogs.com/yangzumin/p/3179871.html
Copyright © 2011-2022 走看看