`
jzhua2006
  • 浏览: 304518 次
  • 性别: 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使用说明

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

    poi读写excel+poi总结

    在本文中,我们将深入探讨如何使用POI进行Excel的读写操作,并进行总结。 1. POI基本概念 Apache POI 提供了HSSF(Horrible Spreadsheet Format)用于读写旧版的.xls格式的Excel文件,而XSSF则用于处理.xlsx格式的...

    POI使用方法表

    ### POI使用方法详解 #### 一、简介 Apache POI是Java API中用于处理Microsoft Office格式文件(如Excel和Word)的一个强大的工具包。它提供了读取、创建和修改这些文件的功能,而无需安装Office软件。本篇文档将...

    POI使用Excel模板文件循环输出行并导出Excel

    总结,Apache POI提供了一套完整的API,使得在Java中操作Excel文件变得简单。通过循环读取数据和应用模板,我们可以快速生成大量定制化的Excel报告。在"poiDemo2"这个示例中,你可以找到具体实现这些步骤的代码,...

    java poi技巧总结

    Java POI 技巧总结 Java POI 是一个流行的库,允许开发者在Java应用程序中创建、修改和读取Microsoft Office格式的文件,如Excel(.xlsx 和 .xls)。本总结将详细探讨如何利用POI库进行Excel文件的操作,包括创建...

    poi 生成pdf等

    "poi 生成pdf等" 这个标题指的是使用Apache POI库来创建PDF和其他格式的文档。Apache POI是一个流行的开源Java API,主要用于读取和写入Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等...

    使用poi方式导出excel(分多个sheet导出)

    本教程将详细介绍如何利用Apache POI库来实现使用多个Sheet(工作簿)导出一个Excel文件的功能。 一、Apache POI简介 Apache POI 是一个开源项目,提供API来读取、写入和修改Microsoft Office文件格式,如Word(DOC...

    Java使用poi-tl生成word文档

    Java使用Apache POI-TL库生成Word文档是一个...总结起来,Apache POI-TL是Java开发中生成Word文档的强大工具,它结合了Apache POI的底层操作能力和基于模板的生成方式,使得开发者能方便快捷地创建专业级别的Word文档。

    apache poi export

    4. **poi使用总结.txt**:这是作者使用Apache POI的一些心得体会,可能包含了他们在实际开发中遇到的问题和解决方案。对于正在使用或计划使用POI的人来说,这是一种宝贵的经验分享。 5. **poi pom编写.txt**:在...

    poi-3.10.1上传组件jar包 po poi-ooxml poi-ooxml-schemas

    总结来说,Apache POI 3.10.1版本的上传组件为Java开发者提供了一套强大的工具,用于处理和操作Microsoft Office的文件格式,涵盖了Excel、Word和PowerPoint的多种功能,大大提升了开发效率并扩展了应用的可能性。

    poi-3.9、poi-ooxml-3.9、poi-ooxml-schemas-3.9

    总结来说,Apache POI 是Java开发中处理Excel文件的强大工具,它提供了全面的API来操作Excel的各种特性。结合 poi-3.9.jar、poi-ooxml-3.9.jar 和 poi-ooxml-schemas-3.9.jar 这三个库,开发者可以构建出功能丰富的...

    使用POI操作word

    总结,Apache POI是一个强大的工具,它允许开发者用Java编程语言无缝地操作Word和Excel文档。通过理解其API和类结构,可以实现复杂的文档处理需求,如自动化报告生成、数据导入导出等。在实际应用中,应根据需求选择...

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

    在本文中,我们将深入探讨如何使用Apache POI(POI-3.6.jar版本)来实现Excel的导入和导出功能。这是一项关键技能,尤其是在数据处理和报告生成的场景中。 **1. POI基础** Apache POI提供了HSSF和XSSF两个API,...

    使用poi从数据库导出excel表的示例

    总结起来,"使用poi从数据库导出excel表的示例"是一个结合了Struts1 MVC框架和Apache POI库的Java编程任务,它涉及数据库连接、SQL查询、Excel文件生成以及Web应用响应。这个过程不仅有助于数据的高效管理和分享,也...

    POI3.8架构总结.docx

    下面通过一个示例来展示如何使用 POI 创建 Excel 文档。 ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel....

    Java 使用poi导入excel 并使用xml做数据验证

    总结来说,这个项目展示了如何利用Java的Apache POI库读取Excel数据,结合XML解析进行数据验证,最后将验证通过的数据导入到数据库。这个过程涉及到文件I/O、XML处理、数据验证、数据库操作等多个核心Java技术,对于...

    利用java poi操作ppt

    总结,Java POI为开发者提供了一种方便的方式来自动化处理PowerPoint文件,无论是创建全新的演示文稿,还是编辑已有的PPT文件,都能灵活应对。通过阅读和实践提供的示例代码,你将能够更好地掌握这一技能。

    POI操作Excel常用方法总结

    这篇博客文章“POI操作Excel常用方法总结”可能详细介绍了如何利用Apache POI库在Java环境中读写Excel文件。以下是对该主题的一些关键知识点的详细说明: 1. **Apache POI介绍**: Apache POI是开源项目,提供了...

    poi的maven项目代码

    【描述】提到的"一个小的poi的maven项目,实现了直接读取对象到excel中",这意味着该项目展示了如何将Java对象的数据直接写入到Excel工作表中,这对于数据导出或者报告生成场景非常实用。这个过程通常包括以下几个...

Global site tag (gtag.js) - Google Analytics