javaExcel导出客户端

package com.meritdata.cloud.cosp.bank.util;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Base64;
import java.util.List;

public class DownLoadUtils {

    public static String getFileName(String agent, String filename) throws UnsupportedEncodingException {
        if (agent.contains("MSIE")) {
            // IE浏览器
            filename = URLEncoder.encode(filename, "utf-8");
            filename = filename.replace("+", " ");
        } else if (agent.contains("Firefox")) {
            // 火狐浏览器
            Base64.Encoder base64Encoder = Base64.getEncoder();
            filename = "=?utf-8?B?" + new String(base64Encoder.encode(filename.getBytes("utf-8")),"UTF-8") + "?=";
        } else {
            // 其它浏览器
            filename = URLEncoder.encode(filename, "utf-8");
        }
        return filename;
    }


}

@ApiOperation("导出")
    @GetMapping("/export")
    public ResultBody export(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //导出模板
        HSSFWorkbook book = template();
        //获得浏览器代理信息
        String finalFileName = DownLoadUtils.getFileName(request.getHeader("USER-AGENT"), "产品表.xls");
        //设置HTTP响应头
        response.reset();        //重置 响应头
        response.setContentType("application/vnd.ms-excel");//告知浏览器下载文件,而不是直接打开,浏览器默认为打开
        response.addHeader("Content-Disposition", "attachment;filename=" + finalFileName + "");//下载文件的名称
        //将数据写入输出流
        OutputStream os = response.getOutputStream();
        book.write(os);
        os.close();
        return ResultBody.success("导出成功");
    }

    /**
     * excel导出模板
     * @return
     */
    public HSSFWorkbook template(){

        HSSFWorkbook template = new HSSFWorkbook();             //创建excel对象
        HSSFSheet sheet = template.createSheet();               //创建页
        int count = 0;
        HSSFRow row = sheet.createRow(count);                   //创建行
        row.createCell(0).setCellValue("id");
        row.createCell(1).setCellValue("类型ID");
        row.createCell(2).setCellValue("编码");
        row.createCell(3).setCellValue("名字");
        row.createCell(4).setCellValue("描述");
        row.createCell(5).setCellValue("状态");
        row.createCell(6).setCellValue("排序号");
        row.createCell(7).setCellValue("创建时间");
        row.createCell(8).setCellValue("创建人");
        count++;

        List<CospProduct> areas = cospProductRepository.findAll();
        for (CospProduct area : areas) {
            row = sheet.createRow(count);
            row.createCell(0).setCellValue(area.getId());
            row.createCell(1).setCellValue(area.getTypeId());
            row.createCell(2).setCellValue(area.getCode());
            row.createCell(3).setCellValue(area.getName());
            row.createCell(4).setCellValue(area.getDescription());
            row.createCell(5).setCellValue(area.getStatus());
            row.createCell(6).setCellValue(area.getSortno());
            row.createCell(7).setCellValue(area.getCreateTime().toString());
            row.createCell(8).setCellValue(area.getCreateUser());
            count++;
        }
        return template;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值