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

2024-01-27 15:44

本文主要是介绍easypoi导出Word中,表格分页时上边框丢失,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题具体描述: 使用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))。然后,检查当前页的最后一行是否是表格的最后一行,如果是,则在表格下方添加一个空行,并为该行的每个单元格设置上边框线。通过这两个步骤,您可以确保在分页时不丢失上边框。请根据您的具体需求和代码结构进行相应的调整和集成。

这篇关于easypoi导出Word中,表格分页时上边框丢失的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/650706

相关文章

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方