Apache :POI-HSSF

原创 2005年05月20日 14:42:00
Jakarta_POI 使用Java读写Excel(97-2002)文件,可以满足大部分的需要。
因为刚好有一个项目使用到了这个工具,花了点时间顺便翻译了一下POI本身
带的一个Guide.有一些节减和修改,希望给使用这个项目的人一些入门帮助。
POI 下面有几个自项目:HSSF用来实现Excel 的读写.以下是HSSF的主页
http://jakarta.apache.org/poi/hssf/index.html

下面的介绍是基于以下地址的翻译:
http://jakarta.apache.org/poi/hssf/quick-guide.html

目前的版本为1.51应该是很长时间之内的一个稳定版,但HSSF提供的Sample不是基于
1.51所写,所以使用的时候需要适当的注意.
其实POI下面的几个子项目侧重不同读写 Word 的HDF正在开发当中.
XML下的FOP(http://xml.apache.org/fop/index.html)
可以输出pdf文件,也是比较好的一个工具

目录:
创建一个workbook
创建一个sheet
创建cells
创建日期cells
设定单元格格式

说明:
以下可能需要使用到如下的类
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;

创建workbook

HSSFWorkbook wb = new HSSFWorkbook();
//使用默认的构造方法创建workbook
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
//指定文件名
wb.write(fileOut);
//输出到文件
fileOut.close();

创建一个sheet

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");
//workbook创建sheet
HSSFSheet sheet2 = wb.createSheet("second sheet");
//workbook创建另外的sheet
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

创建cells
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
//注意以下的代码很多方法的参数是short 而不是int 所以需要做一次类型转换
HSSFRow row = sheet.createRow((short)0);
//sheet 创建一行
HSSFCell cell = row.createCell((short)0);
//行创建一个单元格
cell.setCellValue(1);
//设定单元格的值
//值的类型参数有多中double ,String ,boolean,
row.createCell((short)1).setCellValue(1.2);
row.createCell((short)2).setCellValue("This is a string");
row.createCell((short)3).setCellValue(true);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

创建日期cells
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");

HSSFRow row = sheet.createRow((short)0);

HSSFCell cell = row.createCell((short)0);
//设定值为日期
cell.setCellValue(new Date());

HSSFCellStyle cellStyle = wb.createCellStyle();
//指定日期显示格式
cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));
cell = row.createCell((short)1);
cell.setCellValue(new Date());
//设定单元格日期显示格式
cell.setCellStyle(cellStyle);

FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

设定单元格格式
单元格格式的设定有很多形式包括单元格的对齐方式,内容的字体设置,
单元格的背景色等,因为形式比较多,只举一些例子.以下的例子在
POI1.5中可能会有所改变具体查看API.
..........
// Aqua background
HSSFCellStyle style = wb.createCellStyle();
//创建一个样式
style.setFillBackgroundColor(HSSFCellStyle.AQUA);
//设定此样式的的背景颜色填充
style.setFillPattern(HSSFCellStyle.BIG_SPOTS);

//样式的填充类型。
//有多种式样如:
//HSSFCellStyle.BIG_SPOTS
//HSSFCellStyle.FINE_DOTS
//HSSFCellStyle.SPARSE_DOTS等
style.setAlignment(HSSFCellStyle.ALIGN_CENTER );
//居中对齐
style.setFillBackgroundColor(HSSFColor.GREEN.index);
//设定单元个背景颜色
style.setFillForegroundColor(HSSFColor.RED.index);
//设置单元格显示颜色
HSSFCell cell = row.createCell((short) 1);
cell.setCellValue("X");
cell.setCellStyle(style);

 

 

使用poi的hssf生成一个excel文件以后
有一个主类Workbook(相当于一个excel文件)的方法
Workbook.write(OutputStream)可以写到response.getOutputStream()里面
如果事先设置response的contentType为excel和下载的附件名称就可下载excel


    HSSFWorkbook book = _proxy.expertExcel(_formBean,_login);

    if(book!=null)
    {
        response.setContentType ( "application/ms-excel" ) ;
        response.setHeader ( "Content-Disposition" ,
                             "attachment;filename="+new String("导出Excel.xls".getBytes(),"iso-8859-1")) ;
        book.write(response.getOutputStream());
    }


其中expertExcel无非是从数据库或者其他地方获取数据创建excel即可.

POI-HSSF小结

一、概述     1. Apache POI是Apache软件基金会的开放源码函式库,POI提供API给java程式对Microsoft Office格式档案读和写的功能.     2. 结构 ...
  • wyply115
  • wyply115
  • 2012年12月29日 21:54
  • 1603

Apache Project:POI-HSSF - Java API To Access Microsoft Excel Format Files(ZT)

介绍:Jakarta_POI 使用Java读写Excel(97-2002)文件,可以满足大部分的需要。因为刚好有一个项目使用到了这个工具,花了点时间顺便翻译了一下POI本身带的一个Guide.有一些节...
  • scud
  • scud
  • 2004年06月16日 15:21
  • 3539

HTTP/Apache 错误代码汇总

http 状态码基本上可以分为 5 类: 1xx 为消息类,该类状态代码用于表示服务器临时回应。 100 Continue 表示初始的请求已经被服务器接受,浏览器应当继续发送请求的...
  • php_younger
  • php_younger
  • 2016年10月11日 15:47
  • 835

Apache的在线升级

升级Apache到最新版本,本来并不复杂,但是因为涉及到不能停止现有的Apache实例的运行,因此要小心翼翼的做。 大致分成三步: 编译新的Apache, 配置新的Apache, ...
  • qq_36345367
  • qq_36345367
  • 2017年05月27日 17:11
  • 439

Linux下启动和停止apache服务

文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 本文使用的Linux系统为CentOS 7,下面将介绍apache服务的启动、关闭与设置。apache在Cen...
  • Quincuntial
  • Quincuntial
  • 2017年05月27日 18:28
  • 3654

服务器架设笔记——Apache模块开发基础知识

本文简略介绍了Apache插件所涉及的基础知识。
  • breaksoftware
  • breaksoftware
  • 2015年02月18日 19:33
  • 3825

修改apache默认字符编码--在页面中显示乱码

apache打开网页乱码,修改apache默认字符集的方法如下: 打开apache配置文件httpd.conf,Windows下的apache配置文件路径一般为D:\Program Files\Ap...
  • tanzugan
  • tanzugan
  • 2012年01月04日 11:15
  • 13216

apache参数详解

apache参数详解 Linux Apache Web 服务器终极教程作者:佚名 文章来源:internet                           Apache的主要特征是:  .  可...
  • lxholding
  • lxholding
  • 2007年09月26日 13:08
  • 1477

Apache组织一级开源项目清单

1.      HTTP Server: HTTP Server是目前最流行的HTTP服务器软件之一。其优势主要在于快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中...
  • lky5387
  • lky5387
  • 2014年06月26日 13:10
  • 4817

Apache中的配置指令概述

 //本文是《Apache源代码全景分析》第二卷《体系结构和核心模块》中的第八章《配置文件管理》的草稿部分中,主要描述Apache中的指令概念,在后续的章节中我们将继续深入Apache中的配置文件的处...
  • tingya
  • tingya
  • 2006年09月25日 23:03
  • 13893
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache :POI-HSSF
举报原因:
原因补充:

(最多只允许输入30个字)