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

转载 2004年06月16日 15:21: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即可.

Apache POI:Java程序读写Microsoft Office格式文档——简单完整实例讲解

Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,官方名称为:Apache POI - the Java API for Microsoft Doc...
  • sinat_26342009
  • sinat_26342009
  • 2015年05月16日 17:21
  • 2023

WIN7中组件服务中的DCOM配置找不到Microsoft Excel应用程序的解决办法和

转自:http://blog.csdn.net/lploveme/article/details/8215265 在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,但是却发...
  • goodjie_12
  • goodjie_12
  • 2015年07月23日 14:03
  • 1986

找不到Microsoft Access Driver(*.mdb)ODBC驱动程序的安装例程。请重新安装驱动

将代码部署到测试机器上,因为使用了OLEDB操作Excel,程序出现如下错误: System.InvalidOperationException: The 'Microsoft.ACE....
  • wyzlwyzl
  • wyzlwyzl
  • 2015年04月24日 20:46
  • 12703

Access 和vc6.0 相连,在我indows64 位系统中,出现找不到Microsoft Access Driver(*.mdb) ODBC驱动程序的安装例程。请重新安装驱动

打开ODBC数据源管理器,在用户数据源中双击MS Access Database后,弹出对话框,显示如下:  (红×)找不到Microsoft Access Driver(*.mdb) ODBC...
  • u013583931
  • u013583931
  • 2014年10月21日 10:11
  • 4029

C#连接Excel和Access(包括2003和2007版)方法总结

一、说明:        C#采用OLEDBConnection连接Excel、Access。要连接的数据源版本不同,连接字符串也不同。 97-2003版本 EXCEL Provider=Mi...
  • lucky51222
  • lucky51222
  • 2016年06月08日 17:49
  • 1995

xcode工程文件格式(Xcode Project File Format)详解

The Xcode project file is an old-style plist (Next style) based on braces to delimit the hierarchy. ...
  • qq_30534535
  • qq_30534535
  • 2015年08月14日 12:03
  • 1300

Access和Excel数据库表32位64位程序通用访问方法

从前在写读excel文件的程序时,会采用这样的oledb数据连接字符串: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Ext...
  • hsg77
  • hsg77
  • 2014年06月26日 15:50
  • 4315

操作Excel工具类(基于Apache的POI类库)

需要的第三方JAR包: poi-3.8-20120326.jar poi-examples-3.8-20120326.jar poi-excelant-3.8-20120326.ja...
  • zheng963
  • zheng963
  • 2015年09月25日 21:03
  • 1247

用VBA把EXCEL表导入ACCESS数据库中

首先在指定的access数据库的建立一张表,表格的字段和需要导入EXCEL表的字段保持一致。   方法一:在eccel VBA编辑器编写代码,使用FOR循环导入: Sub 利用Excel的VBA将...
  • abdylong1011
  • abdylong1011
  • 2013年01月07日 23:29
  • 5390

EXCEL:读取ACCESS数据库中指定表数据到EXCEL

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We...
  • kqkszx
  • kqkszx
  • 2014年04月26日 12:08
  • 1375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache Project:POI-HSSF - Java API To Access Microsoft Excel Format Files(ZT)
举报原因:
原因补充:

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