vue + Excelkit 가 져 오기 내 보 내기

11865 단어 자바vue
템 플 릿 가 져 오기 / 내 보 내기 / 다운로드
vue 코드
  
    

  

탄 상자 가 져 오기



가 져 오기 페이지 도입
import ImportExcel from './paper-import'
components: {
  ImportExcel
},
//     
exportHandle(val){
  this.$http({
    url: this.$http.adornUrl('/school/paper/downTemplate/'+val),
    method: 'get',
    responseType: 'blob',
  }).then(res => {
    let fileName = '    '+(new Date()).getTime()+'.xlsx'
    this.download(res.data,fileName)
  });
},
download (data,fileName) {
 if (!data) {
      return
  }
  let url = window.URL.createObjectURL(new Blob([data]))
  let link = document.createElement('a')
  link.style.display = 'none'
  link.href = url
  link.setAttribute('download', fileName)
  document.body.appendChild(link)
  link.click()
},

//   
importHandle(){
  this.importVisible = true
  this.$nextTick(() => {
    this.$refs.importExcel.init()
  })
},

페이지 코드 가 져 오기



  export default {
    data () {
      return {
        visible: false,
        files:"",
        fileName:'',
        fileList: [],
      }
    },
    methods: {
      init () {
        this.visible = true
      },
      submitUpload() {
        debugger
        console.log('  '+this.files.name)
        if(this.fileName == ""){
          this.$message.warning('         !')
          return false
        }
        let fileFormData = new FormData();
        fileFormData.append('file', this.files, this.fileName);
        let requestConfig = {
          headers: {
            'Content-Type': 'multipart/form-data'
          },
        }
        this.$http.post(this.$http.adornUrl(`/school/paper/import`), fileFormData, requestConfig).then(({data}) => {
            if (data && data.code === 0) {
            this.$message({
              message: '    ',
              type: 'success',
              duration: 1500,
              onClose: () => {
                this.visible = false
                this.$emit('refreshDataList')
              }
            })
          } else if(data.code === -1){
            this.$message.error(data.msg)
            this.visible = false
          } else {
            this.$message.error(data.msg)
            this.visible = false
          }
        })  
      },
      //             
      beforeUpload(file){
        this.files = file;
        const extension = file.name.split('.')[1] === 'xls'
        const extension2 = file.name.split('.')[1] === 'xlsx'
        const isLt2M = file.size / 1024 / 1024 < 5
        if (!extension && !extension2) {
          this.$message.warning('        xls、xlsx  !')
          return
        }
        if (!isLt2M) {
          this.$message.warning('           5MB!')
          return
        }
        this.fileName = file.name;
        return false //   false      
      },
  
    }
  }



백 스테이지
도입 의존

	xml-apis
	xml-apis
	1.4.01


controller 한 줄 코드 로 Excel 가 져 오기 템 플 릿 구축 Excel Kit 에서 제공 하 는 API 로 가 져 오기 템 플 릿 구축, 설정 에 따라 주석 생 성, 드 롭 다운 상자 등
/**
 *   
 */
