NPOI word 中的单元格合并。网上有不少教程将单元格合并的,但是基本都是在创建的单元的时候就开始合并了。

现在我们来看下,如何在创建好的表格上再做合并动作。

NPOI 的XWPFTable的row提供了MergeCells这个功能,该功能可以实现单行的已存在的单元格的合并,和set gridspan值不一样的是,它不会创建出新的单元格。

但是XWPFTable没有合并多行的方法,这时候我们需要借助CT_Tc 也就是NPOI中表格单元格的另一种表示形式,这种形式可以让你设置单元格的属性(通过将docx解压开,在docx.xml中可以看到,这里不详说了)。

此时,我们给单元格加上Vmerge的属性就可以了。第一个单元格是restart,后面的是continue。

通过先合并多列,再合并行,我们就能达到合并一个区域的效果。

public static XWPFTableCell MYMergeCells(XWPFTable table, int fromCol, int toCol, int fromRow, int toRow){for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++){if (fromCol < toCol){table.GetRow(rowIndex).MergeCells(fromCol, toCol);}XWPFTableCell rowcell = table.GetRow(rowIndex).GetCell(fromCol);CT_Tc cttc = rowcell.GetCTTc();if (cttc.tcPr == null){cttc.AddNewTcPr();}if (rowIndex == fromRow){// The first merged cell is set with RESTART merge value  rowcell.GetCTTc().tcPr.AddNewVMerge().val = ST_Merge.restart;}else{// Cells which join (merge) the first one, are set with CONTINUE  rowcell.GetCTTc().tcPr.AddNewVMerge().val = ST_Merge.@continue;}}table.GetRow(fromRow).GetCell(fromCol).SetVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);table.GetRow(fromRow).GetCell(fromCol).Paragraphs[0].Alignment = ParagraphAlignment.CENTER;return table.GetRow(fromRow).GetCell(fromCol);}

示例代码如下,已测试通过。

包含单行合并,单列合并,多行多列合并。
NPOI合并单元格示例

NPOI word 合并单元格,合并一个区域相关推荐

  1. android excel合并单元格,合并单元格的同时保留所有数值

    作者:Excel Home 来源:<Excel实战技巧精粹> 发表于:2008年9月26日 合并单元格是用户在制作表格时常用的命令,它可以把多个单元格显示成一个单元格,起到美化的作用. 通 ...

  2. html js 合并单元格合并单元格,js合并table单元格实例

    这里展示js合并table的单元格,代码亲测可行 后台采用springmvc搭建 Record实体类public class Record { public String isp; public St ...

  3. html相同数据合并单元格合并单元格,基于JQuery实现相同内容合并单元格的代码...

    web前端开发的时候经常会遇到要做表单的页面或者做一些表格的效果如相同内容要同一个单元格里面显示,一般的方法是table里面在套table但是这种方法会增加页面的负担影响页面加载速度但是如果用DIV有 ...

  4. html相同数据合并单元格合并单元格,Javascript合并表格中具有相同内容单元格示例...

    效果图: HTML代码: 表格相同内容合并 合并前: a 1 2 3 4 5 a 1 2 3 4 6 a 2 3 3 4 b 3 4 6 7 b 3 5 6 7 cc 2 3 4 5 cc 2 3 5 ...

  5. 相同内容多个html如何合并单元格,合并具有相同内容HTML的单元格

    搞定了 使用PHP类来完成它.抱歉,法语变量名称 class jours { var $jour; var $horaire; var $nbr=0; } $lundi = new jours(); ...

  6. SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格、合并单元格)

    本编文章继SpringBoot+Poi-tl根据Word模板动态生成word(含动态行表格)文章之后 介绍Poi-tl导出word的延伸功能: 所需依赖以及word模板所属位置 见 SpringBoo ...

  7. bootstraptable合并标题_bootstrapTable 合并单元格

    /** * 合并单元格 * @param data 原始数据(在服务端完成排序) * @param fieldName 合并属性名称 * @param colspan 合并列 * @param tar ...

  8. hssfworkbook 单元格合并后宽度不生效_一起来学习Excel批量合并单元格的操作技巧...

    在我们日常工作中,利用Excel制作表格时,合并单元格是一个让人又爱又恨的东西,合并单元格后的数据处理会带来很多麻烦,比如求和.统计等计算工作(可查阅<让我们一起来干掉Excel合并单元格的那些 ...

  9. datagridview单元格合并居中_系统地学习Excel第17课,设置单元格格式

    上一篇:系统地学习Excel第16课,使用Excel的「替换」功能 本篇内容结构如下: 本章的知识体系 Excel工作表的整体外观由各个单元格的样式构成,单元格的样式外观在Excel的可选设置中主要包 ...

  10. python pptx 关于在ppt里插入表格,调整合并单元格的问题

    python pptx 关于在ppt里插入表格,调整合并单元格的问题 需求 找到合并了的单元格 思路 判断是否是合并单元格 合并位置的记录 合并 代码 需求 首先我这是为了从word里面将内容导到pp ...

最新文章

  1. Android菜鸟成长记4-button点击事件
  2. .net core ocelot 获取路由的mothed_Net Core微服务入门全纪录(四)Ocelot网关(上)
  3. Poj 1611 The Suspects
  4. 对acm icpc 的随笔——01
  5. Java多线程_阻塞队列
  6. python 定义字符串变量_Python变量和字符串详解
  7. Visual C# 2008+SQL Server 2005 数据库与网络开发--第13章 使用菜单和对话框
  8. 用ASP.NET向Javascript传递变量
  9. Oracle递归sql
  10. 计算机注册dll,电脑注册dll文件和ocx文件的具体方法与操作步骤
  11. 机械精度设计与检测|尺寸精度
  12. 卢松松大鱼号收入859元
  13. python主函数怎么写_python主方法怎么写
  14. 实验吧-杯酒人生(凯撒解密,维基利亚密码)
  15. Amigo 源码解读
  16. centos 虚拟机输入大小写混乱问题
  17. 艾滋hiv最新研究进展(2022年4月)
  18. sql语句查询经纬度范围 Oracle
  19. RGB 颜色透明16进制表示
  20. 谱分析——连续傅里叶变换

热门文章

  1. mysql服务正在启动或停止中请稍后片刻再试一次,卸载重装mysql
  2. com.android.support:multidex,Android 使用android-support-multidex解决Dex超出方法数的限制问题...
  3. Oracle CloudWorld 2022 - Oracle智能分析与机器学习新动向
  4. 数字政务是“新常态”——如何确保其合乎道德规范?
  5. 傻白探索Chiplet,互连技术研究现状(七)
  6. 沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
  7. 如何使用163的SMTP服务发邮件?
  8. 51nod 1836 战忽局的手段 (期望)
  9. pow函数在php,pow函数怎么使用
  10. ColorHexa是您的终极色彩百科全书