步骤详解
1、在Tomcat安装目录下的webapps目录下新建POI目录,在该目录中建立WEB-INF、并在WEB-INF中建立lib目录。
2、从
http://jakarta.apache.org/poi/ 下载POI组件包,将其解压缩到硬盘,找到其中的poi-2.5.1-final-20040804.jar拷贝到应用程序的WEB-INF/lib目录下。
3、打开记事本软件,编写生成Excel文件的页面writeexcel.jsp,其代码如下:
<%@ page language="java" contentType ="text/html;charset=gb2312" %>
<%@ page import= "java.util.*,org.apache.poi.hssf.usermodel.HSSFWorkbook,org.apache.poi.hssf.usermodel.HSSFSheet,org.apache.poi.hssf.usermodel.HSSFRow,org.apache.poi.hssf.usermodel.HSSFCell,java.io.* " %>
<%
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet( " sheet1 " );
HSSFRow row = sheet.createRow(( short )0);
HSSFCell cell1 = row.createCell(( short )0);
HSSFCell cell2 = row.createCell(( short )1);
HSSFCell cell3 = row.createCell(( short )2);
cell1.setEncoding(( short )1);
cell1.setCellType( 1 );
cell2.setEncoding(( short )1);
cell2.setCellType( 1 );
cell3.setEncoding(( short )1);
cell3.setCellType( 1 );
cell1.setCellValue( " 测试 " );
cell2.setCellValue( " 测试2 " );
cell3.setCellValue( " 测试3 " );
for ( int i = 0 ; i < 4 ; i ++ ) {
row = sheet.createRow(( short ) i + 1 );
cell1 = row.createCell(( short ) 0 );
cell2 = row.createCell(( short ) 1 );
cell3 = row.createCell(( short ) 2 );
cell1.setEncoding(( short )1);
cell1.setCellType( 1 );
cell2.setEncoding(( short )1);
cell2.setCellType( 1 );
cell3.setEncoding(( short )1);
cell3.setCellType( 1 );
cell1.setCellValue( " ggg " );
cell2.setCellValue( " 00000 " );
cell3.setCellValue( " sun " );
}
String filename=application.getRealPath("/")+"test.xls";
FileOutputStream fo=new FileOutputStream(filename);
wb.write(fo);
out.println("excel 文件生成,存放在"+filename);
%>
4、按下键盘上的【Ctrl】/【S】键,保存该文件,保存在“webapps\POI”目录下。
5、双击桌面上的IE浏览器图标 ,然后在浏览器的地址栏中输入
http://127.0.0.1:8080/POI/writeexcel.jsp,按键盘上的“回车键
使用POI生成Excel文件
6、到该目录下打开生成的Excel文件
制作要点
在JSP页面中将数据转换成Excel格式是经常使用的一个功能。POI是Apache Jakarta组织的子项目,使用简单方便,功能强大,可以操作Excel、Word等文件。
POI组件包中提供了几个类来方便的操作Excel文档:
HSSFWorkbook类表示Excel文档中的Book;
HSSFSheet类表示Excel文档中的Sheet;
HSSFRow类表示Excel文档中的行;
HSSFCell类表示Excel文档中的单元格。
用POI生成一个新的Excel文件基本步骤如下:
1、创建新的Excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
2、创建工作表
HSSFSheet sheet = workbook.createSheet();
3、在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short)0);
4、在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
5、定义单元格类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
6、在单元格中输入一些内容
cell.setCellValue("增加值");
7、新建一输出文件流并把相应的Excel 工作簿存盘
FileOutputStream fOut = new FileOutputStream(outputFile);
workbook.write(fOut);
fOut.flush();
程序关键代码解释
生成Excel文件的页面writeexcel.jsp片断代码:
<%
//创建新的Excel工作簿
HSSFWorkbook wb = new HSSFWorkbook();
//创建名称为sheet1的工作表
HSSFSheet sheet = wb.createSheet( " sheet1 " );
//在索引0的位置创建行
HSSFRow row = sheet.createRow(( short )0);
//在索引0的位置创建单元格
HSSFCell cell1 = row.createCell(( short )0);
HSSFCell cell2 = row.createCell(( short )1);
HSSFCell cell3 = row.createCell(( short )2);
//设置每列的属性名
cell1.setEncoding(( short )1);
cell1.setCellType( 1 );
cell2.setEncoding(( short )1);
cell2.setCellType( 1 );
cell3.setEncoding(( short )1);
cell3.setCellType( 1 );
cell1.setCellValue( " 测试 " );
cell2.setCellValue( " 测试2 " );
cell3.setCellValue( " 测试3 " );
//循环生成每行中单元格中的值
for ( int i = 0 ; i < 4 ; i ++ ) {
row = sheet.createRow(( short ) i + 1 );
cell1 = row.createCell(( short ) 0 );
cell2 = row.createCell(( short ) 1 );
cell3 = row.createCell(( short ) 2 );
cell1.setEncoding(( short )1);
cell1.setCellType( 1 );
cell2.setEncoding(( short )1);
cell2.setCellType( 1 );
cell3.setEncoding(( short )1);
cell3.setCellType( 1 );
cell1.setCellValue( " ggg " );
cell2.setCellValue( " 00000 " );
cell3.setCellValue( " sun " );
}
//将生成的Excle表格保存
String filename=application.getRealPath("/")+"test.xls";
FileOutputStream fo=new FileOutputStream(filename);
wb.write(fo);
out.println("excel 文件生成,存放在"+filename);
%>