我用下面的代码在XSSF工作表中设置默认的列样式?但是这是不起作用的,任何人都可以提出修复错误的建议。
format = workbook.createDataFormat();
style = workbook.createCellStyle();
style.setDataFormat(format.getFormat("@"));
sheet.setDefaultColumnStyle(1, style); 发布于 2019-11-15 19:37:33
从POI 4.1.0开始,它使用SXSSF,但有一个警告。默认列样式仅定义当用户在POI创建的工作表的空单元格中输入数据时将应用的样式。如果通过相关点创建单元格并输入数据,则默认格式不适用,必须使用setCellStyle(CellStyle)。
例如,对于文本样式:
private CellStyle createTextFormat(SXSSFWorkbook workbook) {
DataFormat fmt = workbook.createDataFormat();
CellStyle textStyle = workbook.createCellStyle();
textStyle.setDataFormat(fmt.getFormat("@"));
return textStyle;
}
// then do both:
int columnIndex = 0;
sheet.setDefaultColumnStyle(columnIndex, textFormat)
SXSSFCell cell = row.createCell(0);
cell.setCellStyle(textFormat);
cell.setCellValue("0100");发布于 2011-08-17 18:01:38
可能是this bug让你头疼。尝试使用Apache POI 3.7编写代码时,我得到了额外的效果,即第二列被隐藏(width = 0),并且没有应用格式。
干杯,维姆
注意,我讨论的是第二列,它是您的代码真正引用的;如果您想将样式应用到第一列,则应该使用0(从零开始)。
发布于 2012-11-21 15:24:04
试试这个,它会起作用的:
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));https://stackoverflow.com/questions/6544331
复制相似问题