excel导出

excel导出

 @ResponseBody
    @RequestMapping(value = {"/test/export"})
    public void testExport(HttpServletRequest request, HttpServletResponse response
    ) throws Exception {
        HSSFWorkbook wb = new HSSFWorkbook();//excel文档对象
        HSSFSheet sheet = wb.createSheet("export");//excel的sheet HSSFRow excel的行
        //设置标题头
        HSSFRow row = sheet.createRow(0);//创建Excel工作表的行
        sheet.createFreezePane(0, 1);
        String[] colNames = new String[]{"姓名", "性别", "年龄"};
        // 设置第一列
        setFirstClo(wb, row, colNames);
        List<Map> list = new ArrayList<Map>();
        Map map = new HashMap();
        map.put("name", "aaa");
        map.put("sex", "男");
        map.put("age", "30");
        list.add(map);
        Map map1 = new HashMap();
        map1.put("name", "bbb");
        map1.put("sex", "男");
        map1.put("age", "30");
        list.add(map1);
        if (null != list && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                Map tempMap = list.get(i);
                Object[] values = {map.get("name"), map.get("sex"), map.get("age")};
                // 填充数据
                HSSFRow rowIn = sheet.createRow(i + 1);
                setDataClo(wb, rowIn, values);
            }
        }

        String fileName = new String("测试.xls".getBytes("gbk"), "iso8859-1");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
        response.setContentType("application/ms-excel");
        wb.write(response.getOutputStream());
        response.getOutputStream().flush();
        response.getOutputStream().close();
    }

/**
     * 设置excel第一行数据(列名)
     *
     * @param wb
     * @param row
     * @param colNames
     */
    public static void setFirstClo(HSSFWorkbook wb, HSSFRow row, String[] colNames) {
        for (int i = 0; i < colNames.length; i++) {
            createCell(wb, row, i, colNames[i]);
        }
    }

    /**
     * 设置excel数据
     *
     * @param wb
     * @param row
     * @param colValues
     */
    public static void setDataClo(HSSFWorkbook wb, HSSFRow row, Object[] colValues) {
        for (int i = 0; i < colValues.length; i++) {
            createCell(wb, row, i, String.valueOf(colValues[i]));
        }
    }

    /**
     * 创建一行
     *
     * @param wb
     * @param row
     * @param col
     * @param val
     */
    private static void createCell(HSSFWorkbook wb, HSSFRow row, int col, String val) {
        HSSFCell cell = row.createCell(col);
        val = val.replaceAll("&#39;", "'");
        val = val.replaceAll("&#40;", "\\(").replaceAll("&#41;", "\\)");
        val = val.replaceAll("&lt;", "<").replaceAll("&gt;", ">");

        cell.setCellValue(val);//设置Excel工作表的值
        HSSFCellStyle cellStyle = wb.createCellStyle();//创建单元格样式
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
        cell.setCellStyle(cellStyle);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值