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

easypoi 实现word模板导出

特此非常致谢:easypoi实现word模板

基础的可以参考上文;

但是我的需求有一点点不一样。

这是我的模板:就是我的t.imgs 是个list 但是很难过的是easy poi 我弄了一天,我都没有弄出来嵌套list循环怎么输出显示,更难过的是我的imgs list  还是要显示图片。。。。。

 我尝试过各种办法之后,我只能进行了重写。。。。。

我下面的代码 仅供参考,如果有大神有更好更直接的办法的话,欢迎留下方式!!感恩的心!

蓝色部分是我调用源码的部分,先进行了基础的模板渲染,保证其他字段都没有问题的情况下。

然后我把生成的document 再拿来重新的赋值。

重写的源码部分:(我研究了大概的流程)

//由于我的方法是static 的 ,所以我在接下来这部分都加了static 直接调用了。
private static void parseThisRow(List<XWPFTableCell> cells, XWPFTableRow row,Map<String, Object> map) throws Exception {for(XWPFTableCell cell : cells) {parseAllParagraph(cell,cell.getParagraphs(),  row, map);}}private static void parseAllParagraph(XWPFTableCell cell,List<XWPFParagraph> paragraphs, XWPFTableRow row,Map<String, Object> map) throws Exception {int findex = 0 ;for(int i = 0; i < paragraphs.size(); ++i) {XWPFParagraph paragraph = (XWPFParagraph)paragraphs.get(i);List list = (List) PoiPublicUtil.getParamsValue("alarms", map);if (paragraph.getText().indexOf("[") == 0 && paragraph.getText().indexOf("]") == (paragraph.getText().length() -1)) { parseThisParagraph(cell,paragraph, (Map<String, Object>)list.get(findex));findex++;}}}private static  void parseThisParagraph(XWPFTableCell cell,XWPFParagraph paragraph, Map<String, Object> map) throws Exception {XWPFRun currentRun = null;String currentText = "";Boolean isfinde = false;List<Integer> runIndex = new ArrayList();
//get(0) 的原因是:我发现之后的run 都是换行符 所以我只拿第一部分了。changeValues(paragraph, paragraph.getRuns().get(0), currentText, (List<ImageEntity>)map.get("imgs"));}private static  void changeValues(XWPFParagraph paragraph, XWPFRun currentRun, String currentText, List<ImageEntity> imgList) throws Exception {currentRun.setText("", 0);imgList.forEach((image->{ExcelMapParse.addAnImage(image,currentRun);currentRun.addTab();currentRun.addBreak();}));}

只是初步实现了这个结果。。。。

但是可能会隐藏着很多问题。。。

今天忙乎了一下午 百度了很久。。。

deepseek 也问了。。官网源码倒是没去问。我也没找到呐。。。。。

可能是我太菜了。。。。

跪求各位大神多多帮忙。

相关文章:

  • leetcode-哈希表
  • 本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比
  • 紧急救援手册:当系统弹出“无法启动此程序,因为计算机中丢失DLL“时该怎么做?
  • HSTL详解
  • Android Cordova 开发 - Cordova 快速入门(Cordova 环境配置、Cordova 第一个应用程序)
  • 论文精读:大规模MIMO波束选择问题的量子计算解决方案
  • QtDesigner入门
  • FFCV性能优化——快速加载大规模图像数据训练
  • Maven 项目中引入本地 JAR 包
  • 软考软件设计师30天备考指南
  • 【k8s系列7-更新中】kubeadm搭建Kubernetes高可用集群-三主两从
  • Kafka 主题设计与数据接入机制
  • AI健康小屋:解锁健康管理新密码
  • 【特殊场景应对6】频繁跳槽:行业特性与稳定性危机的解释边界
  • C++手撕STL-其四
  • 使用Python将YOLO的XML标注文件转换为TXT文件格式
  • Sentinel源码—9.限流算法的实现对比二
  • React SSR + Redux 导致的 Hydration 报错踩坑记录与修复方案
  • 【leetcode】3524 求出数组的X值1
  • jspm基于Java的电影购票系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 稀土管制难倒特斯拉人形机器人“擎天柱”,马斯克:“正与中国协商”
  • 巴勒斯坦民族权力机构主席:哈马斯必须移交武器
  • 厦门国贸去年营收约3544亿元,净利润同比减少67.3%
  • 对话地铁读书人|媒体人Echo:读书使人远离“班味”
  • 《哪吒2》再次延映至五月底,春节档影片仍有竞争力
  • 夜读丨一位医生0点后的朋友圈