導讀:
jsp匯出excel檔案,使用POI和jxl
使用POI
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition",
"attachment; filename=/"test.xls"+
"/"");
HSSFWorkbook wb =
newHSSFWorkbook();
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(inti =
0i 4i++)
{
//定義資料從第二行開始
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("adfasdf");
}
wb.write(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
%>
POI包:http://www.apache.org/dyn/closer.cgi/jakarta/poi/
利用JExcelApi來動態產生excel文檔
首先,請到http://www.andykhan.com/jexcelapi/index.html下載java excel api,首頁上同時有比較詳細的介紹。
最新版本為2.4.3,
同時也可以到:http://www.andykhan.com/jexcelapi/jexcelapi_2_4_3.tar.gz下載到該最新版的API,由於該項目是開源的,所以下載的檔案中已經包含了原始碼,同樣的,檔案中也有javadoc,大家在開發中可以參考javadoc。
下載完畢後,我們需要把檔案中的jxl.jar加入到你的開發classpath中。
是現在要生產的excel:
代碼如下:
File excel = new File("d:/aming.xls");
if(!excel.exists()){
excel.createNewFile();
}
WritableWorkbook wwb = Workbook.createWorkbook(excel);
WritableSheet ws = wwb.createSheet("testexcel",0);
Label lable = null;
//對中文的支援非常好
lable = new Label(0,0,"我的中國心");
ws.addCell(lable);
//可以定義模板格式化你的cell
WritableFont wf = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setBackground(Colour.WHITE);
lable = new Label(0,1,"fdsl",wcf);
ws.addCell(lable);
wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
wcf = new WritableCellFormat(wf);
lable = new Label(0,2,"aming",wcf);
ws.addCell(lable);
//cell的類型同樣可以定義為數字類型
Number nb = new Number(0,3,21.4321321);
ws.addCell(nb);
//支援格式化你的數字串
NumberFormat nf = new NumberFormat("#.###");
wcf = new WritableCellFormat(nf);
nb = new Number(0,4,21.43254354354354,wcf);
ws.addCell(nb);
//cell的類型可以為boolean類型
Boolean bl = new Boolean(0,5,true);
ws.addCell(bl);
//cell的類型同樣可以為日期,時間
DateTime dt = new DateTime(0,6,new Date());
ws.addCell(dt);
//並且可以很好格式化你的日期格式
DateFormat df = new DateFormat("MM dd yyyy hh:mm:ss");
wcf = new WritableCellFormat(df);
dt = new DateTime(0,7,new Date(),wcf);
ws.addCell(dt);
//開始寫檔案了
wwb.write();
wwb.close();
上面的無法開啟.
下載請到:http://prdownloads.sourceforge.net/jexcelapi
本文轉自
http://www.loohost.com/thread-1311-1-1.html