强大的AsposeWords for java不仅支持创建表格,还支持合并单元格。今天就简明扼要记录下如何实现合并单元格。

大家可以完全套用本文提供的代码,只需要提供开始和结束的单元格即可实现合并,无需理解复杂的过程,真是简洁好用啊。

此代码来自官方网站,运行无误。

先看看合并的效果:

简单三步实现:

(1)设计一个模板,并确定要合并的开始和结束单元格

(2)调用合并单元格mergeCells()函数

(3)输出合并后word文档。

代码如下:

public static void main(String[] args) {

// TODO code application logic here

try{

Document doc = new Document("template.docx");

Table table = (Table) doc.getChild(NodeType.TABLE, 1, true); //第2个表格

// We want to merge the range of cells found in between these two cells.

Cell cellStartRange = table.getRows().get(1).getCells().get(0); //第2行第1列

Cell cellEndRange = table.getRows().get(2).getCells().get(0); //第3行第1列

// Merge all the cells between the two specified cells into one.

mergeCells(cellStartRange, cellEndRange);

cellStartRange = table.getRows().get(3).getCells().get(0); //第4行第1列

cellEndRange = table.getRows().get(5).getCells().get(0); //第6行第1列

// Merge all the cells between the two specified cells into one.

mergeCells(cellStartRange, cellEndRange);

doc.save(“out.docx”);

System.out.println(“Done”);

}

catch(Exception e) {

System.out.println(“error:”+e.getMessage() );

}

}

/**

* Merges the range of cells found between the two specified cells both

* horizontally and vertically. Can span over multiple rows.

* @param startCell

* @param endCell

*/

public static void mergeCells(Cell startCell, Cell endCell) {

Table parentTable = startCell.getParentRow().getParentTable();

// Find the row and cell indices for the start and end cell.

Point startCellPos = new Point(startCell.getParentRow().indexOf(startCell), parentTable.indexOf(startCell.getParentRow()));

Point endCellPos = new Point(endCell.getParentRow().indexOf(endCell), parentTable.indexOf(endCell.getParentRow()));

// Create the range of cells to be merged based off these indices. Inverse each index if the end cell if before the start cell.

Rectangle mergeRange = new Rectangle(Math.min(startCellPos.x, endCellPos.x), Math.min(startCellPos.y, endCellPos.y), Math.abs(endCellPos.x – startCellPos.x) + 1,

Math.abs(endCellPos.y – startCellPos.y) + 1);

for (Row row : parentTable.getRows()) {

for (Cell cell : row.getCells()) {

Point currentPos = new Point(row.indexOf(cell), parentTable.indexOf(row));

// Check if the current cell is inside our merge range then merge it.

if (mergeRange.contains(currentPos)) {

if (currentPos.x == mergeRange.x)

cell.getCellFormat().setHorizontalMerge(CellMerge.FIRST);

else

cell.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS);

if (currentPos.y == mergeRange.y)

cell.getCellFormat().setVerticalMerge(CellMerge.FIRST);

else

cell.getCellFormat().setVerticalMerge(CellMerge.PREVIOUS);

}

}

}

}

真的简单明了,没啥好说的。

