java生成xls下載檔案
阿新 • • 發佈:2018-11-08
介於匯入資料操作,有時不需要做事務回滾,但是又需要記錄錯誤的資料和err時,可以用xls返回,且可以直接通過outputStream來完成而不需要模板檔案
載入 jxl.jar 包
Workbook book = Workbook.getWorkbook(is); 這個用來讀檔案
WritableWorkbook result = Workbook.createWorkbook(os); 這個用於寫檔案
response.setHeader("Content-disposition", "attachment;filename= result.xls"); //客戶端得到的檔名 response.setContentType("application/x-download");//設定為下載application/x-download response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); response.setHeader("Cache-Control","no-store"); response.setDateHeader("Expires", 0); response.setHeader("Pragma","no-cache"); WritableWorkbook result = Workbook.createWorkbook(response.getOutputStream()); WritableSheet wsheet = result.createSheet("錯誤報告", 0); WritableFont font = new WritableFont(WritableFont.TAHOMA, 11, WritableFont.NO_BOLD);// 定義字型 font.setColour(Colour.BLACK);// 字型顏色 WritableCellFormat wc = new WritableCellFormat(font); wc.setAlignment(Alignment.LEFT); // 設定左對齊 wc.setBorder(Border.ALL, BorderLineStyle.THIN); // 設定邊框線 wc.setBackground(jxl.format.Colour.BLUE_GREY); // 設定單元格的背景顏色 for(int r=0;r<rows;r++){ wsheet.setRowView(r, 250); // 設定行高 for(int c=0;c<cells;c++){ wsheet.setColumnView(c, 30);// 設定列寬 wsheet.addCell(new Label(c,r,message, wc)); } } //最後寫入 result.write(); result.close();