天天看點

jxl合并單元格導出excel

//背景方法

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

                });

            }

jxl合并單元格導出excel

繼續閱讀