java doc 合并单元格_AsposeWords操作表格合并单元格相关推荐

  1. jquery操作表格 合并单元格

    $('#table_2').mergeCell({cols: [7,8,9] ///参数为要合并的列,例如[0,5],表示第0和第5列});/** * 操作表格 合并单元格 行 * 2016年12月1 ...

  2. HTML5合并单元格居中,excel表格合并后居中的方法步骤

    Excel中具体该如何合并后进行合并呢?接下来是学习啦小编为大家带来的excel表格合并后居中的方法,供大家参考. excel表格合并后居中的方法 合并居中步骤1:在"开始"功能区 ...

  3. 合并报表软件怎么完成表格合并?

    今天跟大家分享一下合并报表软件怎么完成表格合并? 1.打开演示文件要求将两个表格文件数据合并到一起 2.首先我们点击下图选项 3.点击[汇总拆分] 4.选择[合并多表] 5.将[表头行数]设置为2 6 ...

  4. php 中如何设置单元格跨行,HTML表格中单元格跨行跨列

    HTML表格中单元格跨行跨列 对于标准的表格,每一行的单元格 数量是一样的.但在实际使用中,经常会遇到跨行跨列的表格,这个时候,每一行的数量就不一样了. 一.定义 所谓"跨行",是 ...

  5. 表头合并_多个Excel表格合并数据麻烦?试试Power Query轻松帮你解决

    Hi!大家好!欢迎来到小龙自修室! 又到了小龙分享时间!(今天的内容有点多,希望各位看官一定要看到最后!有惊喜) 上一篇文字小龙和大家一起制作了一个限定数据内容录入的电子表格,我的表格我做主! 表格做 ...

  6. java表格里面显示图片_jquery表格datagrid单元格显示图片及分页使用

    要想达到自定义显示表格框的目的比如显示图片,超链接,按钮的形式,只需要给列添加formatter属性即可,比如显示图片: columns: [[ { field: 'IName', title: '显 ...

  7. python xlwings库对于excel单元格的操作

    [高心星出品] 文章目录 前言 一.xlwings获取单元格的数据与格式 二.xlwings修改单元格的数据与格式 总结 前言 在上一篇文章传送门介绍了xlwings库对于单元格的简单操作,本篇文章继 ...

  8. C# Aspose Word表格合并、拆分、增删行、单元格操作

    合并单元格 //合并比较简单//横向 cell.CellFormat.HorizontalMerge = CellMerge.First; //开始合并单元格 cell.CellFormat.Hori ...

  9. 记一次用iview实现表格合并单元格的具体操作

    记一次用iview实现表格"合并"单元格的具体操作 最近做项目使用iview框架做后台管理系统,第一次使用iview遇到过很多问题,有些小坑也都在网上找到解决方案了,可作为一个通用 ...

最新文章

  1. 小白都能看懂最小生成树prime算法
  2. python的上下文管理
  3. Mac 完全卸载 Java
  4. HTML DOM Event 对象
  5. MongoDB 主从复制集搭建
  6. 项目进度管理:排列活动顺序
  7. Spark入门(十八)之多表关联
  8. React、PHP送书中奖名单,快看有你么!
  9. Python之线程(一)
  10. Dubbo-admin无法显示Group分组信息
  11. x-pack 功能介绍及配置传输层安全性(TLS / SSL)
  12. java语言的优缺点
  13. 如何建立强有力的人脉关系?
  14. AWS环境搭建(六):Linux上部署wowza,并配置ssl证书
  15. 西山小菜鸟之Scrapy学习笔记---爬取企查查网公司的裁判文书信息
  16. MATLAB基于Randon变换的图像倾斜校正算法及实现
  17. 我应该买Arduino还是Raspberry Pi?
  18. 数学建模|预测方法:灰色预测模型
  19. 全栈开发实战|​电子商务平台的设计与实现(Spring Boot + MyBatis + Thymeleaf)
  20. Scratch少儿编程英语教程

热门文章

  1. 西瓜微数独家解析: 干货管饱|帮你省XXX万广告费的KOL投放指南
  2. 计算机二级有没有年龄,九龄童通过全国计算机二级 创年龄最小纪录(图)_新闻中心_新浪福建_新浪网...
  3. php-java-net-python-爱心公益网站()计算机毕业设计程序
  4. mybatis lazyload
  5. No compiler is provided in this environment. Perhaps you are run
  6. 从 .NET 开发人员的角度理解 Excel 对象模型
  7. linux定时删除或者压缩日志文件
  8. 计算机系统运行太慢,如何解决电脑运行速度慢
  9. 【Oracle】一条SQL的一生
  10. iOS开发者证书介绍与总结