java poi生成excel(个人例子js-jsp-java)

js代码:

    function exportRepQudl() {
        if (confirm("导出输出页面内容?")) {
            var id = $("input[name='id']").val();
            var lx = $("input[name='lx']").val();
            var rq = $("input[name='rq']").val();
            var url = __ctx + '/zjdlbb/zjdlbb/zjdlbb/exportExcelQudl.ht?id='
                    + id + "&lx=" + lx + "&rq=" + rq;
            var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
            if (userAgent.indexOf("compatible") > -1
                    && userAgent.indexOf("MSIE") > -1) {//判断是否IE浏览器
                window.location.href(url);
            } else {
                window.open(url, "导出报表");
            }
        }
    }

 

 

jsp代码:

<a class="myLinkA" id="exportRepQudl" onclick="exportRepQudl()"><span></span>导出</a>

 

java代码:

    @RequestMapping({ "exportExcelQudl" })
    @Action(description = "导出excel")
    public void exportExcelQudl(HttpServletRequest request, HttpServletResponse response) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        // 获取请求参数的各种处理
        String lx = request.getParameter("lx");
        String rq = request.getParameter("rq");

        String rqTime = "";
        if (StringUtil.isEmpty(rq)) {
            rq = sdf.format(new Date());
            rqTime = sdf.format(new Date()) + " 22:00:00";
        } else {
            rqTime = rq + " 22:00:00";
        }

        // 取得各种需要导出的数据
        Map<String, String> mapXzz = new HashMap<String, String>();
        mapXzz.put("rq", rq);
        mapXzz.put("rqTime", rqTime);
        List<Zjdlbbxzb> listXzz = zjdlbbxzbService.getQqdl(mapXzz);

        // 第一步、设置文件名,类型+日期+后缀.xls
        String fileName = lx + rq + ".xls";
        ;
        // 第二步,创建excel
        HSSFWorkbook wb = new HSSFWorkbook();
        // 第三步、创建excel sheet
        HSSFSheet sheet = wb.createSheet();
        // 第四步、设置数据

        // 添加行的指标
        int flagIndex = 0;
        // 第一行操作
        HSSFRow row0 = sheet.createRow(flagIndex++);
        row0.setHeightInPoints((short) 20);
        // 添加合并区域(合并第三到第五列)
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 4));
        HSSFCell titleCell = row0.createCell(2);
        titleCell.setCellValue("" + rq);

        // 标题样式
        HSSFCellStyle cellStyleTitle = wb.createCellStyle();
        cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
        HSSFFont font = wb.createFont();
        font.setFontHeightInPoints((short) 14);
        cellStyleTitle.setFont(font);
        titleCell.setCellStyle(cellStyleTitle);

        // 第二行操作
        List<String> listTitle = zjdlbbService.getQutlTitle();
        HSSFRow row1 = sheet.createRow(flagIndex++);
        // 样式
        HSSFCellStyle cellStyle = ZjdlbbUtil.getHSSFCellStyle(wb);
        for (int i = 0; i < listTitle.size(); i++) {
            HSSFCell title = row1.createCell(i);
            title.setCellValue(listTitle.get(i));
            title.setCellStyle(cellStyle);
            // 设置每一列的宽度
            sheet.setColumnWidth(i, 5000);
        }

        // 其他行操作
        for (int i = 0; i < listXzz.size(); i++) {
            HSSFRow row = sheet.createRow(flagIndex++);
            HSSFCell qy = row.createCell(0);
            HSSFCell ygdl = row.createCell(1);
            HSSFCell wgdl = row.createCell(2);
            HSSFCell zgfh = row.createCell(3);
            HSSFCell pjfh = row.createCell(4);
            HSSFCell fhl = row.createCell(5);
            HSSFCell glys = row.createCell(6);

            Zjdlbbxzb entity = listXzz.get(i);
            qy.setCellValue(entity.getLx() == null ? "" : entity.getLx());
            ygdl.setCellValue(entity.getYgzdl() == null ? 0d : entity.getYgzdl());
            wgdl.setCellValue(entity.getWgzdl() == null ? 0d : entity.getWgzdl());
            zgfh.setCellValue(entity.getZgfh() == null ? 0d : entity.getZgfh());
            pjfh.setCellValue(entity.getPjfh() == null ? 0d : entity.getPjfh());
            fhl.setCellValue(entity.getFhl() == null ? 0d : entity.getFhl());
            glys.setCellValue(entity.getGlys() == null ? 0d : entity.getGlys());

        }

        response.setContentType("application/octet-stream;charset=UTF-8");
        response.setHeader("Content-Type", "application/vnd.ms-excel");
        response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GB2312"), "8859_1"));
        response.addHeader("Pargam", "no-cache");
        response.addHeader("Cache-Control", "no-cache");
        OutputStream out = response.getOutputStream();
        wb.write(out);
        out.flush();
        out.close();
    }

 

posted @ 2018-09-29 14:24  爱跳舞的程序员  阅读(267)  评论(0编辑  收藏  举报