HSSFDataFormat大全

来源:互联网 发布:nxlog windows 编辑:程序博客网 时间:2024/05/16 10:37

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
@

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

http://javacrazyer.iteye.com/blog/894850

POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写

    博客分类:
  • 各类文件操作/IO流
Excel 

再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到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);

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