当前位置: 首页 > wzjs >正文

wordpress个人博客模板下载win7系统优化

wordpress个人博客模板下载,win7系统优化,做网站广告收入,网站建设需求书模板EasyExcel使用导出模版后在CellWriteHandler的afterCellDispose方法设置 CellStyle失效问题解决方法 问题描述:excel 模版塞入数据后,需要设置单元格的个性化设置时失效,本文以设置数据格式为例(设置列的数据展示时需要加上千分位…

EasyExcel使用导出模版后在CellWriteHandler的afterCellDispose方法设置 CellStyle失效问题解决方法

问题描述:excel 模版塞入数据后,需要设置单元格的个性化设置时失效,本文以设置数据格式为例(设置列的数据展示时需要加上千分位分隔符)
在这里插入图片描述

1. 无效的解决方案:

在afterCellDispose中通过重新设置 cell 的 CellStyle 来设置 DataFormat,此时可以打印 cell的值和 DataFormat 发现与我们设置的一样,但是导出时就是没有生效。
注意:由于我使用了 easyexcel 中的横向填充数据,所以我将数据全部设置为 String 对应 Excel 中的 String,在下面代码中我删除了部分定制化的逻辑,仅仅只展示如何为本质是 Number的String数据加上DataFormat。

@Slf4j
public class SignAmtCustTypeMergeStrategy implements CellWriteHandler {@Overridepublic void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {if (cellType == CellType.STRING) {String stringCellValue = cell.getStringCellValue();if (StringUtils.isNotEmpty(stringCellValue)) {try {Workbook workbook = writeSheetHolder.getSheet().getWorkbook();CellStyle newStyle = workbook.createCellStyle();CellStyle originalStyle = cell.getCellStyle();if (originalStyle != null) {newStyle.cloneStyleFrom(originalStyle);}newStyle.setDataFormat(IntegerEnum.FOUR.getValue().shortValue());cell.setCellStyle(newStyle);BigDecimal bigDecimal = new BigDecimal(stringCellValue);cell.setCellValue(bigDecimal.doubleValue());} catch (Exception e){}}}}
}

2. 解决方案:

在执行writeCellData.setWriteCellStyle(writeCellStyle);前后可以对比下面的区别writeCellStyle
在这里插入图片描述

  • 具体的区别见下图:index=4代表的是BuiltinFormats的 "#,##0.00",格式。
    在这里插入图片描述在这里插入图片描述
@Slf4j
public class SignAmtCustTypeMergeStrategy implements CellWriteHandler {@Overridepublic void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {if (cellType == CellType.STRING) {String stringCellValue = cell.getStringCellValue();if (StringUtils.isNotEmpty(stringCellValue)) {try {BigDecimal bigDecimal = new BigDecimal(stringCellValue);cell.setCellValue(bigDecimal.doubleValue());if (!cellDataList.isEmpty()) {WriteCellData<?> writeCellData = cellDataList.get(0);WriteCellStyle writeCellStyle = new WriteCellStyle();DataFormatData dataFormatData = new DataFormatData();dataFormatData.setIndex(IntegerEnum.FOUR.getValue().shortValue());writeCellStyle.setDataFormatData(dataFormatData);writeCellData.setWriteCellStyle(writeCellStyle);}} catch (Exception e){}}}}
}

注意:如果你在执行前你的 cell 数据就是 Number 则不需要执行BigDecimal bigDecimal = new BigDecimal(stringCellValue); cell.setCellValue(bigDecimal.doubleValue());这两行逻辑,如果你想让 String 转 Number并设置DataFormat 则需要设置这段,具体原因还不太清楚,但是不设置DataFormat设置会失败。(有懂得友友可以评论下~~~)

http://www.dtcms.com/wzjs/122773.html

相关文章:

  • 泰国用什么网站做电商上海推广网站
  • 乐陵关键词seo网站推广seo教程
  • 祥安阁风水网是哪个公司做的网站网络营销就业前景和薪水
  • 连云港网站推广优化网站快速排名公司
  • 抖音代运营是做什么seo网站推广批发
  • 自己做的网站转成二维码十种营销方式
  • 做网站的那家公司好谷歌seo价格
  • 网站策划方案书的内容厦门seo外包平台
  • 怎么弄免费的php空间做网站美国站外推广网站
  • 相应式手机网站建设seo百度贴吧
  • 西安有一个电影他要拉投资做网站关键词歌词打印
  • 草妹妹影视网站建设中泰州网站建设优化
  • 成都网站建设易维达好seo关键词优化软件官网
  • 大型做网站的公司华为手机业务最新消息
  • 电商类网站怎么做 seo如何自建网站?
  • 破解空间网站百度2020新版下载
  • 南宁网站建设推广北京昨天出啥大事了
  • 网站建站网站设计公司关键词收录查询工具
  • 企业网站开发韵茵建站知乎小说推广对接平台
  • 成都用设计公司网站软文平台
  • 网站合同书最大免费发布平台
  • 做网站如何收益泉州搜索推广
  • 网站制作需要哪些微信小程序排名关键词优化
  • 洛阳生活网360网站排名优化
  • 做电影网站怎样赚钱吗营销软文范例大全300字
  • 怎么给网站做https关键词排名优化流程
  • 网站做淘宝客收入咋样小企业广告投放平台
  • python 做 网站2023年国际新闻大事件10条
  • 青岛美容化妆品外贸网站建设各个广告联盟的标识
  • 网站建设的构思资源网站快速优化排名