快速业务通道

浅谈Excel报表在Java程序中的应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

浅谈Excel报表在Java程序中的应用

时间:2010-12-30 计算机与信息技术 周洪斌

引言

报表输出是开发数据库应用程序经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑。Excel是Windos平台上优秀的电子表格软件,如果把报表输出成Excel格式,用户就可以利用Excel的强大功能对报表进行再编辑,以满足自己的特殊需要。但是,长期以来,Java程序由于其跨平台特性,不能直接操纵Excel。为了实现纯Java的Excel解决方案,Apache Jakara推出了一个免费的开源项目POI。POI目前已比较成熟,可以处理MS Excel(97 - 2002)对象。国内已经有部分公司在他们的办公自动化等Web项目中使用POI了。

POI的下载与安装

请到网站http://jakarta.apache.org/site/downloads/downloads_poi.cgi右击超链接2.5.1.zip下载压缩包poi-bin-2.5.1-final-20040804.zip,解压缩后得到如图2.1所示的目录结构。我们主要用到poi-2.5.1-final-20040804.jar这个库文件。请把poi-2.5.1-final-20040804.jar这个文件的路径添加到系统环境变量classpath中,否则无法编译下面的示例程序。

浅谈Excel报表在Java程序中的应用 - 编程入门网

图2.1 POI的目录结构

POI使用初步

POI提供给用户使用的对象在org.apache.poi.hssf.usermodel包中,主要部分包括Excel对象、样式和格式,还有辅助操作等。

最主要的几个对象如表3.1所示:

表3.1 POI主要对象

POI对象名称 所对应的Excel对象
HSSFWorkbook 工作簿
HSSFSheet 工作表
HSSFRow
HSSFCell 单元格

下面我们来看如下的例子,使用表3.1中的对象在程序的当前目录下创建一个Excel文件test.xls,在第一个单元格中写入内容,然后读出第一个单元格的内容。

浅谈Excel报表在Java程序中的应用(2)

时间:2010-12-30 计算机与信息技术 周洪斌

完整的程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; import java.io.FileOutputStream; import java.io.FileInputStream; public class CreateXL {  public static String xlsFile="test.xls"; //产生的Excel文件的名称  public static void main(String args[])  {   try   {    HSSFWorkbook workbook = new HSSFWorkbook(); //产生工作簿对象    HSSFSheet sheet = workbook.createSheet(); //产生工作表对象    //设置第一个工作表的名称为firstSheet    //为了工作表能支持中文,设置字符编码为UTF_16    workbook.setSheetName(0,"firstSheet",HSSFWorkbook.ENCODING_UTF_16);    //产生一行    HSSFRow row = sheet.createRow((short)0);    //产生第一个单元格    HSSFCell cell = row.createCell((short) 0);    //设置单元格内容为字符串型    cell.setCellType(HSSFCell.CELL_TYPE_STRING);    //为了能在单元格中写入中文,设置字符编码为UTF_16。    cell.setEncoding(HSSFCell.ENCODING_UTF_16);    //往第一个单元格中写入信息    cell.setCellValue("测试成功");    FileOutputStream fOut = new FileOutputStream(xlsFile);    workbook.write(fOut);    fOut.flush();    fOut.close();    System.out.println("文件生成...");    //以下语句读取生

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号