首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

Java软件工程师从笨鸟到初学者之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表

2012-11-22 
Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表在上一篇博

Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用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 构造方法。下面我们来看一下:

Java软件工程师从笨鸟到初学者之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表

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的用法。并没有细讲,比如设置单元格里面数据的格式。单元格的一些属性设置。这些将会在我下面的例子中用到。也算是给大家一些示例吧。好了。最后看一个实例吧:

EXCEL报表工具类:ExportExcel.java


http://blog.51cto.com/contest2012/3545281

------------------------------------------------------------------------

《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载


http://blog.csdn.net/csh624366188/article/details/7999247



8楼jAmEs_昨天 17:48
为什么那么多人踩呢
7楼dmcyxsdn5天前 23:44
java.io.FileNotFoundException: c:\拒绝件统计.xls (拒绝访问。)ntat java.io.FileOutputStream.open(Native Method)ntat java.io.FileOutputStream.<init>(FileOutputStream.java:179)ntat java.io.FileOutputStream.<init>(FileOutputStream.java:131)ntat com.bzu.search.action.ExportExcel.outputExcel(ExportExcel.java:269)ntat com.bzu.search.action.ComplexExportExcelClient.main(ComplexExportExcelClient.java:211)
6楼caodegao5天前 10:29
不错很有用,我就一直在用poi来做.基本的方法都是这样
5楼zz3532074076天前 19:10
你好! 你对WORD报表有没有研究呢?对于WORD报表格式的控制。我是3群西安—PDM—彼岸
4楼ruiyantest2012-11-13 08:56
感谢分享
3楼csh6243661882012-11-12 17:54
欢迎提供建议
2楼lfsf8022012-11-12 11:20
有时间研究一下jxl和poi的区别吧 还有印象中apache大家族里面有个叫tika的,这个和文档操作有点关系。
1楼kkkmoving2012-11-12 08:24
只是简单的使用过jxl

热点排行