Spring Excel上传/下载

Excel上传

@RequestMapping("/import_xlsx")
@ResponseBody
public Result importExcel(@RequestParam(value = "excelFile", required = false) MultipartFile excelFile) {
    excelFile.getInputStream();
}    

var fd = new FormData();
fd.append('excelFile', files[0]);
$.ajax({
    method:"POST",
    url : '',
    data: fd,
    async : false,
    processData: false,
    contentType: false
}).done(function(rs) {}).fail(function(rs) {});

Excel下载

@RequestMapping("/export_xlsx")
@ResponseBody
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
    String fileName = "模板.xlsx";
    String path =  request.getSession().getServletContext().getRealPath("/upload/");
    File file = new File(path, fileName);
    try (InputStream inputStream = new FileInputStream(file)) {
        fileName = Util.encodeFilename(fileName, request);
        byte[] by = new byte[inputStream.available()];
        inputStream.read(by);
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
        OutputStream outputStream = response.getOutputStream();
        outputStream.write(by);
        outputStream.flush();
        outputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }    
}
window.location.href = rootPath + "/adjustmentBaseInfo/export_xlsx";


public static String encodeFilename(String filename, HttpServletRequest request) {     
    /**   
    * 获取客户端浏览器和操作系统信息   
    * 在IE浏览器中得到的是:User-Agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; Alexa Toolbar)   
    * 在Firefox中得到的是:User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.10) Gecko/20050717 Firefox/1.0.6   
    */     
    String agent = request.getHeader("USER-AGENT");     
    try {     
        if ((agent != null) && (-1 != agent.indexOf("MSIE"))) {     
        String newFileName = URLEncoder.encode(filename, "UTF-8");     
        if (newFileName.length() > 150) {     
            newFileName = new String(filename.getBytes("GB2312"), "ISO8859-1");     
        }     
        return newFileName;     
        }     
        if ((agent != null) && (-1 != agent.indexOf("Mozilla")))     
        return MimeUtility.encodeText(filename, "UTF-8", "B");     
        
        return filename;     
    } catch (Exception ex) {     
        return filename;     
    }     
}

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值