jsp输出excel文件【转载】

2009年12月27日10:53:02实用信息评论507

介绍:文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

Jakarta_POI 使用Java读写Excel(97-2002)文件,可以满足大部分的需要。文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

因为刚好有一个项目使用到了这个工具,花了点时间顺便翻译了一下POI本身文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

带的一个Guide.有一些节减和修改,希望给使用这个项目的人一些入门帮助。文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

POI 下面有几个自项目:HSSF用来实现Excel 的读写.以下是HSSF的主页文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

http://jakarta.apache.org/poi/hssf/index.html文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

下面的介绍是基于以下地址的翻译:文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

http://jakarta.apache.org/poi/hssf/quick-guide.html文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

目前的版本为1.51应该是很长时间之内的一个稳定版,但HSSF提供的Sample不是基于文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

1.51所写,所以使用的时候需要适当的注意.文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

其实POI下面的几个子项目侧重不同读写 Word 的HDF正在开发当中.文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

XML下的FOP(http://xml.apache.org/fop/index.html)文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

可以输出pdf文件,也是比较好的一个工具文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

目录:文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建一个workbook文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建一个sheet文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建cells文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建日期cells文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

设定单元格格式文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

说明:文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

以下可能需要使用到如下的类文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFCell;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFCellStyle;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFDataFormat;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFFont;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFRow;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFSheet;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.usermodel.HSSFWorkbook;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

import org.apache.poi.hssf.util.HSSFColor;文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建workbook文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFWorkbook wb = new HSSFWorkbook();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//使用默认的构造方法创建workbook文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

FileOutputStream fileOut = new FileOutputStream("workbook.xls");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//指定文件名文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

wb.write(fileOut);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//输出到文件文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

fileOut.close();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建一个sheet文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFWorkbook wb = new HSSFWorkbook();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFSheet sheet1 = wb.createSheet("new sheet");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//workbook创建sheet文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFSheet sheet2 = wb.createSheet("second sheet");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//workbook创建另外的sheet文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

FileOutputStream fileOut = new FileOutputStream("workbook.xls");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

wb.write(fileOut);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

fileOut.close();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建cells文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFWorkbook wb = new HSSFWorkbook();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFSheet sheet = wb.createSheet("new sheet");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//注意以下的代码很多方法的参数是short 而不是int 所以需要做一次类型转换文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFRow row = sheet.createRow((short)0);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//sheet 创建一行文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFCell cell = row.createCell((short)0);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//行创建一个单元格文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell.setCellValue(1);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//设定单元格的值文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//值的类型参数有多中double ,String ,boolean,文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

row.createCell((short)1).setCellValue(1.2);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

row.createCell((short)2).setCellValue("This is a string");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

row.createCell((short)3).setCellValue(true);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

// Write the output to a file文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

FileOutputStream fileOut = new FileOutputStream("workbook.xls");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

wb.write(fileOut);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

fileOut.close();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

创建日期cells文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFWorkbook wb = new HSSFWorkbook();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFSheet sheet = wb.createSheet("new sheet");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFRow row = sheet.createRow((short)0);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFCell cell = row.createCell((short)0);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//设定值为日期文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell.setCellValue(new Date());文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFCellStyle cellStyle = wb.createCellStyle();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//指定日期显示格式文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell = row.createCell((short)1);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell.setCellValue(new Date());文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//设定单元格日期显示格式文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell.setCellStyle(cellStyle);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

FileOutputStream fileOut = new FileOutputStream("workbook.xls");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

wb.write(fileOut);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

fileOut.close();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

设定单元格格式文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

单元格格式的设定有很多形式包括单元格的对齐方式,内容的字体设置,文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

单元格的背景色等,因为形式比较多,只举一些例子.以下的例子在文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

POI1.5中可能会有所改变具体查看API.文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

..........文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

// Aqua background文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFCellStyle style = wb.createCellStyle();文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//创建一个样式文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

style.setFillBackgroundColor(HSSFCellStyle.AQUA);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//设定此样式的的背景颜色填充文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

style.setFillPattern(HSSFCellStyle.BIG_SPOTS);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//样式的填充类型。文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//有多种式样如:文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//HSSFCellStyle.BIG_SPOTS文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//HSSFCellStyle.FINE_DOTS文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//HSSFCellStyle.SPARSE_DOTS等文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

style.setAlignment(HSSFCellStyle.ALIGN_CENTER );文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//居中对齐文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

style.setFillBackgroundColor(HSSFColor.GREEN.index);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//设定单元个背景颜色文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

style.setFillForegroundColor(HSSFColor.RED.index);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

//设置单元格显示颜色文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

HSSFCell cell = row.createCell((short) 1);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell.setCellValue("X");文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

cell.setCellStyle(style);文章源自堕落的鱼-https://www.duoluodeyu.com/49.html

怎样注册滴滴出行账号 实用信息

怎样注册滴滴出行账号

2021年7月2日消息,为防范国家数据安全风险,维护国家安全,保障公共利益,依据《中华人民共和国国家安全法》《中华人民共和国网络安全法》,网络安全审查办公室按照《网络安全审查办法》,对“滴滴出行”实施...
S.M.A.R.T. 属性参数详解 实用信息

S.M.A.R.T. 属性参数详解

一、SMART概述 硬盘的故障一般分为两种:可预测的(predictable)和不可预测的(unpredictable)。后者偶而会发生,也没有办法去预防它,例如芯片突然失效,机械撞击等。但像电机轴承...
河南接种新冠疫苗批次号查询 实用信息

河南接种新冠疫苗批次号查询

目前各省新冠疫苗接种系统并未互联互通,所以每个省给出来的接种记录查询只能查询您在本省的接种记录。如跨地区接种新冠新苗,新的接种地无法查询到你之前的接种记录,可能会要求你提供原接种疫苗的批次号。例如前两...
进京高速公路服务区核酸检测点名单 实用信息

进京高速公路服务区核酸检测点名单

鉴于目前疫情形势,北京市要求进京人员需持有48小时内的核酸检测报告,为便于驾车进京人员进行核酸检测,近日北京警方主动联系天津、河北公安机关,协调卫生防疫、高速管理等部门,在13条进京高速临近北京的服务...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定