easypoi导出Word中,表格分页时上边框丢失

news2024/10/4 22:48:35

问题具体描述: 使用easypoi导出的Word中包含一个表格,表格行数较多,需要分页显示,在分页后第一行的上边框部分丢失,显示不美观,具体如下:
在这里插入图片描述

解决:
对表格中每行都添加一个上边框,具体如下:

        XWPFDocument document = WordExportUtil.exportWord07(templateFile.getAbsolutePath(),map);
		//以下为添加单元格上线框操作,应该可以再优化,因为此处是对每个单元格添加
        List<XWPFTable> tables = document.getTables();
        for (XWPFTable table : tables) {
            int numberOfRows = table.getNumberOfRows();
            for (int i = 0; i < numberOfRows; i++) {
                XWPFTableRow row = table.getRow(i);
                List<XWPFTableCell> tableCells = row.getTableCells();
                CTTcPr tcPr ;
                CTTcBorders ctTcBorders;
                CTBorder ctBorder;
                for (XWPFTableCell tableCell : tableCells) {
                    tcPr = tableCell.getCTTc().getTcPr();
                    if(tcPr==null)tcPr=tableCell.getCTTc().addNewTcPr();
                    ctTcBorders = tcPr.addNewTcBorders();
                    ctBorder = ctTcBorders.addNewTop();
                    ctBorder.setVal(STBorder.SINGLE);
                }
            }
        }

知识点:

  1. 创建表格时,为每个单元格设置上边框。这样可以确保每个单元格都有上边框线。
XWPFTable table = document.createTable(rows, cols);
for (int row = 0; row < rows; row++) {       
	for (int col = 0; col < cols; col++) {        
		XWPFTableCell cell = table.getRow(row).getCell(col);        
		CTTcPr cellProperties = cell.getCTTc().getTcPr();        
		if (cellProperties == null) {            
			cellProperties =cell.getCTTc().addNewTcPr(); 
		}        
		CTTcBorders borders = cellProperties.addNewTcBorders();        
		CTBorder topBorder = borders.addNewTop();   
		topBorder.setVal(STBorder.SINGLE);    
	}
}

上述代码使用XWPFTable创建表格,并为每个单元格设置上边框线。
2. 当表格分页时,检查当前页的最后一行是否位于表格的最后一行。如果是,则在表格的下方添加一个空行,并为该行的每个单元格设置上边框

XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.addBreak(BreakType.PAGE);
if (isLastRowInTable(pageLastRow, table)) {    
	XWPFTableRow emptyRow = table.createRow();    
	for (int col = 0; col < cols; col++) {        
		XWPFTableCell cell = emptyRow.getCell(col);        
		CTTcPr cellProperties = cell.getCTTc().getTcPr();        
		if (cellProperties == null) {            
			cellProperties = cell.getCTTc().addNewTcPr();        
		}        
		CTTcBorders borders = cellProperties.addNewTcBorders();        
		CTBorder topBorder = borders.addNewTop();        
		topBorder.setVal(STBorder.SINGLE);    
	}
}

上述代码使用XWPFParagraphXWPFRun创建一个新段落,并在段落中添加分页符(addBreak(BreakType.PAGE))。然后,检查当前页的最后一行是否是表格的最后一行,如果是,则在表格下方添加一个空行,并为该行的每个单元格设置上边框线。通过这两个步骤,您可以确保在分页时不丢失上边框。请根据您的具体需求和代码结构进行相应的调整和集成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1412377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习 | 深入探索Numpy的高性能计算能力

目录 初识numpy numpy基本操作 数组的基本操作 ndarray运算 数组间运算 矩阵 初识numpy Numpy&#xff08;Numerical Python&#xff09;是一个开源的Python科学计算库&#xff0c;用于快速处理任意维度的数组。Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务&…

万字干货教你如何保证业务数据全流程安全

云布道师 引言&#xff1a;本文内容整理自【弹性计算技术公开课——ECS 安全季】中阿里云弹性计算技术专家陈怀可带来的课程《如何保证业务数据的全流程安全》。 数据安全的基本概念 首先&#xff0c;来看一下数据安全的基本概念。 用户的云上数据安全是用户的生命线&#x…

HarmonyOS 鸿蒙应用开发( 六、实现自定义弹窗CustomDialog)

自定义弹窗&#xff08;CustomDialog&#xff09;可用于广告、中奖、警告、软件更新等与用户交互响应操作。开发者可以通过CustomDialogController类显示自定义弹窗。具体用法请参考自定义弹窗。 在应用的使用和开发中&#xff0c;弹窗是一个很常见的场景&#xff0c;自定义弹窗…

PyTorch 添加 C++ 拓展

参考内容&#xff1a;pytorch添加C拓展简单实战编写及基本功能测试 文章目录 第一步&#xff1a;编写 C 模块test.htest.cpp 第二步&#xff1a;编写 setup.py第三步&#xff1a;安装 C 模块第四步&#xff1a;验证安装第五步&#xff1a;C 模块使用test_cpp1.pytest_cpp2.py 运…

如何使用preact开始一个前端项目?

本篇文章对于preact不做过深介绍&#xff0c;仅仅介绍其基础的使用方法。使用Preact&#xff0c;我们可以通过组装组件和元素的树来创建用户界面。组件是返回其树应该输出的内容的描述的函数或类。这些描述通常是用JSX&#xff08;如下所示&#xff09;或HTML编写的&#xff0c…

