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工作薄的例子:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*,org.apache.poi.hssf.usermodel.*"%>
<%
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檔案已經產生,存放在<BR>" + filename);
%>