现在的位置: 首页 > 综合 > 正文

Java使用POI实现数据导出excel报表 Java使用POI实现数据导出excel报表

2013年08月06日 ⁄ 综合 ⁄ 共 2778字 ⁄ 字号 评论关闭

Java使用POI实现数据导出excel报表

在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式。不仅仅简单的读取office中的数据.尤其是在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出的格式一般是EXCEL或者PDF 。所以今天我们来简单看一下利用Apache  POI实现数据库中数据导出excel报表。在java中有很多实现数据导出excel报表的第三方jar包。但在比较了一下感觉还是POI相对来说比较好用。如果大家想学习其他的导出方式可以自行研究一下。

 

首先来了解一下 Apache POI

 

     Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。
下面我们来看一下Apache POI 中提供的几大部分的作用:

 

 

HSSF - 提供读写Microsoft Excel XLS格式档案的功能。  

XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。  

HWPF - 提供读写Microsoft Word DOC格式档案的功能。  

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。  

HDGF - 提供读Microsoft Visio格式档案的功能。  

HPBF - 提供读Microsoft Publisher格式档案的功能。  

HSMF - 提供读Microsoft Outlook格式档案的功能。

 

       本节我们所要学习的是POI对excel的操作。所以我们只需用到HSSF 这部分内容就可以了。其他的请大家自行研究吧。哈哈。

 

 

下面我们就一步一步的来看一下如何创建一个excel报表:

 

1. 创建新的Excel工作薄

 

HSSFWorkbook workbook = new HSSFWorkbook();

在Excel工作簿中建一工作表,其名为缺省值。POI中还提供了其他的一些其他的workbook 构造方法。下面我们来看一下:

 

2.创建一个工作表

如要新建一名为"工资表"的工作表,其语句为:  

HSSFSheet sheet = workbook.createSheet("工资表");

 

3.创建行

 在索引0的位置创建行(最顶端的行)  

HSSFRow row = sheet.createRow(0);

 

4.创建单元格

在索引0的位置创建单元格(左上端)  

HSSFCell cell = row.createCell((short) 0);

定义单元格为字符串类型,这个字符串类型也可在创建单元格里面设置。

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

在单元格中输入一些内容  

cell.setCellValue("增加值");

 

5.新建一输出文件流,把相应的Excel工作簿 输出到本地

FileOutputStream fOut = new FileOutputStream(outputFile);

workbook.write(fOut);

fOut.flush();

操作结束,关闭文件  

fOut.close();

 

      OK,在给单元格设置下从数据库中读取的数据。这样我们就可以把数据库里面的内容导入到excel了。当然这里我们只是简单的介绍了一些POI的用法。并没有细讲,比如设置单元格里面数据的格式。单元格的一些属性设置。这些将会在我下面的例子中用到。也算是给大家一些示例吧。好了。最后看一个实例吧:

 

报表生成类:ComplexExportExcelClient.java 

[java] view
plain
copy

  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.   
  4. import org.apache.poi.hssf.usermodel.HSSFCell;  
  5. import org.apache.poi.hssf.usermodel.HSSFCellStyle;  
  6. import org.apache.poi.hssf.usermodel.HSSFFont;  
  7. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
  8. import org.apache.poi.hssf.usermodel.HSSFRow;  
  9. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  10. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  11. import org.apache.poi.hssf.util.Region;  
  12.   
  13. /** 
  14.  * 拒绝件报表生成类. 
  15.  *  
  16.  * @author caoyb 
  17.  * @version $Revision:$ 
  18.  */  
  19. public class ComplexExportExcelClient {  
  20.   
  21.     private static HSSFWorkbook wb = new HSSFWorkbook();  
  22.   
  23.     private static HSSFSheet sheet = wb.createSheet();  
  24.   
  25.     public static void main(String[] args) {  
  26.   
  27.         ExportExcel exportExcel = new ExportExcel(wb, sheet);  
  28.   
  29.         // 创建列标头LIST  
  30.         List fialList = new ArrayList();  
  31.   
  32.         fialList.add("申请人未提供任何联系方式");  
  33.         fialList.add("无工作单位信息且未提供收入来源信息");  
  34.         fialList.add("有工作单位但未提供单位地址或电话");  
  35.         fialList.add("家庭地址缺失");  
  36.         fialList.add(
【上篇】
【下篇】

抱歉!评论已关闭.