//背景方法
public ActionForward exportOrder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setCharacterEncoding("UTF-8");
OutputStream os = response.getOutputStream();// 取得輸出流
String fileName = "工單資訊.xls";
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=\"" + new String(fileName.getBytes("GBK"),"ISO-8859-1")+ "\";");
WritableWorkbook wwb = Workbook.createWorkbook(os); // 建立excel檔案
Map<String,String> map = toMap(request); //獲得前台傳遞的參數轉化成map。也可以用request.getParameter("")
List<Map<String, String>> list = workOrderService.getOrderValueByKey(map); //獲得excel的資料
try{
WritableSheet ws = wwb.createSheet("工單資訊",0); //建立第一個sheet名稱
WritableFont wf_table = new WritableFont(WritableFont.ARIAL, 11,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK); // 定義格式 字型 下劃線 斜體 粗體 顔色
WritableCellFormat wcf_table1 = new WritableCellFormat(wf_table);
wcf_table1.setAlignment(jxl.format.Alignment.CENTRE);
wcf_table1.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN,jxl.format.Colour.BLACK);
//這裡面要導出的表格一共三列,下标從0開始
ws.setColumnView(0, 25); // 設定第一列的寬度
ws.setColumnView(1, 25); // 設定第二列的寬度
ws.setColumnView(2, 100); // 設定第三列的寬度
Label title=new Label(0,0,"廣西聯通集團客戶業務訂單",wcf_table1); //設定第一列第一行的資料為“廣西聯通***訂單”
//将定義好的單元格添加到工作表中
ws.addCell(title);
//開始合并單元格。第一第三個參數表示列,第二第四個參數表示行
ws.mergeCells(0, 0, 2, 0); //合并第一列的第一行到第三列的第一行
ws.mergeCells(0, 1, 0, 8); //合并第一列的第二行到第一列的第九行
ws.mergeCells(0, 9, 0, 12);
ws.mergeCells(0, 13, 1, 13);
ws.mergeCells(0, 14, 0, 22);
ws.mergeCells(0, 23, 0, 29);
//設定每一列的内容
ws.addCell(new Label(0,1,"工單資訊",wcf_table1));
ws.addCell(new Label(0,2,"工單資訊",wcf_table1));
ws.addCell(new Label(0,3,"工單資訊",wcf_table1));
ws.addCell(new Label(0,4,"工單資訊",wcf_table1));
ws.addCell(new Label(0,5,"工單資訊",wcf_table1));
ws.addCell(new Label(0,6,"工單資訊",wcf_table1));
ws.addCell(new Label(0,7,"工單資訊",wcf_table1));
ws.addCell(new Label(0,8,"工單資訊",wcf_table1));
ws.addCell(new Label(0,9,"合同資訊",wcf_table1));
ws.addCell(new Label(0,10,"合同資訊",wcf_table1));
ws.addCell(new Label(0,11,"合同資訊",wcf_table1));
ws.addCell(new Label(0,12,"合同資訊",wcf_table1));
ws.addCell(new Label(0,13,"客戶提出的特殊要求",wcf_table1));
ws.addCell(new Label(0,14,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,15,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,16,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,17,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,18,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,19,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,20,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,21,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,22,"全程電路資訊",wcf_table1));
ws.addCell(new Label(0,23,"電路資訊",wcf_table1));
ws.addCell(new Label(0,24,"電路資訊",wcf_table1));
ws.addCell(new Label(0,25,"電路資訊",wcf_table1));
ws.addCell(new Label(0,26,"電路資訊",wcf_table1));
ws.addCell(new Label(0,27,"電路資訊",wcf_table1));
ws.addCell(new Label(0,28,"電路資訊",wcf_table1));
ws.addCell(new Label(0,29,"電路資訊",wcf_table1));
ws.addCell(new Label(1,1,"服務訂單号",wcf_table1));
ws.addCell(new Label(1,2,"工單類型",wcf_table1));
ws.addCell(new Label(1,3,"工單生成日期",wcf_table1));
ws.addCell(new Label(1,4,"立項審批DocID",wcf_table1));
ws.addCell(new Label(1,5,"項目名稱",wcf_table1));
ws.addCell(new Label(1,6,"工程類别",wcf_table1));
ws.addCell(new Label(1,7,"要求竣工傳遞日期",wcf_table1));
ws.addCell(new Label(1,8,"故障修複時限(小時)",wcf_table1));
ws.addCell(new Label(1,9,"合同編号",wcf_table1));
ws.addCell(new Label(1,10,"合同客戶機關名稱(全稱)",wcf_table1));
ws.addCell(new Label(1,11,"客戶經理姓名",wcf_table1));
ws.addCell(new Label(1,12,"客戶經理聯系電話",wcf_table1));
ws.addCell(new Label(1,14,"BSS裝置号",wcf_table1));
ws.addCell(new Label(1,15,"電路編号",wcf_table1));
ws.addCell(new Label(1,16,"舊電路編号",wcf_table1));
ws.addCell(new Label(1,17,"業務要求",wcf_table1));
ws.addCell(new Label(1,18,"新帶寬速率",wcf_table1));
ws.addCell(new Label(1,19,"目前帶寬速率",wcf_table1));
ws.addCell(new Label(1,20,"跨域類别",wcf_table1));
ws.addCell(new Label(1,21,"電路類型",wcf_table1));
ws.addCell(new Label(1,22,"城市",wcf_table1));
ws.addCell(new Label(1,23,"客戶機關名稱",wcf_table1));
ws.addCell(new Label(1,24,"裝機位址",wcf_table1));
ws.addCell(new Label(1,25,"發端舊位址",wcf_table1));
ws.addCell(new Label(1,26,"聯系人",wcf_table1));
ws.addCell(new Label(1,27,"聯系電話",wcf_table1));
ws.addCell(new Label(1,28,"接口類型",wcf_table1));
ws.addCell(new Label(1,29,"傳輸模式",wcf_table1));
//表格模版完成,開始将資料加到表中
for(int i =0;i<list.size();i++){
Map<String,String> valueMap = list.get(i);
ws.addCell(new Label(2,1,valueMap.get("service_order_id"),wcf_table1));
ws.addCell(new Label(2,2,valueMap.get("order_type"),wcf_table1));
ws.addCell(new Label(2,3,valueMap.get("order_create_date"),wcf_table1));
ws.addCell(new Label(2,4,valueMap.get("doc_id"),wcf_table1));
ws.addCell(new Label(2,5,valueMap.get("project_name"),wcf_table1));
ws.addCell(new Label(2,6,valueMap.get("project_type"),wcf_table1));
ws.addCell(new Label(2,7,valueMap.get("required_complete_date"),wcf_table1));
ws.addCell(new Label(2,8,valueMap.get("fault_repair_time"),wcf_table1));
ws.addCell(new Label(2,9,valueMap.get("contract_no"),wcf_table1));
ws.addCell(new Label(2,10,valueMap.get("contract_com_name"),wcf_table1));
ws.addCell(new Label(2,11,valueMap.get("customer_manager_name"),wcf_table1));
ws.addCell(new Label(2,12,valueMap.get("customer_manager_tel"),wcf_table1));
ws.addCell(new Label(2,13,valueMap.get("customer_special_require"),wcf_table1));
ws.addCell(new Label(2,14,valueMap.get("bss_equipment_id"),wcf_table1));
ws.addCell(new Label(2,15,valueMap.get("circuit_code"),wcf_table1));
ws.addCell(new Label(2,16,valueMap.get("circuit_code_old"),wcf_table1));
ws.addCell(new Label(2,17,valueMap.get("biz_require"),wcf_table1));
ws.addCell(new Label(2,18,valueMap.get("rate_new"),wcf_table1));
ws.addCell(new Label(2,19,valueMap.get("rate_now"),wcf_table1));
ws.addCell(new Label(2,20,valueMap.get("cross_domain_type"),wcf_table1));
ws.addCell(new Label(2,21,valueMap.get("circuit_type"),wcf_table1));
ws.addCell(new Label(2,22,valueMap.get("city_a"),wcf_table1));
ws.addCell(new Label(2,23,valueMap.get("customer_com_name_a"),wcf_table1));
ws.addCell(new Label(2,24,valueMap.get("installed_address_a"),wcf_table1));
ws.addCell(new Label(2,25,valueMap.get("old_address_a"),wcf_table1));
ws.addCell(new Label(2,26,valueMap.get("contact_a"),wcf_table1));
ws.addCell(new Label(2,27,valueMap.get("contact_tel_a"),wcf_table1));
ws.addCell(new Label(2,28,valueMap.get("interface_type_a"),wcf_table1));
ws.addCell(new Label(2,29,valueMap.get("transmission_mode_a"),wcf_table1));
}
wwb.write();
wwb.close();
os.flush();
os.close();
System.out.println("導出完成");
}catch(Exception e){
System.out.println(e);
}
return null;
}
//前台調用:
function printTableToExcel(){
Ext.Ajax.request({
timeout:1000*600,
url:'cssp/bssorder/workOrderAction.do?method=exportOrder&ufid=' + ufid,
form:Ext.fly('form'),
isUpload:true
});
}