Excel是办公常用软件之一。在一个Java应用中,将一部分数据生成Excel格式,是与其他系统无缝连结的重要手段。POI是Apache Jakarta的子项目,使用简单方便,对中文支持非常好,功能也比较强大。下在地址为:http://jakarta.apache.org/poi。这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。目前从网上下载最新的安装包的名字是poi-bin-2.5.1-final-20040804.zip,将该文件解压缩之后,在生成的文件夹中,找到poi-2.5.1-final-20040804.jar包。然后,将该包放置到应用程序的WEB-INF的lib下,重启Tomcat即可。
以下是用POI创建Excel工作薄的例子:
<%
HSSFWorkbook workbook = new HSSFWorkbook(); //创建新的Excel工作薄
HSSFSheet sheet = workbook.createSheet("JSP"); //在Excel工作薄中建工作表,名为缺省
HSSFRow row = sheet.createRow((short)0); //在索引0的位置建行(最顶端的行)
HSSFCell cell = row.createCell((short)0); //在索引0的位置建单元格
cell.setEncoding(HSSFCell.ENCODING_UTF_16); //定义单元格为字符串类型
cell.setCellValue("作者"); //在单元格输入一些内容
cell = row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); //定义单元格为字符串类型
cell.setCellValue("编辑"); //在单元格输入一些内容
row = sheet.createRow((short)1); //在索引1的位置创建行(最顶端的行)
cell = row.createCell((short)0); //在索引0的位置创建单元格(左上端)
cell.setEncoding(HSSFCell.ENCODING_UTF_16); //定义单元格为字符串类型
cell.setCellValue("张三"); //在单元格输入一些内容
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); //定义单元格为字符串类型
cell.setCellValue("李四");
String filename = application.getRealPath("/") + "text.xls"; //filename是工作薄的存放位置,存放在当前应用程序的根目录下
FileOutputStream fOut = new FileOutputStream(filename); //新建输出文件流
workbook.write(fOut); //把相应的Excel工作薄存盘
fOut.flush();
fOut.close(); //操作结束,关闭文件
out.println("excel文件已经生成,存放在" + filename);
%>