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

相关文章

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安装常用语法 封装导出方

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio