【JAVA基础】在Word中合并单元格时删除重复值
程序环境:
方法1:手动引入。将 Free Spire.Doc for Java 下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序
方法2: 如果您想通过 Maven 安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories><repository><id>com.e-iceblue</id><url>https://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories>
<dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>5.2.0</version></dependency>
</dependencies>
具体步骤:
- 创建Document类的对象并使用 Document.loadFromFile() 方法加载示例文档。
- 用 Document.getSections() 方法获取节集合,然后使用 SectionCollection.get() 方法获取特定节。
- 用 Section.getTables() 方法获取表集合,然后使用 TableCollection.get() 方法获取所需的表。
- 调用 mergeCell(Table table, boolean isHorizontalMerge, int index, int start, int end) 方法垂直或水平合并表格单元格。该方法将判断要合并的单元格是否具有相同的值,并在合并后的单元格中只保留一个值。
- 使用 Document.saveToFile() 方法保存文档。
完整代码:
【Java】import com.spire.doc.*;public class RemoveDuplicateValues {public static void main(String[] args) throws Exception {//创建Document类的对象并加载示例文档。Document document = new Document();document.loadFromFile("水果信息.docx");//获取第一节Section section = document.getSections().get(0);//获取第一个表格Table table = section.getTables().get(0);//调用mergeCell()方法纵向合并单元格mergeCell(table, false, 0, 1, 3);//调用mergeCell()方法横向合并单元格mergeCell(table, true, 0, 0, 1);//保存文档document.saveToFile("输出文档.docx",FileFormat.Docx_2013);}//自定义合并的 Cell() 方法以在合并单元格时删除重复值public static void mergeCell(Table table, boolean isHorizontalMerge, int index, int start, int end) {if (isHorizontalMerge) {//从表格获取单元格TableCell firstCell = table.get(index, start);//调用 getCellText() 方法获取单元格的文本String firstCellText = getCellText(firstCell);for (int i = start + 1; i <= end; i++) {TableCell cell1 = table.get(index, i);//检查文本是否与第一个单元格相同 if (firstCellText.equals(getCellText(cell1))) {//如果是,清除单元格中的所有段落cell1.getParagraphs().clear();}}//横向合并单元格table.applyHorizontalMerge(index, start, end);}else {TableCell firstCell = table.get(start, index);String firstCellText = getCellText(firstCell);for (int i = start + 1; i <= end; i++) {TableCell cell1 = table.get(i, index);if (firstCellText.equals(getCellText(cell1))) {cell1.getParagraphs().clear();}}//纵向合并单元格table.applyVerticalMerge(index, start, end);}}public static String getCellText(TableCell cell) {StringBuilder text = new StringBuilder();//遍历单元格中的段落for (int i = 0; i < cell.getParagraphs().getCount(); i++) {//获取每个段落的文本并将其附加到 StringBuildertext.append(cell.getParagraphs().get(i).getText().trim());}return text.toString();}
}
效果图:
【JAVA基础】在Word中合并单元格时删除重复值相关推荐
- Java 在Word中合并单元格时删除重复值
程序环境: 方法1:手动引入.将 Free Spire.Doc for Java下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的ja ...
- 20180227:关于HTML中table标签中合并单元格时遇到的问题
今天在初次学习HTML的时候,便在table标签的使用上遇到了个问题,就是在合并单元格时发现单元格的合并显示之后并没有按自己所想的那样显示,具体问题也描述不出来,通过代码和实例来记录一下这个烦人的问题 ...
- java poi 填充word(合并单元格,添加图片,设置字号)
/** * 查询Word报表** @param* @return*/ @RequestMapping(value = "/wordQuery") public BaseRespon ...
- 使用POI创建word表格合并单元格兼容wps
poi创建word表格合并单元格代码如下: /** * @Description: 跨列合并 */ public void mergeCellsHorizontal(XWPFTable table, ...
- python合并word表格单元格_python docx模块读取word表格遇到合并单元格时的处理
python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表 遇到合并单元格时的处理 通 ...
- 在EXCEL表格中经常会遇到有合并单元格时,汇总计算的公式无法直接下拉自动填充计算,掌握这个小技巧一键汇总
在EXCEL表格中经常会遇到有合并单元格时,汇总计算的公式无法直接下拉自动填充计算,掌握这个小技巧一键汇总 目录 在EXCEL表格中经常会遇到有合并单元格时,汇总计算的公式无法直接下拉自动填充计算,掌 ...
- POI导出word中cell单元格内换行问题
利用POI导出word时,换行符"\r\n"无法被正常识别,利用以下方式进行了word中cell单元格内的换行问题. 首先在需要换行字符串的对应位置处插入相应标记符,然后在设置wo ...
- Excel 中合并单元格的快捷键(ALT+H+M+M)
要在 excel 中合并单元格,首先选择要合并到一个单元格中的单元格,然后可以使用从ALT开始的快捷键,然后同时按H+M+M. 一旦我们使用快捷键执行该函数,它将弹出一条警告消息"合并单元格 ...
- 如何在Excel中选择单元格时高亮显示行和列
在Excel中,选择单元格时高亮显示行和列的方法如下: 选择要高亮显示的单元格 在"开始"选项卡中,单击"格式"命令按钮 在弹出的菜单中选择"行和列& ...
最新文章
- python集合用法详解(创建、添加(add()、update())、删除(remove()、discard()、pop())、查找(in、not in))
- Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决
- 格灵深瞳开盘破发,市值73亿,创始人曾是谷歌眼镜创始成员
- ssm中shiro的使用
- IOSday05 UIScrollView使用
- Windows优化大师的一点研究
- 深度学习:卷积神经网络
- [原] XAF How to implement a custom attribute to customize the Application Model
- 如何高效的比较两个 Object 对象是否相等?
- 牛客网--2019校招--瞌睡
- 用python设计数独的心得体会_python实现数独算法实例
- IT桔子分布式项目1
- Consumer配置
- Windows 7中打开IIS的远程访问
- Leetcode: Pascal's Triangle II
- Introduction to Computer Networking学习笔记(二十一):TCP拥塞控制-基础、公平分配带宽准则
- 关于appium环境搭建
- C++中begin()函数的含参数的使用
- 运算放大器(OPA)超详细参数讲解-运放---以及8个型号的运算放大器分析对比
- 简单一招能让你的浏览器下载速度提升几十倍,从此弃用IDM等下载器