模板导出Excel

filemanagement - ExcelExportOfTemplateUtil.java L633

 String filePath = rootPath + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + filename;
TemplateExportParams params = new TemplateExportParams(filePath, true);
File tempFile = new File(filePath);if (!tempFile.exists()) {tempFile.createNewFile();
}
TemplateExportParams params = new TemplateExportParams(filePath, true);Map<String, Object> map = new HashMap<String, Object>();
BlApply blApply = new BlApply();
blApply.setShipper("shipper");
blApply.setShipperAddress("shipperAddress");
// 原生 easypoi 不支持"\n"或者"\r\n"换行符
blApply.setShipper(blApply.getShipper() + "\n" + blApply.getShipperAddress());
Map<String, Object> obj = JSON.parseObject(JSONObject.toJSONString(blApply), Map.class);
map.put("obj", obj);
ExcelExportUtil.exportExcel(params, map);

疑似异常

  1. 遇到问题已经过去一个月,当时的异常好像是 java.lang.ClassCastException ****
  2. 也可能没有异常,只是没有换行而已

重写源码

  1. easypoi版本 4.4.0
  2. 尝试升级版本,也不支持环境

重写源码

  1. ExcelExportOfTemplateUtil.setValueForCellByMap
// 源码内容
/*** 给每个Cell通过解析方式set值** @param cell* @param map*/
private void setValueForCellByMap(Cell cell, Map<String, Object> map) throws Exception {...if (obj instanceof ImageEntity) {...} else if (isNumber && StringUtils.isNotBlank(obj.toString())) {cell.setCellValue(Double.parseDouble(obj.toString()));} else {// TODO 2022-06-13 重写这部分即可(不支持换行符)cell.setCellValue(valueStr);}
}
  1. 重写方法
private void setValueForCellByMap(Cell cell, Map<String, Object> map, Workbook workbook) throws Exception {...if (obj instanceof ImageEntity) {...} else if (isNumber && StringUtils.isNotBlank(obj.toString())) {cell.setCellValue(Double.parseDouble(obj.toString()));} else {String valueStr = obj.toString();if (StringUtils.isNotBlank(valueStr) && valueStr.indexOf("\n") >= 0) {// 修改源代码(支持回车换行)cell.setCellValue(new XSSFRichTextString(valueStr));CellStyle cellStyle = workbook.createCellStyle();// 也是支持回车换行符(可能不用设置这部分也可以)cellStyle.setWrapText(true);cell.setCellStyle(cellStyle);} else {cell.setCellValue(valueStr);}}
}

easypoi不支持换行符相关推荐

  1. 在Visual Studio Code中查找并​​替换为换行符

    本文翻译自:Find and replace with a newline in Visual Studio Code I am trying out the new Microsoft Visual ...

  2. 记事本linux命令换行符,Windows 10版记事本应用终于支持Linux/Mac换行符 排版不再辣眼睛...

    记事本(Notepad)是微软 Windows 操作系统中相当经典的一款工具,其在最新的 Windows 10 操作系统中也得到了保留,命运比被 Photos 和 Paint 3D 取代的画图(MsP ...

  3. excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库

    Anki真的是个好用到不想推荐给朋友的软件,本人最近准备刷个新题库,找了一上午找不到原来教我EXCEL导入anki的网页,为了防止我自己过段时间又忘了应该怎么导入,我写了这个教程,写都写了,就顺手发出 ...

  4. linux 换行符_「linux」libevent demo详细分析(对比epoll)

    libevent默认情况下是单线程,每个线程有且仅有一个event_base,对应一个struct event_base结构体,以及赋予其上的事件管理器,用来安排托管给它的一系列的事件. 当有一个事件 ...

  5. mac txt 换行符_推荐两款免费的网页代码编辑器(Win和Mac系统)

    大家好,我们在修改PHP代码的时候,尽量不要使用系统自带的文本编辑器,更不能使用Word之类的字处理软件,应该是用"代码编辑器" .下面这个视频教程是我之前做的,没在WordPre ...

  6. css 识别变量中的换行符_跟我一起全面了解一下CSS变量

    什么是css变量? CSS变量,即CSS variable.官方的名称是级联变量的CSS自定义属性,即CSS custom properties for cascading variables.类似于 ...

  7. 如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?

    本文翻译自:How to convert DOS/Windows newline (CRLF) to Unix newline (LF) in a Bash script? How can I pro ...

  8. 在TSQL中替换换行符

    我想替换(或删除)TSQL字符串中的换行符. 有任何想法吗? 明显的 REPLACE(@string, CHAR(13), '') 只是不会做... #1楼 要执行大多数人想要的操作,请创建一个不是实 ...

  9. 除非换行符在格式字符串中,否则为什么在调用后printf不会刷新?

    除非换行符在格式字符串中,否则为什么在调用后printf不会刷新? 这是POSIX行为吗? 每次如何立即使printf刷新? #1楼 stdout已缓冲,因此仅在换行符输出后输出. 要立即获得输出,请 ...

最新文章

  1. JMeter进阶系列01--JMeter二次开发
  2. 名词解释说明用英语怎么说_“用英语怎么说”译成How to say in English,典型的中式英语!...
  3. 用计算机控制检测实时温度,温度实时测量及控制系统.doc
  4. javascript淘宝主图放大镜功能
  5. 图深度学习-第2部分
  6. 【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据
  7. java smslib rxtx_短信猫java二次开发包源代码smslib-3.5.4.jar
  8. my log4crc
  9. 面向 Android* Jelly Bean 4.3 的英特尔® 凌动™ x86 映像安装指南 - 推荐
  10. 编译LTIB遇到的问题解决办法
  11. matlab的textscan,matlab中textscan函数的使用记录
  12. 一亿融资在一家芯片初创公司可以烧多久?
  13. 嵌入式系统开发笔记6:CJ/T-188 水表协议解析1
  14. Scrapy项目 - 数据简析 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
  15. Echarts 如何实现一张图现切换不同的X轴
  16. 几款软件界面模型设计工具
  17. WPCMS插件自动采集发布文章WordPress插件
  18. 《高难度谈话》你需要知道的高效沟通技巧
  19. C#实现汉字转拼音(包括生僻字)
  20. 外包三年准备跳槽了!

热门文章

  1. MySQL报错:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone
  2. word文档怎么转成jpg图片?简单的方法快来拿捏
  3. Linux----FFmpeg直播推流
  4. 【FOC控制】英飞凌TC264无刷驱动方案simplefoc移植(2)-SVPWM波实现
  5. 二、HBase集群安装与基础架构
  6. 034向量及反对称阵常用运算规则
  7. SPPnet学习笔记
  8. 有1000元,想存5年,可按以下5种办法存:(1)--次存5年期。(2)先存2年期,到期后将本息再存3年期。(3)先存3年期,到期后将本息再存2年期。
  9. 朴素贝叶斯算法的介绍
  10. Python模拟手机微博登录