@GetMapping("/downTemplate/{type}")
@RequiresPermissions("school:paper:import")
public void downTemplate(HttpServletResponse response,@PathVariable("type") Integer type) {
    List list = new ArrayList<>();
    if(type == 1){
        list = paperService.selectList(new EntityWrapper());
        ExcelKit.$Export(PaperEntity.class, response).downXlsx(list, false);
    }else{
        list = paperService.getListLimit();
        ExcelKit.$Export(PaperEntity.class, response).downXlsx(list, true);
    }
}
/**
*     
*/
@SysLog("    ")
@PostMapping("/import")
@RequiresPermissions("school:paper:import")
public R upload(@RequestParam("file") MultipartFile file) {
   if (file.isEmpty()) {
       throw new RRException("        ");
   }
   //    
   String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
   if(StringUtils.equalsAnyIgnoreCase(suffix,".xls")
           ||StringUtils.equalsAnyIgnoreCase(suffix,".xlsx")){
       List successList = new ArrayList();
       List> errorList = new ArrayList();
       try {
           //  
           Integer type1 = 0;Integer type2 = 0;Integer type3 = 0;Integer type4 = 0;
           List mapType = paperService.getTypeNumMax();
           for (PaperEntity obj : mapType) {
               type1 = "1".equals(obj.getType())?obj.getNum():0;
               type2 = "2".equals(obj.getType())?obj.getNum():0;
               type3 = "3".equals(obj.getType())?obj.getNum():0;
               type4 = "4".equals(obj.getType())?obj.getNum():0;
           }
           Integer num1 = type1;
           Integer num2 = type2;
           Integer num3 = type3;
           Integer num4 = type4;
           ExcelKit.$Import(PaperEntity.class).readXlsx(file.getInputStream(), new ExcelReadHandler() {

               @Override
               public void onSuccess(int sheetIndex, int rowIndex, PaperEntity entity) {
                   Integer num = 0;
                   switch (entity.getType()){
                       case "1":
                           num = num1 + 1;
                           break;
                       case "2":
                           num = num2 + 1;
                           break;
                       case "3":
                           num = num3 + 1;
                           break;
                       case "4":
                           num = num4 + 1;
                           break;
                       default:
                           num = 0;
                   }
                   entity.setNum(num);
                   successList.add(entity); //       ,  sucessList。
               }

               @Override
               public void onError(int sheetIndex, int rowIndex,
                                   List errorFields) {
                   //       ,             
                   Map map = new HashMap<>();
                   map.put("sheetIndex", sheetIndex);
                   map.put("rowIndex", rowIndex);
                   map.put("errorFields", errorFields);
                   errorList.add(map);
               }
           });
       } catch (IOException e) {
           e.printStackTrace();
           logger.error("    :"+e.getMessage());
           throw new RRException("    ");
       }
       if(successList.size() > 0){
           paperService.insertBatch(successList);
       }
       if(errorList.size() > 0){
           return R.error(-1,"      ",errorList);
       }
       return R.ok("      :"+successList.size()+" ");
   }else{
       logger.error("         ,    xls/xlsx  ");
       throw new RRException("         ,    xls/xlsx  ");
   }
}


entity 는 자신의 업무 장면 에 따라 실현 되 며, 현재 일부 코드 만 보 여 줍 니 다.
@Excel("  ")
@TableName("paper")
public class PaperEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 *   
	 */
	@TableId
	private Integer id;
	/**
	 *   
	 */
	@ExcelField(value = "  ",required = true,comment = "     ")
	private String questions;
	/**
	 *   1
	 */
	@ExcelField(value = "  1",required = true,comment = "     1")
	private String answer1;
	/**
	 *   2
	 */
	@ExcelField(value = "  2",required = true,comment = "     2")
	private String answer2;
	/**
	 *   3
	 */
	@ExcelField(value = "  3",required = true,comment = "     3")
	private String answer3;
	/**
	 *   4
	 */
	@ExcelField(value = "  4",required = true,comment = "     4")
	private String answer4;
	/**
	 *     
	 */
	@ExcelField(value = "    ",required = true,comment = "       ")
	private String trueanswer;
	/**
	 *   
	 */
    @ExcelField(value = "  ",required = true,comment = "     ",
			options = PaperType.class,
			//     ,       
			writeConverter = PaperTypeWrite.class,
			//     ,       
			readConverter = PaperTypeRead.class)
	private String type;
	/**
	 *   
	 */
	@ExcelField(value = "  ",required = true,comment = "     ")
	private String explain;
}

관련 변환기 장치 내 보 내기 드 롭 다운 선택 실현
public class PaperType implements Options{
    @Override
    public String[] get() {
        return new String[]{"     ", "     ","     ","      "};
    }
}

파일 을 쓸 때 값 을 변환 합 니 다.
public class PaperTypeWrite implements WriteConverter {
    @Override
    public String convert(Object o) throws ExcelKitWriteConverterException {
        String typeName = "";
        String type = o.toString();
        switch (type){
            case "1" :
                typeName = "     ";
                break; 
            case "2" :
                typeName = "     ";
                break; 
            case "3" :
                typeName = "     ";
                break; 
            case "4" :
                typeName = "      ";
                break; 
            default:
                return "";
        }
        return typeName;
    }

}

파일 을 쓸 때 값 을 변환 합 니 다.
public class PaperTypeWrite implements WriteConverter {
    @Override
    public String convert(Object o) throws ExcelKitWriteConverterException {
        String typeName = "";
        String type = o.toString();
        switch (type){
            case "1" :
                typeName = "     ";
                break; 
            case "2" :
                typeName = "     ";
                break; 
            case "3" :
                typeName = "     ";
                break; 
            case "4" :
                typeName = "      ";
                break; 
            default:
                return "";
        }
        return typeName;
    }

}

엑셀 키 트 를 통 해 엑셀 파일 가 져 오기 / 내 보 내기

좋은 웹페이지 즐겨찾기