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

easypoi模板导出word多页导出加强版

说明

上一篇文章提到多页导出,但是后边发现一个问题,如果用同一个模板导出多页内容,我们去获取多页内容的时候,会发现全部都一样,举个例子:

XWPFDocument document = WordExportUtil.exportWord07(outputUrl, maps);
List<XWPFTable> tables = document.getTables();
List<XWPFParagraph> paragraphs = document.getParagraphs();

通过上边的代码,不管获取tables 还是paragraphs,集合里边的内容都是一样的,而且表格只有一张,即使你导出的时候多页都有表格,但是代码获取的时候就只有一张表。

另一个问题,就是,到处之后会莫名多出一个空白页。

在这里插入图片描述

解决问题

因为获取不到除第一页的其他页内容,那么照这个方法就没办法了,那么只能转变思路,导出多页,那么就让多页数据在导出的时候独立起来,也就是说我们创建出多个XWPFDocument,最后把这些XWPFDocument合并起来,不再使用前一篇文章提到的官方方法exportWord07(String url, List<Map<String, Object>> list)了,这样不仅可以解决多页内容获取不到的问题,还能解决另一个问题(导出的word总是多出一页空白页)。

具体操作

创建工具类(参考文章):

import org.apache.poi.xwpf.usermodel.Document;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;
import org.apache.xmlbeans.XmlOptions;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody;
import org.springframework.util.CollectionUtils;import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** WordUtils** @author ZENG.XIAO.YAN* @version 1.0* @Date 2019-09-20*/
public final class WordUtils {/*** word文件合并* @param wordList* @return* @throws Exception*/public static  XWPFDocument mergeWord(List<XWPFDocument> wordList) throws Exception{if (CollectionUtils.isEmpty(wordList)) {throw  new RuntimeException

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 5 分钟 Stable Diffusion 本地安装指南
  • Android14 蓝牙设备类型修改
  • 本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程
  • 根据状态的不同,显示不同的背景颜色
  • 数据库学习
  • 动手实现基于Reactor模型的高并发Web服务器(一):epoll+多线程版本
  • 制作docker镜像
  • 打卡51天------图论(深搜/广搜应用题)
  • OpenCV图像滤波(Image Filtering)常用函数及其用法详解
  • CART决策树-基尼指数(全网最详解)
  • 克服编程学习中的挫折感:从心态到策略的全方位指南
  • Jenkins汉化配置详解
  • Maven继承和聚合特性
  • docker部署nginx--(部署静态文件和服务)
  • 【分布式系统】关于主流的几款分布式链路追踪工具
  • Brief introduction of how to 'Call, Apply and Bind'
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • hadoop集群管理系统搭建规划说明
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • java取消线程实例
  • js中的正则表达式入门
  • laravel with 查询列表限制条数
  • Material Design
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 多线程 start 和 run 方法到底有什么区别?
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 记录:CentOS7.2配置LNMP环境记录
  • 我建了一个叫Hello World的项目
  • 中文输入法与React文本输入框的问题与解决方案
  • 回归生活:清理微信公众号
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #数据结构 笔记一
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (1)(1.13) SiK无线电高级配置(五)
  • (C++)八皇后问题
  • (day 12)JavaScript学习笔记(数组3)
  • (Oracle)SQL优化技巧(一):分页查询
  • (poj1.2.1)1970(筛选法模拟)
  • (不用互三)AI绘画工具应该如何选择
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转)3D模板阴影原理
  • ***详解账号泄露:全球约1亿用户已泄露
  • .FileZilla的使用和主动模式被动模式介绍
  • .net core 6 集成和使用 mongodb
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • /etc/sudoer文件配置简析