使用POI处理Excel文档

使用POI处理Excel文档
JAVA DOC :

    POI是一个优秀的Java开源项目, 专用于解析和生成与Microsoft OLE 2相关的文件类型, 如Word, Excel等.

POI包总说:

    org.apache.poi.hssf.eventmodel    处理在读取和写入Excel文档中生成的各种动作.
    org.apache.poi.hssf.eventusermodel    提供读取Excel文档的各个类.
    org.apache.poi.hssf.record.formula    包含公式处理类, 这些类使用在Excel文档中.
    org.apache.poi.hssf.usermodel    包含生成Excel文档的各个类.
    org.apache.poi.hssf.util    提供处理Excel文档各个属性的工具类.

输出Excel文档
    首先, 创建一个 HSSFWorkbook 对象.
    从 HSSFWorkbook 对象获取一个 HSSFSheet 对象, 请注意, 这是你从 Workbook 对象获取 Worksheet 对象的唯一方法.
    对于 Worksheet 对象没有公共的构造方法, 这很自然是因为Excel模型中, Worksheet 也不能独立于 Workbook 而存在.
    类似的, 你可以从 Worksheet 对象中获取 HSSFRow 对象, 从 HSSFRow 对象中获取 HSSFCell 对象--每种类型依赖于它
    的父类型而存在.
    为了创建表头, 使用 Region 对象创建行和列的合并区域. 注意, 行和列的都是以 0 基数的.
    使用 HSSFCell 对象的 setCellValue 方法为单元格设置数据, 单元格支持所有 Java 本地的对象如 String, int 等. API 也支持
    其他通常使用的数据类型.
    HSSF 中的 HSSFStyle 类处理所有与单元格显示相关的属性, 如颜色, 字体, 高度, 宽度等.你可以为特定的单元格对象创建相对
    的属性.对于复杂的属性如字体, 颜色等 HSSF 也提供了 HSSFFont 和 HSSFColor 对象.
    单元格支持公式.
    最后, 为了在文件系统上物理的创建一个Excel文档, 你需要从 HSSFWorkbook 对象调用 write 方法, 并将 OutputStream 对象传入.

输入Excel文档
    HSSF 提供一个特别的 POIFSFileSystem 对象特定的读取 Microsoft OLE 2 对象. 使用 POIFSFileSystem 对象, 你从一个特定的
    Excel 文档中构造 HSSFWorkbook 对象.

Web应用程序中使用 Java 访问 Excel 对象
    使用 MIME 类型字符串 "application/vnd.ms-excel"
    在 Response 的头中, Content-disposition 条目怎样将内容分发到浏览器, inline 属性表明浏览器应当在打开这个文档前提示
    "打开/保存/取消" 对话框.
==========================================================================================================================
怎样使用 poi包
http://jakarta.apache.org/builds/jakarta-poi/
里面有3个目录,下realese->bin->jakarta-poi-1.5.1-final-bin.zip

文件解开后,把jakarta-poi-contrib-1.5.1-final-20020615.jar放到
JAVA—HOME:\j2sdk\jre\lib\ext中

一切OK!!
使用POI读取excel的问题
-----------------------------------------------------------------------------------------

有两个问题: 
 
1  在web应用中,怎么配置POI 
 
2  有读取excel文件的例子吗,在jsp中 
 
 
--------------------------------------------------------------- 
 
将poi的.jar文件放在你的应用的WEB-INF\lib目录下就可以在本应用中用了. 
--------------------------------------------------------------- 
 
1  把poi的包放到web-inf的lib目录下就行了 

 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:/JTest/  gongye.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  ); 
 } 

}
==========================================================================================================================
如何使用Java POI生成Excel表文件 !
 发布者:[本站编辑]  来源:[]  浏览:[]  评论:[]  字体:大 中 小  
 

// 使用Java POI
// 把要两个JAR文件放到lib/ext下
// code run against the jakarta-poi-1.5.0-FINAL-20020506.jar.
//                  and commons-logging-1.0.jar
例子程序:
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;

// code run against the jakarta-poi-1.5.0-FINAL-20020506.jar.
//                  and commons-logging-1.0.jar
public class PoiTest {

static public void main(String[] args) throws Exception {

 FileOutputStream fos = new FileOutputStream(d:\\\\foo.xls);
 HSSFWorkbook wb = new HSSFWorkbook();
 HSSFSheet s = wb.createSheet();
 wb.setSheetName(0, Matrix);
 for(short i=0; i<50; i++) {
  HSSFRow row = s.createRow(i);
  for(short j=0; j<50; j++) {
   HSSFCell cell = row.createCell(j);
   cell.setCellValue(+i+,+j);
  }
 }
 wb.write(fos);
 fos.close();
}
}

猜你喜欢

转载自fsi199773-163-com.iteye.com/blog/1144440