java导出excel时设置单元格格式为文本时不生效的问题

java导出excel时设置单元格格式为文本时不生效的问题

​ 我们在使用java导出excel将单元格格式设置为文本时,发现没有生效或者部分生效,亦或是点一下单元格,又变为原来的格式,主要问题是由于我们在导出数据的时候,没有先设置单元格格式CellStyle,再向cell中插入数据。

举例:以easypoi的源码举例,下面这段代码中提前设置了文本格式,所以在导出数据的时候就不会出现类似问题

当然,设置文本格式的方式有许多种,只需要在插入数据之前就设置单元格格式,就不会出现失效问题

protected static final short STRING_FORMAT = (short) BuiltinFormats.getBuiltinFormat("TEXT");

public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) {
        CellStyle style = workbook.createCellStyle();
        style.setAlignment(HorizontalAlignment.CENTER);
        style.setVerticalAlignment(VerticalAlignment.CENTER);
        style.setDataFormat(STRING_FORMAT);
        if (isWarp) {
            style.setWrapText(true);
        }
        return style;
    }

你可能感兴趣的:(excel,java,spring,maven)