POI对Excel单元格的格式的设置参数.docx

POI对Excel单元格的格式的设置参数.docx

ID:59253140

大小:83.24 KB

页数:5页

时间:2020-09-08

POI对Excel单元格的格式的设置参数.docx_第1页
POI对Excel单元格的格式的设置参数.docx_第2页
POI对Excel单元格的格式的设置参数.docx_第3页
POI对Excel单元格的格式的设置参数.docx_第4页
POI对Excel单元格的格式的设置参数.docx_第5页
资源描述:

《POI对Excel单元格的格式的设置参数.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、最近在做导出Excel的功能封装,遇到了几个问题:·单元格宽度问题·数据不是数字格式问题·格式化了之后显示的不是数字而是######的问题(其实是因为单元格宽度不够导致的无法显示格式化之后的内容)下面先说说解决方法:1、单元格宽度问题这个问题有两个解决办法,一个是sheet.autoSizeColumn(1); sheet.autoSizeColumn(1,true);这种是自适应,第一参数是列号,从0开始,第二参数是是否考虑合并单元格。还有一种是固定的多宽,这个宽度值就交给自己去测试了:sheet.setColumnWidth(1,5000)这个第二个参数是宽度

2、,具体上面说了自己测试。5000就很宽了,看放什么了。2、数据不是数字格式问题这个看api的感觉应该是设置这么个参数,cell.setCellType(Cell.CELL_TYPE_NUMERIC);但是实际上这个参数设置了不起作用,后来发现自己放的值是String类型,所以不行,后来改为了Double.valueOf(str)方法,发现还是不行,换成Double.parseDouble(str)就行了,原来前面的方法返回的是Double,后面的是double,封装类型也不行。。。后来就统一把所有的参数设置为Object类型了,这样好转。3、格式化后显示###这里

3、是因为宽度不够啦,所以我这里主要说一下怎么格式化好了。其实Excel本身带了一部分的格式化,见下图如上图所示,Excel自带了一部分格式,而poi的DataFormat中也自带了这些格式并对应了short值,如下所示:“($#,##0_);[Red]($#,##0)” 6“($#,##0.00);($#,##0.00)” 7“($#,##0.00_);[Red]($#,##0.00)” 8保留为过国际化用 0×17–0×24“(#,##0_);(#,##0)” 0×25“(#,##0_);[Red](#,##0)” 0×26“(#,##0.00_);(#,##0.

4、00)” 0×27“(#,##0.00_);[Red](#,##0.00)” 0×28“_($*#,##0_);_($*(#,##0);_($*”-”_);_(@_)” 0×29“_(*#,##0.00_);_(*(#,##0.00);_(*”-”??_);_(@_)” 0x2a“_($*#,##0.00_);_($*(#,##0.00);_($*”-”??_);_(@_)” 0x2b“_($*#,##0.00_);_($*(#,##0.00);_($*”-”??_);_(@_)” 0x2c“@”–Thisistextformat 0×31使用下面

5、的代码来设置CellStylecellStyle=workBook.createCellStyle();DataFormatformat=workBook.createDataFormat();cellStyle.setDataFormat(format.getFormat("@"));cell.setCellStyle(cellStyle);接下来我会举例日期、小数、货币、百分比、中文大写、科学计数几种方式的格式化: 1、日期格式cell.setCellValue(newDate(2008,5,5));//setdateformatCellStylecellSt

6、yle=workBook.createCellStyle();DataFormatformat=workBook.createDataFormat();cellStyle.setDataFormat(format.getFormat("yyyy-MM-dd"));cell.setCellStyle(cellStyle);2、小数格式cell.setCellValue(1.2);CellStylecellStyle=workBook.createCellStyle();cellStyle.setDataFormat(DataFormat.getBuiltinForm

7、at("0.00"));cell.setCellStyle(cellStyle);3、货币格式cell.setCellValue(20000);CellStylecellStyle=workBook.createCellStyle();DataFormatformat=workBook.createDataFormat();cellStyle.setDataFormat(format.getFormat("¥#,##0"));cell.setCellStyle(cellStyle);4、百分比格式cell.setCellValue(20);CellStylecel

8、lStyl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。