Test Excel

public class OrderProductImport extends BaseImportExcelBase {
@Override
protected void checkColumn(List<Object> columnTabNames) {
boolean model = columnTabNames.stream().anyMatch(e -> ObjectUtil.contains(e, "Model"));
boolean specification = columnTabNames.stream().anyMatch(e -> ObjectUtil.contains(e, "Specification"));
boolean productNumber = columnTabNames.stream().anyMatch(e -> ObjectUtil.contains(e, "Product Number"));
boolean quantity = columnTabNames.stream().anyMatch(e -> ObjectUtil.contains(e, "Quantity"));
boolean wareHouse = columnTabNames.stream().anyMatch(e -> ObjectUtil.contains(e, "WareHouse"));

boolean isHeader = !(model && specification && productNumber && quantity && wareHouse);

if (isHeader) {
throw new BizException("列名不对");
}

}

@Override
protected void checkData(List<List<Object>> rows) {

}

@Override
protected void checkRowData(List<Object> rows) {

}
}

public class OrderProductImportDTO {

@ExcelField(column = 0)
private String model;

@ExcelField(column = 1)
private String specification;

@ExcelField(column = 2)
private String productNumber;

@ExcelField(column = 3, required = true, errorMsg = "Quantity* empty.")
private String quantity;

@ExcelField(column = 4)
private String wareHouse;

@ExcelField(column = 5)
private String netPrice;
}


@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelField {
/**
* 列数,从0开始
* @return
*/
int column();

/**
* 是否必填
* @return
*/
boolean required() default false;

/**
* 返回的错误信息
* @return
*/
String errorMsg() default "";
}


public class TestExcel {
@Autowired
private BaseImportExcelBase orderProductImport;

public List<OrderProductImportDTO> importProduct(MultipartFile file ) {

List<OrderProductImportDTO> orderProducts = orderProductImport.importExcelRowHandlerBean(file, OrderProductImportDTO.class);
return orderProducts;
}
}

posted @ 2022-03-27 20:56  yydssc  阅读(51)  评论(0)    收藏  举报