Test Excel


public class OrderProductImport extends BaseImportExcelBase {
@Override
protected void checkColumn(List 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> rows) {

@Override
protected void checkRowData(List 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 importProduct(MultipartFile file ) {

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