mirror of https://github.com/alibaba/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
6 years ago
|
package com.alibaba.excel.converters;
|
||
|
|
||
|
import java.lang.reflect.Field;
|
||
|
|
||
|
import org.apache.poi.ss.usermodel.Cell;
|
||
|
|
||
|
import com.alibaba.excel.metadata.ExcelColumnProperty;
|
||
|
|
||
|
public class BooleanConverter implements Converter {
|
||
|
@Override
|
||
|
public String getName() {
|
||
|
return "boolean-converter";
|
||
|
}
|
||
|
@Override
|
||
|
public boolean support(ExcelColumnProperty columnProperty) {
|
||
|
Field field = columnProperty.getField();
|
||
|
return Boolean.class.equals(field.getType()) || boolean.class.equals(field.getType());
|
||
|
}
|
||
|
@Override
|
||
|
public Object convert(String value, ExcelColumnProperty columnProperty) {
|
||
|
String valueLower = value.toLowerCase();
|
||
|
if (valueLower.equals("true") || valueLower.equals("false")) {
|
||
|
return Boolean.parseBoolean(value.toLowerCase());
|
||
|
}
|
||
|
Integer integer = Integer.parseInt(value);
|
||
|
if (integer == 0) {
|
||
|
return false;
|
||
|
} else {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
@Override
|
||
|
public Cell convert(Cell cell, Object value, ExcelColumnProperty columnProperty) {
|
||
|
cell.setCellValue(String.valueOf(value));
|
||
|
return cell;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean support(Object cellValue) {
|
||
|
return cellValue instanceof Boolean || boolean.class.equals(cellValue.getClass());
|
||
|
}
|
||
|
}
|