若依教程独家分享!点赞+关注,一起从「蒟蒻」变成「大佬」~

本期内容

若依框架导出数值,默认文本类型修改为小数或整数效果如下

2 代码应该怎么调?

本期内容

1,修改Excell.java工具类的ColumnType方法,完善代码,加入更多数据类型,包括:NUMERIC(0) 整数 ,STRING(1) 文本, IMAGE(2) 图片, DOUBLE(3) 小数

public enum ColumnType{NUMERIC(0), STRING(1), IMAGE(2),DOUBLE(3);private final int value;
ColumnType(int value){this.value = value;}
public int value(){return this.value;}}

具体如下:

2,修改ExcellUtil.java工具类的setCellVo方法,完善代码,添加下面代码:

else if (ColumnType.DOUBLE == attr.cellType()){

cell.setCellValue( Convert.toDouble(value) );

}

完整代码如下:

public void setCellVo(Object value, Excel attr, Cell cell){if (ColumnType.STRING == attr.cellType()){cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix());}else if (ColumnType.NUMERIC == attr.cellType()){cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value));}else if (ColumnType.DOUBLE == attr.cellType()){cell.setCellValue( Convert.toDouble(value) );}else if (ColumnType.IMAGE == attr.cellType()){ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1),cell.getRow().getRowNum() + 1);String imagePath = Convert.toStr(value);if (StringUtils.isNotEmpty(imagePath)){byte[] data = ImageUtils.getImage(imagePath);getDrawingPatriarch(cell.getSheet()).createPicture(anchor,cell.getSheet().getWorkbook().addPicture(data, getImageType(data)));}}

具体如下:

3,修改Cesi.java实体类代码,加入:

cellType = Excel.ColumnType.NUMERIC 导出为整数及小数

cellType = Excel.ColumnType.DOUBLE 导出为小数

若依框架教程

2020.3.2