天天看点

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

继续阅读