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;
}