在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(); }