ExcelController.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.fdkankan.manage.controller;
  2. import cn.hutool.poi.word.WordUtil;
  3. import com.alibaba.nacos.common.codec.Base64;
  4. import com.fdkankan.manage.common.ResultCode;
  5. import com.fdkankan.manage.exception.BusinessException;
  6. import com.fdkankan.common.response.ResultData;
  7. import com.fdkankan.manage.service.IExcelService;
  8. import org.apache.commons.io.FileUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import org.springframework.web.multipart.MultipartFile;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import java.io.File;
  15. import java.io.IOException;
  16. import java.io.InputStream;
  17. import java.io.OutputStream;
  18. import java.net.URLEncoder;
  19. import java.nio.charset.StandardCharsets;
  20. @RestController
  21. @RequestMapping("/service/manage/excel")
  22. public class ExcelController {
  23. @Autowired
  24. IExcelService excelService;
  25. /**
  26. * 下载出入库模板
  27. * type 0 入库模板, 1出库模板 ,2 客户关联模板
  28. */
  29. @GetMapping("/downTemplate")
  30. public void downInTemplate(@RequestParam(required = false,defaultValue = "0") Integer type,
  31. HttpServletResponse res, HttpServletRequest req) throws IOException {
  32. String fileName = "";
  33. switch (type){
  34. case 0 : fileName = "cameraIn.xlsx"; break;
  35. case 1 : fileName = "cameraOut.xlsx"; break;
  36. case 2 : fileName = "cameraCompany.xlsx"; break;
  37. default: throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  38. }
  39. InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/"+fileName);
  40. OutputStream os = res.getOutputStream();
  41. try {
  42. String agent = req.getHeader("USER-AGENT");
  43. if (agent != null && !agent.contains("MSIE") && !agent.contains("like Gecko")) {// FF
  44. String enableFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes(StandardCharsets.UTF_8))))
  45. + "?=";
  46. res.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
  47. } else { // IE
  48. String enableFileName = URLEncoder.encode(fileName, "UTF-8");
  49. res.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
  50. }
  51. File file = new File(fileName);
  52. FileUtils.copyInputStreamToFile(inputStream,file);
  53. os.write(FileUtils.readFileToByteArray(file));
  54. os.flush();
  55. } finally {
  56. os.close();
  57. }
  58. }
  59. /**
  60. * 导入excel
  61. * type 0 入库模板, 1出库模板 ,2 客户关联模板
  62. */
  63. @PostMapping("/uploadExcel")
  64. public ResultData uploadExcel(@RequestParam(required = false) MultipartFile file,
  65. @RequestParam(required = false,defaultValue = "0") Integer type) throws IOException {
  66. return ResultData.ok(excelService.uploadExcel(file,type));
  67. }
  68. }