java excel api實現輸出EXCEL文件下載

<%@ page extends="tradeex.ec4.jsp.BaseJSPPage" import="java.util.*,java.text.*,java.sql.*,java.net.*" import="oracle.jdbc.driver.*,jxl.*,tradeex.ec4.util.*" contentType="text/html;charset=UTF8"%>
<%
String sorefitem=request.getParameter("SOREFITEM");
sorefitem = "24326";
String sheetname = "productsitems";
String excelsql = "select oi.sorefitem,po.psuppliercompany suppliername,oi.pname productname,oi.ivendpartnumber productcode,oi.oqty quantity,oi.osellprice price,oi.pricecurrefitem currency,po.ponumber "
+" from ecorders.orderitems oi,ecorders.purchaseorders po "
+" where (oi.ostatus>3 or oi.ostatus=3 and oi.osubstatus=4) AND oi.sorefitem="+sorefitem
+" AND oi.sorefitem=po.sorefitem and oi.osellerid=po.psupplierid" ;
int col_num = 0;

java.sql.Statement stm = null;
java.sql.ResultSet rs = null;
java.sql.Connection conn = null;try...{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch (ClassNotFoundException e)
...{ System.out.println ("no exist driver");
System.exit(0);
}
try
...{

response.reset();
[color=red] response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition" ,"attachment;filename="+new String("導出採購商明細報表Excel.xls".getBytes(),"iso-8859-1"));[/color]
OutputStream os = response.getOutputStream();//將 WritableWorkbook 寫入到輸出流
jxl.write.WritableWorkbook wwb = jxl.Workbook.createWorkbook(os); //創建Excel工作表
jxl.write.WritableSheet ws = wwb.createSheet("sheet_1",0);
col_num = 7;
jxl.write.Label label_head;

label_head = new jxl.write.Label(0,0,"請購單號");
ws.addCell(label_head);
label_head = new jxl.write.Label(1,0,"供應商名");
ws.addCell(label_head);
label_head = new jxl.write.Label(2,0,"產品規格型號");
ws.addCell(label_head);
label_head = new jxl.write.Label(3,0,"產品編碼");
ws.addCell(label_head);
label_head = new jxl.write.Label(4,0,"數量");
ws.addCell(label_head);
label_head = new jxl.write.Label(5,0,"單價");
ws.addCell(label_head);
label_head = new jxl.write.Label(6,0,"定單號");
ws.addCell(label_head);//結果集中的數據添加到excel中

jxl.write.Number label_num;
jxl.write.Label label_str;
jxl.write.WritableCellFormat floatFormat;
int numrow = 1;
System.out.println(System.currentTimeMillis()+" welcome to hehe!!!!!!!!!!!");

conn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.180:1521:DB","system","manager");
stm = conn.createStatement();
rs = stm.executeQuery(excelsql);

while(rs.next())
...{
System.out.println(System.currentTimeMillis()+" welcome to while!!!!!!!!!");
label_num = new jxl.write.Number(0,numrow,rs.getInt("sorefitem"));
ws.addCell(label_num);
label_str = new jxl.write.Label(1,numrow,rs.getString("suppliername"));
ws.addCell(label_str);
label_str = new jxl.write.Label(2,numrow,rs.getString("productname"));
ws.addCell(label_str);
label_str = new jxl.write.Label(3,numrow,rs.getString("productcode"));
ws.addCell(label_str);
floatFormat = new jxl.write.WritableCellFormat (jxl.write.NumberFormats.FLOAT);
label_num = new jxl.write.Number(4,numrow,rs.getDouble("quantity"),floatFormat);
ws.addCell(label_num);
label_num = new jxl.write.Number(5,numrow,rs.getDouble("price"),floatFormat);
ws.addCell(label_num);
label_str = new jxl.write.Label(6,numrow,rs.getString("ponumber"));
ws.addCell(label_str);
numrow ++;
}
wwb.write();
wwb.close();
os.flush();
os.close();
}
catch(java.sql.SQLException sqle)...{
System.out.println("sql error");
}
catch(Exception e)...{
System.out.println("catch error ------");
e.printStackTrace();
}
finally...{
System.out.println(System.currentTimeMillis()+ "welcome to finally!!!!!!!");
if(stm != null)
try...{
stm.close();
}catch(Exception fe) ...{ }
if(conn != null)
try...{
conn.close();
}
catch(Exception fe2)...{ }
}
%>
[color=red]JXL包下載頁面:http://sourceforge.net/project/showfiles.php?group_id=79926[/color]

[color=red]如果要輸出文件到服務器保存:
jxl.write.WritableWorkbook wwb = jxl.Workbook.createWorkbook(new File("D:/JSPweb/112WebModule1/download_excel/"+excelfilename+"交接箱統計故障數.xls")); //創建Excel工作表[/color]
發佈了51 篇原創文章 · 獲贊 0 · 訪問量 2509
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章