0
点赞
收藏
分享

微信扫一扫

HSSFDataFormat大全

Star英 2023-07-03 阅读 185


poi 的HSSFDataFormat提供了两个方法

getBuiltinFormat(java.lang.String format)

getBuiltinFormat(short index)

getBuiltinFormat(short index)是一个静态函数,返回一个字符串

getBuiltinFormat(java.lang.String format) 它返回一个short

然后你设置HSSFCellStyle.setDataFormat()就是要接收这个short

 

static java.util.List<java.lang.String> getBuiltinFormats()

这里存储着poi内置的所有dataformat。 只有getBuiltinFormat传入的参数在这个列表里,你才能得到它在列表里的位置。然后format数据的时候就根据这个位置找format。

 

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
 @

==================


再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到POI设置EXCEL单元格格式为文本格式,剩下的设置小数、百分比、货币、日期、科学计数法和中文大写这些将在下面一一写出

以下将要介绍的每一种都会用到这三行中的变量

 

            HSSFWorkbook demoWorkBook = new HSSFWorkbook();   

            HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 Enterprises");   

            HSSFCell cell = demoSheet.createRow(0).createCell(0);

 

第一种:日期格式

 

            cell.setCellValue(new Date(2008,5,5));

            //set date format

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            HSSFDataFormat format= demoWorkBook.createDataFormat();

            cellStyle.setDataFormat(format.getFormat("yyyy年m月d日"));

            cell.setCellStyle(cellStyle);

 

第二种:保留两位小数格式

            cell.setCellValue(1.2);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));

            cell.setCellStyle(cellStyle);

 

这里与上面有所不同,用的是HSSFDataFormat.getBuiltinFormat()方法,之所以用这个,是因为0.00是Excel内嵌的格式,完整的Excel内嵌格式列表大家可以看这个窗口中的自定义列表:


 这里就不一一列出了

 

第三种:货币格式

 

            cell.setCellValue(20000);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            HSSFDataFormat format= demoWorkBook.createDataFormat();

            cellStyle.setDataFormat(format.getFormat("¥#,##0"));

            cell.setCellStyle(cellStyle);

 

第四种:百分比格式

 

            cell.setCellValue(20);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));

            cell.setCellStyle(cellStyle);

  此种情况跟第二种一样

 

第五种:中文大写格式

 

            cell.setCellValue(20000);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            HSSFDataFormat format= demoWorkBook.createDataFormat();

            cellStyle.setDataFormat(format.getFormat("[DbNum2][$-804]0"));

            cell.setCellStyle(cellStyle);

 

第六种:科学计数法格式

 

            cell.setCellValue(20000);

            HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();

            cellStyle.setDataFormat( HSSFDataFormat.getBuiltinFormat("0.00E+00"));

            cell.setCellStyle(cellStyle);

此种情况也与第二种情况一样


 

举报

相关推荐

0 条评论