记录贴:EasyPoi word导出问题一览

项目场景:

EasyPoi word导出


问题描述1

easypoi 模板导出 我直接在map的value输入空格或"",出来的是{{,两个左花括号,咋解决


解决方案:

exportMap.put("key", "\u00A0"); //空格

前端效果:在这里插入图片描述


其他无效解决方案:

  1. 无效解决方案1
    网上看到这种方案,也是我初次尝试方案,无效。
    在这里插入图片描述
exportMap.put("key", " "); //空格

exportMap.put("key", "            "); //空格
  1. 无效解决方案2
    在这里插入图片描述
exportMap.put("key", "&NULL&"); //空格
  1. 无效解决方案3
    本来想着通过前端处理,比如后端值为空返回前端值为-,然后用三元运算符处理,把-转为空或者空格。后面发现尝试失败。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述


问题描述2

easypoi 模板导出 map的value有值但是永远只输出{{key}},不输出具体的值,咋解决

前端效果如下:(导出时具体值不填充word文档)
在这里插入图片描述


解决方案:

1-注意{}是英文符号,不是中文符号。
2-不要有空格
在这里插入图片描述


上述方案无效怎么办:

我在导出word文档时候碰到了这个问题,{}是英文但是还是无效,百思不得其解。{{key}}是我赋值粘贴到文档中的,后面我尝试删除手写发现就生效了,对比如下:

导出模板:
在这里插入图片描述
导出效果:
在这里插入图片描述
上面可以看出{{key}}都是英文符号,但是有的能填充值,有的不能。
这是因为格式的问题,只需要把能填充值的{{key}}复制覆盖掉无效的{{key}}即可,至于为什么会产生这个问题,可能是你复制粘贴时候产生的,但是肉眼是看不出来的。


补充:

有一个很有意思的现象,在word中英文输入法状态下输入单引号时候再
【ctrl+z】会让单引号变化格式,这个在用三元运算符的时候需要注意:
在这里插入图片描述

这个现象如下
在这里插入图片描述

先在’a’后输入单引号
在这里插入图片描述

然后【ctrl+z】
在这里插入图片描述
可以看出两者不同,然后再一次【ctrl+z】,才会恢复原样。

在这里插入图片描述

这个现象还可以这么尝试,英文状态下输入单引号和中文状态下的单引号很像,感觉是同样格式。(先在’a’后输入英文单引号,然后输入中文单引号,看下对比)
在这里插入图片描述
把中文输入的左单引号去掉,更容易对比
在这里插入图片描述
不知道为什么,大家word文档也是这样吗?
我在使用英文单引号时候只能打出单引号然后【ctrl+z】,感觉很麻烦。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
使用 EasyPoi 导出 Word 文档需要进行以下步骤: 1. 引入 EasyPoi 依赖 在 pom.xml 文件添加以下依赖: ```xml <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>5.2.0</version> </dependency> ``` 2. 创建模板 在 Word 文档创建一个需要填充数据的模板,可以使用 Word 编辑器创建一个包含标签的文档。标签可以在文档使用 ${} 表示。 例如,创建一个包含用户信息的模板,可以在 Word 文档添加以下内容: ``` 姓名:${name} 年龄:${age} ``` 3. 创建数据源 创建一个 Java 类,包含需要导出的数据,例如: ```java public class User { private String name; private int age; // 省略 getter 和 setter 方法 } ``` 4. 使用 EasyPoi 导出 Word 文档 在 Java 代码使用 EasyPoi 提供的 API 将数据填充到模板,并将生成的 Word 文档保存到本地磁盘。例如: ```java // 创建模板对象 XWPFTemplate template = XWPFTemplate.compile("template.docx").render(data); // 将数据填充到模板 Map<String, Object> data = new HashMap<>(); data.put("name", "张三"); data.put("age", 18); // 导出 Word 文档 try (FileOutputStream out = new FileOutputStream("output.docx")) { template.write(out); } template.close(); ``` 上述代码,XWPFTemplate.compile("template.docx") 表示创建一个模板对象,template.render(data) 表示将数据填充到模板,FileOutputStream("output.docx") 表示将生成的 Word 文档保存到本地磁盘。 以上就是使用 EasyPoi 导出 Word 文档的步骤。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值