poi设置日期格式和数字格式

  • Post author:
  • Post category:其他


//设定自定义格式的内容,以下面这种格式
CellStyle cellStyleDate=workbook.createCellStyle();
DataFormat format= workbook.createDataFormat();
//设定时间格式
cellStyleDate.setDataFormat(format.getFormat("yyyy-mm-dd hh:mm:ss"));
//设置值(Date)
cell.setCellValue((Date)value);
cell.setCellStyle(cellStyleDate);
//设定内置格式的,以下面这种格式
CellStyle cellStyleDouble = workbook.createCellStyle();
cellStyleDouble.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
cell.setCellValue(Double.valueOf(value.toString()));
cell.setCellStyle(cellStyleDouble);
org.apache.poi.ss.usermodel.BuiltinFormats中有内置格式的列举
​
private static final String[] _formats = new String[]{"General", "0", "0.00", "#,##0", "#,##0.00", "\"$\"#,##0_);(\"$\"#,##0)", "\"$\"#,##0_);[Red](\"$\"#,##0)", "\"$\"#,##0.00_);(\"$\"#,##0.00)", "\"$\"#,##0.00_);[Red](\"$\"#,##0.00)", "0%", "0.00%", "0.00E+00", "# ?/?", "# ??/??", "m/d/yy", "d-mmm-yy", "d-mmm", "mmm-yy", "h:mm AM/PM", "h:mm:ss AM/PM", "h:mm", "h:mm:ss", "m/d/yy h:mm", "reserved-0x17", "reserved-0x18", "reserved-0x19", "reserved-0x1A", "reserved-0x1B", "reserved-0x1C", "reserved-0x1D", "reserved-0x1E", "reserved-0x1F", "reserved-0x20", "reserved-0x21", "reserved-0x22", "reserved-0x23", "reserved-0x24", "#,##0_);(#,##0)", "#,##0_);[Red](#,##0)", "#,##0.00_);(#,##0.00)", "#,##0.00_);[Red](#,##0.00)", "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)", "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)", "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)", "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)", "mm:ss", "[h]:mm:ss", "mm:ss.0", "##0.0E+0", "@"};
​

注意:设定有格式的值的时候一定要使用相对应的java类型,比如日期的就用Date,小数的用Double,否则会出现设置完以后单元格格式是对的,但是值是字符的情况(单击一下就变啦)。



版权声明:本文为qq_42002393原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。