技术开发 频道

使用POI将Mysql或Oracle中的数据导入到Excel中去


IT168技术文档】 
    下载以后解压,解压目录为


    在Eclipse中设置对poi-bin-2.5.1-final-20040804.jar的库引用. 
    在Eclipse中新建一个名字叫POIExcel的Java工程,右键POIExcel项目的项目名,选择Build Path,再选择Add External Archives,然后找到poi-bin-2.5.1-final-20040804.jar这个包将其引进到工程中来. 

    Excel 结构 
    HSSFWorkbook excell 文档对象介绍 
    HSSFSheet excell的表单 
    HSSFRow excell的行 
    HSSFCell excell的格子单元 
    HSSFFont excell字体 
    HSSFName 名称 
    HSSFDataFormat 日期格式 
    辅助操作包括 
    HSSFDateUtil 日期 
    HSSFPrintSetup 打印 
    HSSFErrorConstants 错误信息表 

    将数据导出到Excel中的实例 

    1. 创建一个空白的Excel文件 
    我们创建一个最普通的Java应用程序即可,程序代码如下:
HSSFWorkbook wb=new HSSFWorkbook(); FileOutputStream fileout = new FileOutputStream("C:\\test.xls"); wb.write(fileout); fileout.close();
    FileOutputStream属于JDK的数据流对象,通过它来将一个名为test.xls文件创建在C盘根目录下,运行该程序后可以看到在C盘上的根目录上多了一个Excel文件. 
    如果将程序中的FileOutputStream("C:\\test.xls")的参数改为"test.xls",则文件就会创建在该项目的根目录下. 

    2. 往Excel的单元格中写入信息 
    POI把Excel分解成几个对象,自顶向下的关系是:工作薄(HSSFWorkbook)->表格(HSSFSheet)->表格行(HSSFRow)->单元格(HSSFCell).将数据库中表的数据导入到Excel中,首先我们要将数据库中的表的数据查询出来,这里我们通过Hibernate来将数据库中addressbook_table表的数据查询出来.然后通过循环将表中的数据导入到Excel中去.
HSSFWorkbook wb=new HSSFWorkbook(); HSSFSheet sheet=wb.createSheet("new sheet"); try { //通过Hibernate来查询addressbook_table表中的数据,将其存储在List中 Transaction tx = session.beginTransaction(); org.hibernate.Query query= session.createQuery("from AddressbookTable"); List list = query.list(); tx.commit(); int k =0; //创建表格,创建表格行和单元格,将数据库中表的字段存储在单元格中. for(Iterator it=list.iterator();it.hasNext();){ AddressbookTable user =(AddressbookTable)it.next(); HSSFRow row=sheet.createRow((short)k); row.createCell((short)0).setCellValue(user.getId()); row.createCell((short)1).setCellValue(user.getName()); row.createCell((short)2).setCellValue(user.getAddress()); row.createCell((short)3).setCellValue(user.getPhone()); k++; } FileOutputStream fileout = new FileOutputStream("C:\\test.xls"); wb.write(fileout); fileout.close(); log.error("Successful!!"); } catch (HibernateException e) { log.error("Insert Exception!"); e.printStackTrace(); }
0
相关文章