`
jzhua2006
  • 浏览: 300910 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

POI使用小结

阅读更多
本文主要是针对本人在实际项目中,利用POI来开发数据导入和导出的应用而总结而来。其实JAVA在处理Window OLE 2复合文档格式操作的API,还有很多POI、JExcelApi、IText等,而在实际的个人感觉POI确实是一个不错的选择。下面就POI开发的相关内容进行简要的介绍下,包括POI组成、开发步骤、具体示例、知识点汇总等内容进行讲解。POI组成
POI组成
 官方网站: http://jakarta.apache.org/poi/,这个是POI的官方网站,用户可以先从这里下载。最新的版本3.0.2,下载解压后里面有三个jar包(poi-3.0.2-FINAL-20080204.jar/ poi-contrib-3.0.2-FINAL-20080204.jar/ poi-scratchpad-3.0.2-FINAL-20080204.jar),而在这里包中主要含:
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文档各个属性的工具类.
开发步骤
1:先下载POI包;
2:解压后将里面的3个jar文件拷贝至WEB-INF\lib中。
3:刷新工程后,即可以使用jar包中的内容了。

 读取POI文档
一:以文件名创建一个InputStream
二:以上面的InputStream实例创建一个HSSFWorkbook.
三:HSSFWorkbook的getSheetAt(index)可获取相应的工作页
四:工作页调用方法获取行
五:行再获取相应的格,调用单元格的方法,然后取出对应数据。

 创建Excel文件
一:以new HSSFWorkbook()构造一个新的Excel文档
二:以HSSFWorkbook的createSheet("工作本名"),创建一个新的工作页。
三:新的工作页以createRow(RowIndex)依次创建行
四:HSSFRow以createCell(CellIndex)依次创建单元格
五:设置相应单元格的格式,值。
具体示例
示例一:读取Excel文件中的所有数据,包括对个工作表(薄)。
public static void ReadExcel2(String file) {
int total = 0;
try {
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));
int sn = wb.getNumberOfSheets();
for(int i=0;i<sn;i++){
HSSFSheet sheet = wb.getSheetAt(i);
for(int j=0;j<sheet.getLastRowNum();j++){
HSSFRow row = sheet.getRow(j);
for(int k=0;k<row.getLastCellNum();k++){
HSSFCell cell = row.getCell((short)k);
if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING){
System.out.println(cell.getStringCellValue());
}
else{
System.out.println(cell.getBooleanCellValue());
}
total++;
}
}
}
System.out.println(total);

} catch (Exception e) {
System.out.println(e.getStackTrace());
}
}

示例一:创建一个Excel,并把相应的数据添入到指定的单元格。
public static boolean createExcel(String file){
boolean flag = false;
try{
// wb,对应一个内存中的excel文档
        HSSFWorkbook wb = new HSSFWorkbook();
        // sheet创建一个工作页
       for(int h =0;h<3;h++){
        HSSFSheet sheet = wb.createSheet("jzh"+h);
       
        //设置列的宽度
        sheet.setDefaultColumnWidth((short)20);
        //String[] s = new String[]{"姓名","年龄","地址","城市","公司","工作","职位","收入"};
        String[] s = {"姓名","年龄","地址","城市","公司","工作","职位","收入"};
        cellStyle = getAnyCellStyle(wb,getHdrFont(wb,12),HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_CENTER, (short)-1, true);
        for(int x=0;x<s.length;x++){
        HSSFRow row = sheet.createRow(0);
       
            //设置行的高度
            row.setHeight((short)500);
            HSSFCell cell = row.createCell((short)x);
                cell.setEncoding(HSSFCell.ENCODING_UTF_16);                
                cell.setCellValue(s[x]);
                cell.setCellStyle(cellStyle);
        }
       
       
        for (short i = 1; i < 100; i++)
        {
            // HSSFRow,对应一行
            HSSFRow row = sheet.createRow(i);
     
            //设置行的高度
            row.setHeight((short)500);
       
            for (short j = 0; j < 8; j++)
            {
                // HSSFCell对应一格
                HSSFCell cell = row.createCell(j);
                cell.setEncoding(HSSFCell.ENCODING_COMPRESSED_UNICODE);                
                //cell.setCellValue("Java,我的信仰" + String.valueOf(i));
                cell.setCellValue(true);
            }
        }
        OutputStream out = new FileOutputStream(file);
        wb.write(out);
        out.close();

flag = true;
       }
}
catch(Exception ex){
flag = false;
}
return flag;
}
知识点汇总
 设置单元格格式
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("标题"); 

 获得这个工作表数据行数
System.out.println(sheet.getLastRowNum());
 获得列数
System.out.println(row.getLastCellNum());

 设置第三列的宽度为5
sheet.setColumnWidth((short)3,(short)5);

 设置字体格式
HSSFCellStyle titlestyle = workbook.createCellStyle();
HSSFFont titlefont = workbook.createFont();
titlefont.setFontHeightInPoints((short)18);
titlefont.setFontName("黑体");
titlefont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
titlestyle.setFont(titlefont);

titlestyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titlestyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

HSSFCell titlecell = titlerow.createCell((short)((fileds.length) / 3));
titlecell.setCellStyle(titlestyle);
titlecell.setEncoding(HSSFCell.ENCODING_UTF_16);
titlecell.setCellValue(titles);

 合并单元格
主要是从(1,3)到(5,6)的合并点
sheet.addMergedRegion(new Region((short)1,(short)3,(short)5,(short)6));
3
2
分享到:
评论
2 楼 wo4562658 2012-10-08  
没有附件?getAnyCellStyle 这个方法,getHdrFont这个方法来自哪里 ?
1 楼 jamesji 2008-05-02  
I don't think you are on the right direction, have a look on Eclipse BIRT project. It support ppt, doc, pdf, xls, and html formats. And its plugin is very easy to use, and save you tons of time.

相关推荐

    poi使用总结

    个人整理的POI解析EXCEL常用API详解 里面包括我在使用过程中的一些心得

    poi读写excel+poi总结

    poi读写excel,poi总结; poi读写excel,poi总结 poi读写excel,poi总结

    poi使用说明

    POI_3.8_API.CHM; POI3.5_HSSF_和XSSF_Excel操作快速入门手册.pdf; poi-bin-3.9-20121203.zip; poi使用总结.txt; POI整理.doc;

    POI3.8架构总结.docx

    POI3.8架构总结.docx

    poi操作总结 内附详细流程及poi-3.6.jar

    java使用poi实现excel导入导出功能,详细描述并带有jar包

    java poi技巧总结

    利用java代码实现很方便。简洁,很使用。具有代表性。

    POI Excel用法小结

    POI Excel用法小结 ,集合了poi处理文档的各种方法

    POI实战 .pdf

    目录大概: 1.POI入门 4 1.1 Excel基本知识 4 1.2 POI基本类 5 1.3 POI简单读取Excel数据 5 1.4 POI简单写出Excel 9 2.复杂读取 16 2.1 单元格各类型数据读取 16 2.1.1 基本类型 16 ...6.总结 52 7.附录 53

    POI操作Excel常用方法总结.docx

    POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java...

    POI实战-java开发excel详解

    本POI实战为本人在业余时间写成,从浅开始,整个文档处于初到中级水平,包含大部分项目开发中会用到的常用功能,由于本人精力与能力有限,如有错误欢迎指正。 目录大概: 1.POI入门 4 ...6.总结 52 7.附录 53

    Apache POI HSSF和XSSF读写EXCEL总结

    Apache POI HSSF和XSSF读写EXCEL总结

    POI设置EXCEL单元格格式的操作小结

    比较全面的POI操作手册,并附上完整的例子。

    poi完整架包

    最新最完整的poi架包,总结了所有看到的poi架包

    java poi处理excel数据

    压缩包里面有poi相关的jar包,以及我在使用poi时候导入jar包遇到问题总结和一个小demo。

    POI实战总结

    一、 POI简介。 二、 HSSF概况 。 三、 POI EXCEL文档结构类 。 四、 EXCEL常用操作方法 。 【1、得到Excel常用对象 2、建立Excel常用对象 3、设置sheet名称和单元格内容 4、取得sheet的数目 5、根据index取得...

    poi相关技术的总结

    poi相关技术的总结,撒反对说 第三方xcz

    POI操作Excel常用方法总结

    NULL 博文链接:https://xiaowei-qi-epro-com-cn.iteye.com/blog/2029134

    POI操作Excel总结实例

    POI操作Excel总结实例,包括读取数据库中的表记录到Excel中;从Excel中读取数据到泛型集合中。 qq:294647378 详细:http://itba.taobao.com

    poi 3.2 jar包+实例代码解决方案

    里面有poi3.2资源包,和很多总结出来的实例代码和解决方案,值得poi使用者拥有

    java poi操作excel小例子

    基于poi的java操作excel小demo,有兴趣的童鞋可以下载,自己总结,与大家共享,例子不大。但是入门一定会有帮助。很快!

Global site tag (gtag.js) - Google Analytics