CSS之粘性定位

让我为大家介绍一下粘性定位吧&#xff01; 大家应该都了解过绝对定位&#xff0c;它是相对于父级定位 那么粘性定位相对于谁呢&#xff1f; 它相对于overflow:hidden; 如果没找到就会跟fixed固定定位一样&#xff0c;相对于视口 <!DOCTYPE html> <html lang"en…

地图在游戏中的应用案例:王者荣耀

腾讯位置服务&#xff0c;作为国内地图导航的领头羊&#xff0c;在各行业中应用广泛&#xff0c;包括&#xff1a;网约车、智能物流、车用地图、智能穿戴、智能景区、运输安全监控、金融地图、运动健康、房产服务、智慧交通、时空大数据慧眼、专网地图等等。 腾讯地图与其他竞…

视频监控方案设计:EasyCVR视频智能监管系统方案技术特点与应用

随着科技的发展&#xff0c;视频监控平台在各个领域的应用越来越广泛。然而&#xff0c;当前的视频监控平台仍存在一些问题&#xff0c;如视频质量不高、监控范围有限、智能化程度不够等。这些问题不仅影响了监控效果&#xff0c;也制约了视频监控平台的发展。 为了解决这些问…

分享几种常见的OCR图形识别API接口

VIN识别 支持对车辆挡风玻璃处和行驶证车架号码进行识别。 银行卡识别 识别出该卡的银行卡号、所属银行、卡片类型以及银行邮编等信息。 通用文字识别 自动提取及快速识别出图像中文字内容&#xff0c;适用于多场景图像文字识别。 身份证识别 识别及提取身份证正反面所有字段…

EG-2102CB 表面声波(SAW)振荡器

表面声波&#xff08;SAW&#xff09;振蒎器&#xff0c;简称声表晶振&#xff0c;其频率范围非常广泛&#xff0c;可实现从100MHz到700MHz的精度频率输出。其标准工作电源电压为3.3V&#xff0c;具有高稳定性。输出特性稳定&#xff0c;具有低抖动、高精度、高线性等优点。其输…

ChatGPT 和文心一言 | 两大AI助手哪个更胜一筹

欢迎来到英杰社区&#xff1a; https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区&#xff1a; https://bbs.csdn.net/topics/617897397 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff…

您有一份OpenHarmony开发者论坛2023年度总结,请查收~

2023年11月&#xff0c;OpenHarmony开发者论坛1.0版本正式上线。感谢各位开发者对OpenHarmony的大力支持和热爱&#xff0c;成为OpenHarmony开发者论坛的第一批体验用户&#xff0c;并迅速在论坛开启了OpenHarmony技术交流。 通过开发者们在论坛进行提问、答疑、分享技术文章、…

Flask 之旅 (二):表单

背景 上一篇帖子我们使用 Flask 创建了最基本的 web 服务。使用 bootstrap 对页面进行装点&#xff0c;使用 JQuery Ajax 实现了在页面上实时显示 log 的功能。趁着周末&#xff0c;我继续开始学习更多的东西以满足这个 web 服务的需求。 模板继承 之前我们有了首页&#xf…

如何使用Docker安装Spug并实现远程访问本地运维管理界面

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、文件…

算法基础学习|离散化与区间合并

位运算 代码模板 求n的第k位数字: n >> k & 1 返回n的最后一位1&#xff1a;lowbit(n) n & -n 题目&#xff1a;二进制中1的个数 题目 给定一个长度为 的数列&#xff0c;请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 。 第…

kubeSphere DevOps自定义容器 指定nodejs版本

✨✨✨✨✨✨ &#x1f380;前言&#x1f381;基于内置镜像构建&#x1f381;把镜像添加基础容器中&#x1f381;检查容器是否配置成功&#x1f381;不生效的原因排查&#x1f381;按步骤执行如下命令 &#x1f380;前言 由于我本地的开发环境node是16.18.1,而自带容器node的版…

体验华为云对话机器人服务 CBS

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、开通…

【虚拟化 VS 容器化】

目录 1. 虚拟化1.1什么是虚拟化&#xff1f;1.2虚拟化的特点1.3虚拟化主流技术1.4虚拟化的应用场景 2. 容器化2.1什么是容器化&#xff1f;2.2容器化的特点2.3容器化主流技术2.4容器化的应用场景 3. 虚拟化VS容器化3.1图解区别3.2架构区别3.3表式区别 4. 虚拟化的发展趋势参考链…

MSTP协议

目录 MSTP 基本原则 MSTP术语 BPDU变化 三种生成树的比较 MSTP MSTP&#xff08;802.1s&#xff09;多生成树。 多生成树(MSTP)解决&#xff1a; &#xff08;1&#xff09;去掉环 &#xff08;2&#xff09;负载均衡&#xff08;重点&#xff09; &#xff08;3&#xf…

本地Vscode使用SSH连接Linux虚拟机循环输入密码,无法登陆

今天在工作的时候没有在本地关闭Vscode的前提下&#xff0c;重启了虚拟机后&#xff0c;发现ssh连接不上了&#xff0c;症状就是反复输入密码就是进不去系统&#xff0c;查了很多网上的教程都没啥用&#xff1b; 最后就一招彻底解决问题&#xff1a; 第一步&#xff1a;打开虚…