java简单快速导出EXCEL

**JAVA简单快速导出EXCEL

直接上代码

一、先导入maven包

	  <!--junit4测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.0.0</version>
    </dependency>

    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>4.5.2</version>
    </dependency>
	//员工导出方法
    @ResponseBody
    @RequestMapping(value = "employee1/export", method = RequestMethod.GET)
    public void export(HttpServletResponse response ,HttpServletResponse request) throws Exception {

       List<MemberLogVo> row1 = memberService.getIsLoginMemberData(isAll ,pageNo);


        LinkedHashMap<String, String> map = new LinkedHashMap<>();
        //自定义标题别名

        map.put("memberId", "会员id");
        map.put("memberName", "会员名称");
        map.put("mobile", "会员电话");
        map.put("loginNum", "登录次数");
        map.put("recommendationCode", "推荐码");
        map.put("loginTime", "登录时间");

        ExcelHelper.excelMap(row1 ,request,response,pageNo ,map);
      }

/**
 * 
 *
 * 导出Excel文件类
 *
 * @author zxy
 * Created 2017/4/13 11:07
 */
public class ExcelHelper {

    /**
     * 汪太勇
     */
    public static void excelMap(List list , HttpServletRequest request, HttpServletResponse response , int pageNo , LinkedHashMap<String ,String> map) throws Exception{

        // 通过工具类创建writer,默认创建xls格式
        ExcelWriter writer = ExcelUtil.getWriter();

        for (Map.Entry<String, String> entry :  map.entrySet()) {

            writer.addHeaderAlias(entry.getKey() , entry.getValue() );
        }


        // 定义单元格背景色
        StyleSet style = writer.getStyleSet();
        // 第二个参数表示是否也设置头部单元格背景
        /*style.setBackgroundColor(IndexedColors.GREEN, false);*/


     /*   //设置内容字体
        Font font = writer.createFont();
        font.setBold(true);
        font.setColor(Font.COLOR_RED);
        font.setItalic(true);*/

        //第二个参数表示是否忽略头部样式
        /* writer.getStyleSet().setFont(font, true);*/
        //out为OutputStream,需要写出到的目标流

        writer.merge(5, "会员是否登录分析表  "+pageNo+"");
        // 一次性写出内容,使用默认样式,强制输出标题
        writer.write(list, true);

        //解决中文乱码问题
        String fileName = employeeFileName("会员是否登录分析表--" + pageNo ,request);

        //response为HttpServletResponse对象
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
        ServletOutputStream out = response.getOutputStream();

        writer.flush(out);
        // 关闭writer,释放内存
        writer.close();
        //此处记得关闭输出Servlet流
        IoUtil.close(out);


    }

    public static  String  employeeFileName(String fileName ,HttpServletRequest request) throws IOException {

        //解决中文乱码问题
        fileName = fileName.replace(" ", "");
        String userAgent = request.getHeader("user-agent").toLowerCase();
        if (StringUtils.isBlank(fileName)) {
            fileName = ShopHelper.getCurrentTimestamp().toString();
        }
        fileName = fileName + ".xls";
        if (userAgent.contains("msie") || userAgent.contains("like gecko")) {
            //win
            fileName = URLEncoder.encode(fileName, "UTF-8");
        } else {
            fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
        }
        return fileName;

    }



}```


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值