POI概述及简单举例

来源:互联网 发布:怎么找淘宝客服 编辑:程序博客网 时间:2024/06/05 02:01

 Apache POI 是创建和维护操作各种符合Office Open XMLOOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java AP。简单来讲,我们可以利用POI操作绝大多数微软的office产品。POI项目组件构成如下图所示。

 

    

 

简单解释如下:
HSSF(XSSF) - 提供读写Microsoft Excel XLS(XLSX)格式档案的功能。
HWPF(XWPF) - 提供读写Microsoft Word DOC(docx)格式档案的功能。
HSLF和XSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读Microsoft Visio格式档案的功能。
HPBF - 提供读Microsoft Publisher格式档案的功能。
HSMF - 提供读Microsoft Outlook格式档案的功能。

上文可以看出POI提供了对Microsoft办公软件的操作接口,目前对excel、word、powerpoint的支持更加完善,可以读写这些文档,而对于其他应用仅提供了读取信息的功能。下面以操作excel为例简单介绍下POI的使用。

 

使用POI操作不同OFFICE应用用到的POI组件不同,从而引用的jar包也不一样。例如我们仅利用HSSF来建立excel文件,则我们只需要进入POI.jar,在此例中引入的是poi-3.8-20120326.jar。
创建excel首先要获取到Workbook。Workbook可以直接通过输出流(OutputStream)输出到指定位置。例如我们需要在C盘创建一个text.xls文件,则可以利用Workbook和FileOutputStream来做到。

import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Workbook;public static void main(String[] args){try {FileOutputStream out = new FileOutputStream("c:\\test.xls");Workbook wb = new HSSFWorkbook();wb.write(out);out.close();} catch (FileNotFoundException e1) {e1.printStackTrace();}catch (IOException e) {e.printStackTrace();}}

       此时创建的excel文件虽然可以打开,但实际上其为空的excel应用程序,打开会发生错误,随即修复为带有一个sheet的文件。我们需要为之工作簿添加sheetWorkbook接口能够创建出sheet,且新创建的sheet会自动被添加到Workbook队列中,且能为sheet命名。在工作簿中有了两页表格,我们可以为之添加数据、设置样式等等。值得注意的是我们在sheet中创建的行(row)或者单元格(cell)仅当为其设置了内容,才会自动增加到sheet上。

import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Font;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.CellStyle;public class TestHSSF {public static void main(String[] args){// create a new fileFileOutputStream out;try {out = new FileOutputStream("c:\\test.xls");Workbook wb = new HSSFWorkbook();//创建sheetSheet s1 = wb.createSheet();Sheet s2 = wb.createSheet();//命名sheetwb.setSheetName(0, "第一个sheet" );wb.setSheetName(1, "第二个sheet" );//创建行Row r = s1.createRow(30);//设置行高r.setHeight((short)1132);//创建单元格Cell c = r.createCell(3);//创建样式,设置字体颜色、设置为粗体、设置底边框宽度等等CellStyle cs = wb.createCellStyle();cs.setBorderBottom((short)2);Font f = wb.createFont();f.setFontHeightInPoints((short) 18);f.setColor( (short)0xc );f.setBoldweight(Font.BOLDWEIGHT_BOLD);cs.setFont(f);//设置单元格为样式csc.setCellStyle(cs);//设置单元格值c.setCellValue("测试");wb.write(out);out.close();} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

      

       本文概括陈述了POI的组件构成,及其主要作用,使我们了解到在工程中可以利用POI来操作office应用,同时略举了一个简单例子说明Workbook(能够创建CellStyleFontSheet)、CellStyleFontSheet(能够创建RowCell)、RowCell的关系,进而了解HSSF组件的简单使用。

 

 

 

 

 

 

扩展阅读:

OLEOCXActiveX控件之间的比较

http://www.cnblogs.com/olawonzhu/articles/1683424.html

 

原创粉丝点击