POI (Apache POI)

POI

 

(Apache POI)

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

目录

基本功能

编辑
结构:
HSSF - 提供读写 Microsoft Excel格式档案的功能。
XSSF - 提供读写 Microsoft Excel  OOXML格式档案的功能。
HWPF - 提供读写 Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写 Microsoft Visio格式档案的功能。

范文演示

编辑
创建Excel 文档
示例1将演示如何利用Jakarta POI API 创建Excel 文档。
示例1程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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、创建字体,设置其为红色、粗体:
1
2
3
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、创建格式
1
2
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font);
3、应用格式
1
2
3
4
HSSFCell cell = row.createCell(( short 0 );
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue( "标题 " );
处理WORD文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import  java.io. * ;
import  org.apache.poi.hwpf.extractor.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  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值