POI导出设置列或单元格为文本(text)格式

一、需求

1、默认excel表格格式为常规,如何改成文本呢?

POI导出设置列或单元格为文本(text)格式_第1张图片
POI导出设置列或单元格为文本(text)格式_第2张图片

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

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