网站大量收购独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
POI对Excel单元格的格式的设置参数

最近在做导出Excel的功能封装,遇到了几个问题: 单元格宽度问题 数据不是数字格式问题 格式化了之后显示的不是数字而是######的问题(其实是因为单元格宽度不够导致的无法显示格式化之后的内容) 下面先说说解决方法: 1、单元格宽度问题 这个问题有两个解决办法,一个是 sheet.autoSizeColumn(1);? sheet.autoSizeColumn(1, true); 这种是自适应,第一参数是列号,从0开始,第二参数是是否考虑合并单元格。 还有一种是固定的多宽,这个宽度值就交给自己去测试了: sheet.setColumnWidth(1, 5000) 这个第二个参数是宽度,具体上面说了自己测试。5000就很宽了,看放什么了。 2、数据不是数字格式问题 这个看api的感觉应该是设置这么个参数,cell.setCellType(Cell.CELL_TYPE_NUMERIC); 但是实际上这个参数设置了不起作用,后来发现自己放的值是String类型,所以不行,后来改为了Double.valueOf(str)方法,发现还是不行,换成Double.parseDouble(str)就行了,原来前面的方法返回的是Double,后面的是double,封装类型也不行。。。 后来就统一把所有的参数设置为Object类型了,这样好转。 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.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 “@” – This is text format? 0×31 使用下面的代码来设置 CellStyle cellStyle = workBook.createCellStyle(); DataFormat format = workBook.createDataFormat(); cellStyle.setDataFormat(format.getFormat(@)); cell.setCellStyle(cellStyle); 接下来我会举例日期、小数、货币、百分比、中文大写、科学计数几种方式的格式化: ?1、日期格式 cell.setCellValue(new Date(2008,5,5)); //set date format CellStyle cellStyle = workBook.createCellStyle(); DataFormat format= workBook.createDataFormat(); cellStyle.setDataFormat(format.getFormat(yyyy-MM-dd)); cell.setCellStyle(cellStyle); 2、小数格式 cell.setCellValue(1.2); CellStyle cellStyle = workBook.createCellStyle(); cellStyle.setDataFormat(DataFormat.getBuiltinFormat(0.00)); cell.setCellStyle(cellStyle); 3、货币格式 cell.setCellValue(20000); CellStyle cellStyle = workBook.createCellStyle(); DataFormat format= workBook.createDataFormat(); cellStyle.setDataFormat(format.getF

文档评论(0)

tiangou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档