户外 露出 easyExcel非模板导出,凭证数据类型建筑单位格数据神志

发布日期:2024-09-08 17:08    点击次数:137

户外 露出 easyExcel非模板导出,凭证数据类型建筑单位格数据神志

看固定模板的建筑神志是这么的户外 露出

public class FourListExcelDto {

@ContentStyle(dataFormat = 14)

    @DateTimeFormat("yyyy/M/dd")

    @ExcelProperty({"时辰"})

    private Date exportDate;

}

但口舌固定模板的是凭证你来的数据来生成文献的这么就无法使用了。

用EasyExcel.write(outputStream).registerWriteHandler(xxx).doWrite(data)生成文献,咱们不错我方杀青一个registerWriteHandler,去神志化单位格。

新建Handler类,继承AbstractCellStyleStrategy

public class ExcelCellStyleStrategy extends AbstractCellStyleStrategy {

    /**

     * 单位格神志列表(神志:GENERAL、CURRENCY_¥、CURRENCY_$、DATE、NUMERIC)

     */

    private final List<String> cellDataTypes;

    /**

     * WorkBoot

     */

    private Workbook workbook;

    /**

     * 构造范例,创建对象时传入需要定制的表头信息队伍

     */

    public ExcelCellStyleStrategy(List<String> cellDataTypes) {

        this.cellDataTypes = cellDataTypes;

    }

    @Override

    protected void initCellStyle(Workbook workbook) {

        // 启动化信息时,保存Workbook对象,诊疗时需要使用

        this.workbook = workbook;

    }

    @Override

    protected void setHeadCellStyle(Cell cell, Head head, Integer relativeRowIndex) {

// 责罚表头的

    }

    @Override

丝袜脚

    protected void setContentCellStyle(Cell cell, Head head, Integer relativeRowIndex) {

        CellStyle cellStyle = workbook.createCellStyle();

        String cellValue = cell.getStringCellValue();

        String dataTypes = cellDataTypes.get(head.getColumnIndex());

        switch (dataTypes) {

            case "DATE":

                // 时辰

                if (StrUtil.isNotBlank(cellValue)) {

                    DateTime dateTime = DateUtil.parseDateTime(cellValue);

                    cell.setCellValue(DateUtil.format(dateTime, "yyyy/m/d h:mm"));

                    cellStyle.setDataFormat((short) 164);

                }

                break;

            case "NUMERIC":

                // 数字

                cell.setCellType(CellType.NUMERIC);

                // cellStyle.setDataFormat((short) 1);

                // 自界说神志

                // 1 -> "0",        暗示整数

                // 2 -> "0.00",     暗示浮点数

                // 3 -> "#,##0",    暗示三个数字加一个","神志的整数

                // 4 -> "#,##0.00", 暗示三个数字加一个","神志的浮点数

                if (StrUtil.isBlank(cellValue)) {

                    cell.setCellValue("");

                } else {

                    cell.setCellValue(Integer.parseInt(cellValue));

                }

                break;

            default:

                if (dataTypes.startsWith("CURRENCY_")) {

                    // 货币

                    String currency = dataTypes.substring(9);

                    cell.setCellValue(StrUtil.format("{}{}", currency, StrUtil.isBlank(cellValue) ? "-" : cellValue));

                    cellStyle.setDataFormat((short) 42);

                }

                // 默许是通用类型,无需寥落责罚

        }

        cell.setCellStyle(cellStyle);

    }

}

主要看setContentCellStyle范例,创建ExcelCellStyleStrategy时需要把每一列的数据类型传递过来。

cellStyle.setDataFormat这个极端旨兴致,不错好好策动一下。

easypoi扶植的自界说神志列表

BuiltinFormats类的_formats列内外的自界说神志才灵验,不然就会使用文本神志。

纪录数据类型就凭证你本色情况来写了,底下时我这边的。凭证业务来写的,别无脑跟!

图片

  

建筑后果

图片

  

货币

日历

唯重

存眷

————————————————

版权声明:本文为CSDN博主「唯重」的原创著作,受命CC 4.0 BY-SA版权公约,转载请附上原文出处流畅及本声明。

原文流畅:https://blog.csdn.net/GMingZhou/article/details/124149506户外 露出

本站仅提供存储管事,通盘内容均由用户发布,如发现存害或侵权内容,请点击举报。

相关资讯



Powered by 文爱剧情 @2013-2022 RSS地图 HTML地图

Copyright Powered by365建站 © 2013-2024