package com.zy.common.web;
|
|
import com.alibaba.excel.EasyExcel;
|
import com.core.common.R;
|
import com.zy.common.utils.excel.EnInitData;
|
import com.zy.common.utils.excel.EnInitDataListener;
|
import com.zy.common.utils.excel.ExcelUtils;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.net.URLEncoder;
|
|
/**
|
* todo
|
* Created by vincent on 2019-11-25
|
*/
|
@Controller
|
@RequestMapping("excel/")
|
public class FileController {
|
|
/**
|
* 文件上传
|
*/
|
@PostMapping("upload")
|
@ResponseBody
|
public R upload(MultipartFile file) throws IOException {
|
EasyExcel.read(file.getInputStream(), EnInitData.class, new EnInitDataListener()).sheet().doRead();
|
return R.ok();
|
}
|
|
/**
|
* 文件下载(失败了会返回一个有部分数据的Excel)
|
*/
|
@GetMapping("download")
|
public void download(HttpServletResponse response) throws IOException {
|
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
|
response.setContentType("application/vnd.ms-excel");
|
response.setCharacterEncoding("utf-8");
|
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
String fileName = URLEncoder.encode("测试", "UTF-8");
|
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
EasyExcel.write(response.getOutputStream(), EnInitData.class).sheet("模板").doWrite(ExcelUtils.data());
|
}
|
|
}
|