一、需求
1、默认excel表格格式为常规,如何改成文本呢?
2、POI可以设置某一列或者某个单元格的格式
二、设置某一列的格式
分两种情况:HSSF和XSSF,也就是.xls和.xlsx的区别
1、HSSF
// 设置单元格格式为文本格式
HSSFCellStyle style = workBook.createCellStyle();
HSSFDataFormat format = workBook.createDataFormat();
style .setDataFormat(format.getFormat("@"));
//设置单元格格式为"文本"
sheet.setDefaultColumnStyle(columnIndex, style ); //columnIndex表示第几列
2、XSSF
// 设置单元格格式为文本格式
CellStyle style = workbook.createCellStyle();
XSSFDataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat("@"));
//设置单元格格式为"文本"
sheet.setDefaultColumnStyle(columnIndex, style); //columnIndex表示第几列
三、其他的格式设置(供参考)
1、日期格式
cell.setCellValue(new Date());
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
HSSFDataFormat format= demoWorkBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("yyyy年m月d日"));
cell.setCellStyle(cellStyle);
2、保留两位小数格式
cell.setCellValue(1.2);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
cell.setCellStyle(cellStyle);
3、货币格式
cell.setCellValue(20000);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
HSSFDataFormat format= demoWorkBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("¥#,##0"));
cell.setCellStyle(cellStyle);
4、百分比格式
cell.setCellValue(20);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));
cell.setCellStyle(cellStyle);
5、科学计数法格式
cell.setCellValue(20000);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
cellStyle.setDataFormat( HSSFDataFormat.getBuiltinFormat("0.00E+00"));
cell.setCellStyle(cellStyle);