??jsp頁面上的代碼如下:
?response.setContentType("application/vnd.ms-excel;charset=GBK");
???String filename = new String(("excel名稱.xls").getBytes(),
?????"ISO-8859-1");
???response.setHeader("Content-Disposition", "attachment;"
?????+ " filename=" + filename);
??? <%
??? JavaBean bean = new JavaBean();
???? bean .loadDataToExcel(response);
? %>
? JavaBean 頁面上的代碼如下:
???
??public boolean loadDataToExcel(HttpServletResponse response,
???List items) {
??? boolean flag = false;
??? try {
???WritableWorkbook wwb = Workbook.createWorkbook(response
?????.getOutputStream());
???WritableSheet asheet = wwb.createSheet("處理信息統計表", 52);
???// 定義一個新字體,參數說明:字體,大小,格式,是否斜體,顏色(默認黑色)
???WritableFont wfc = new WritableFont(WritableFont.ARIAL, 12,
?????WritableFont.BOLD, false);
???// 定義一個新字體,參數說明:字體,大小,格式,是否斜體,顏色(默認黑色)//不加粗
???WritableFont wf = new WritableFont(WritableFont.ARIAL, 12,
?????WritableFont.NO_BOLD, false);
???// 設置單元格格式
???WritableCellFormat wchB = new WritableCellFormat(wfc);
???// 使單元格居中
???wchB.setAlignment(Alignment.CENTRE);
???// 設置制表單位&制表日期格式
???WritableCellFormat date = new WritableCellFormat(wf);
???// 設置表頭格式
???WritableCellFormat tTitle = new WritableCellFormat(wf);
???tTitle.setAlignment(Alignment.CENTRE);
???tTitle.setVerticalAlignment(VerticalAlignment.CENTRE);
???tTitle.setWrap(true);
???tTitle.setBorder(Border.ALL, BorderLineStyle.THIN);
???// 設置數據顯示格式
???WritableCellFormat data = new WritableCellFormat(wf);
???data.setBorder(Border.ALL, BorderLineStyle.THIN);
???// data.setb
???// 分別設置單元格的高度&寬度
???asheet.setColumnView(0, 12);
???asheet.setColumnView(1, 12);
???asheet.setColumnView(2, 8);
???asheet.setColumnView(3, 8);
???asheet.setColumnView(4, 8);
???asheet.setColumnView(5, 8);
???asheet.setColumnView(6, 8);
???asheet.setColumnView(7, 7);
???asheet.setColumnView(8, 7);
???asheet.setColumnView(9, 7);
???asheet.setColumnView(10, 7);
???asheet.setColumnView(11, 7);
???asheet.setColumnView(12, 7);
???asheet.setColumnView(13, 7);
???asheet.setColumnView(14, 7);
???/* 開始寫入xls文件 */
???// 導出excel文件標題
???Label labelC = new Label(0, 0, "處理信息統計表", wchB);
???asheet.addCell(labelC);
???// 合并第一行16個單元格為1個作為標題欄
???asheet.mergeCells(0, 0, 15, 0);
???// 設置表頭
???labelC = new Label(0, 1, "預報信息", tTitle);
???asheet.addCell(labelC);
???asheet.mergeCells(0, 1, 3, 1);
???labelC = new Label(0, 2, "檢查場", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(1, 2, "車型", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(2, 2, "車號", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(3, 2, "軸位及左右", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(4, 1, "作業場處理信息", tTitle);
???asheet.addCell(labelC);
???asheet.mergeCells(4, 1, 15, 1);
???labelC = new Label(4, 2, "預警級別", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(5, 2, "檢查時間", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(6, 2, "車次", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(7, 2, "編組", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(8, 2, "順位", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(9, 2, "輪位", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(10, 2, "軸號", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(11, 2, "故障原因", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(12, 2, "實際測量數據", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(13, 2, "測量人", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(14, 2, "復測人", tTitle);
???asheet.addCell(labelC);
???labelC = new Label(15, 2, "處理方式", tTitle);
???asheet.addCell(labelC);
???wwb.write();
???wwb.close();
???flag = true;
??} catch (Exception e) {
???flag = false;
???e.printStackTrace();
??}
??return flag;
?}
注:1.???說明asheet.mergeCells(列1, 行1, 列2, 行2)合并單元格,起始都是0
???? 2 .? 在Bean中需要導入兩個jar包servlet.jar和jxl.jar
posted on 2007-03-30 15:15
JJCEA 閱讀(1366)
評論(0) 編輯 收藏 所屬分類:
java日記