easypoi不支持换行符
模板导出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);
疑似异常
- 遇到问题已经过去一个月,当时的异常好像是 java.lang.ClassCastException ****
- 也可能没有异常,只是没有换行而已
重写源码
- easypoi版本 4.4.0
- 尝试升级版本,也不支持环境
重写源码
- 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);}
}
- 重写方法
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不支持换行符相关推荐
- 在Visual Studio Code中查找并替换为换行符
本文翻译自:Find and replace with a newline in Visual Studio Code I am trying out the new Microsoft Visual ...
- 记事本linux命令换行符,Windows 10版记事本应用终于支持Linux/Mac换行符 排版不再辣眼睛...
记事本(Notepad)是微软 Windows 操作系统中相当经典的一款工具,其在最新的 Windows 10 操作系统中也得到了保留,命运比被 Photos 和 Paint 3D 取代的画图(MsP ...
- excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库
Anki真的是个好用到不想推荐给朋友的软件,本人最近准备刷个新题库,找了一上午找不到原来教我EXCEL导入anki的网页,为了防止我自己过段时间又忘了应该怎么导入,我写了这个教程,写都写了,就顺手发出 ...
- linux 换行符_「linux」libevent demo详细分析(对比epoll)
libevent默认情况下是单线程,每个线程有且仅有一个event_base,对应一个struct event_base结构体,以及赋予其上的事件管理器,用来安排托管给它的一系列的事件. 当有一个事件 ...
- mac txt 换行符_推荐两款免费的网页代码编辑器(Win和Mac系统)
大家好,我们在修改PHP代码的时候,尽量不要使用系统自带的文本编辑器,更不能使用Word之类的字处理软件,应该是用"代码编辑器" .下面这个视频教程是我之前做的,没在WordPre ...
- css 识别变量中的换行符_跟我一起全面了解一下CSS变量
什么是css变量? CSS变量,即CSS variable.官方的名称是级联变量的CSS自定义属性,即CSS custom properties for cascading variables.类似于 ...
- 如何在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 ...
- 在TSQL中替换换行符
我想替换(或删除)TSQL字符串中的换行符. 有任何想法吗? 明显的 REPLACE(@string, CHAR(13), '') 只是不会做... #1楼 要执行大多数人想要的操作,请创建一个不是实 ...
- 除非换行符在格式字符串中,否则为什么在调用后printf不会刷新?
除非换行符在格式字符串中,否则为什么在调用后printf不会刷新? 这是POSIX行为吗? 每次如何立即使printf刷新? #1楼 stdout已缓冲,因此仅在换行符输出后输出. 要立即获得输出,请 ...
最新文章
- JMeter进阶系列01--JMeter二次开发
- 名词解释说明用英语怎么说_“用英语怎么说”译成How to say in English,典型的中式英语!...
- 用计算机控制检测实时温度,温度实时测量及控制系统.doc
- javascript淘宝主图放大镜功能
- 图深度学习-第2部分
- 【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据
- java smslib rxtx_短信猫java二次开发包源代码smslib-3.5.4.jar
- my log4crc
- 面向 Android* Jelly Bean 4.3 的英特尔® 凌动™ x86 映像安装指南 - 推荐
- 编译LTIB遇到的问题解决办法
- matlab的textscan,matlab中textscan函数的使用记录
- 一亿融资在一家芯片初创公司可以烧多久?
- 嵌入式系统开发笔记6:CJ/T-188 水表协议解析1
- Scrapy项目 - 数据简析 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
- Echarts 如何实现一张图现切换不同的X轴
- 几款软件界面模型设计工具
- WPCMS插件自动采集发布文章WordPress插件
- 《高难度谈话》你需要知道的高效沟通技巧
- C#实现汉字转拼音(包括生僻字)
- 外包三年准备跳槽了!
热门文章
- MySQL报错:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
- word文档怎么转成jpg图片?简单的方法快来拿捏
- Linux----FFmpeg直播推流
- 【FOC控制】英飞凌TC264无刷驱动方案simplefoc移植(2)-SVPWM波实现
- 二、HBase集群安装与基础架构
- 034向量及反对称阵常用运算规则
- SPPnet学习笔记
- 有1000元,想存5年,可按以下5种办法存:(1)--次存5年期。(2)先存2年期,到期后将本息再存3年期。(3)先存3年期,到期后将本息再存2年期。
- 朴素贝叶斯算法的介绍
- Python模拟手机微博登录