easyExcel을 사용하여 대량의 데이터 가져오기
3083 단어 마이크로 서비스
1. 의존 추가
com.alibaba
easyexcel
2.0.5
둘째, 실체에 대응하는 맵 모델을 추가한다
@ExcelProperty(value ={" "})
private String issuer;
@ExcelProperty(value ={" "})
private BigDecimal amount;
/*
*/
@DateTimeFormat("yyyy/MM/dd")
@ExcelProperty(value ={" "})
private String day;
3. 해석 감청기 정의
import cn.org.nafmii.bean.Basic;
import cn.org.nafmii.service.BasicService;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import groovy.util.logging.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j
/*
*
* */
public class BasicExcelListener extends AnalysisEventListener {
private BasicService basicService;
public BasicExcelListener(){
}
public BasicExcelListener(BasicService basicService){
this.basicService = basicService;
}
/**
* 2000
*/
private static final int BATCH_COUNT = 2000;
List list = new ArrayList();
@Override
public void invoke(Basic basic, AnalysisContext analysisContext) {
//
int num=analysisContext.readRowHolder().getRowIndex();
basic.setRowNum(num+1);
list.add(basic);
if (list.size() >= BATCH_COUNT) {
saveData();
list.clear();
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
saveData();
// log.info(" !");
}
private void saveData(){
// saveData()
basicService.saveData(list);
}
4. 업무 논리층에 처리 논리를 추가
public class BasicService {
public Boolean saveData(List basics) {
//
//
return true;
}
}
5.springboot 파일 업로드
@RequestMapping(value = "/importBasic", method = RequestMethod.POST)
public RespBean importBasic(MultipartFile file) throws IOException {
BasicExcelListener basicExcelListener=new BasicExcelListener(basicService);
EasyExcel.read(file.getInputStream(), Basic.class, basicExcelListener).headRowNumber(1).sheet().doRead();
return " ";
}
위의 다섯 단계를 거치면 전체 easyExcel의 사용을 완성할 수 있지만 가장 간단한 입문일 뿐이다. easyExcel의 강력한 기능은 대응하는 업무와 결합하여 발굴해야 한다.
일에 몰두하는 것보다 사고방식이 더 중요하다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
마이크로 서비스 간에feign을 통해 서로 호출되며, 크로스 서버 호출 시 이상이 발생: No route to host해결: feign이 다른 서비스를 호출하는 것도 eureka 등록센터 서비스를 획득하여 서비스가 등록된 IP에 문제가 있는지 추측하고 지정한 appId의 실례를 조회한다. eureka url/eureka/apps/{...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.