如何使用OpenXML C#横向合并Microsoft Word表格单元格
横向合并Word表格单元格的实现方法
要在Open XML SDK里完成这两个单元格的横向合并,核心逻辑其实很简单:让第一个单元格跨占多列,再移除被合并的第二个单元格就行,具体实现如下:
// 1. 给第一个单元格设置跨列属性,指定要合并的列数(这里合并2列,所以Val设为2) var gridSpan = new Wordprocessing.GridSpan { Val = 2 }; cell1.AppendChild(gridSpan); // 2. 移除第二个单元格(因为它已经被第一个单元格的跨列属性覆盖了) cell2.Remove();
额外注意事项
- 确保你已经引用了
DocumentFormat.OpenXml.Wordprocessing命名空间,不然相关类会无法识别。 - 如果原单元格有自定义宽度,建议调整第一个单元格的宽度为两个单元格的总宽度,避免布局错乱:
// 示例:设置单元格宽度为原两个单元格的总宽度(缇为Word的单位,这里假设每个原单元格宽2000缇) var cellWidth = new Wordprocessing.TableCellWidth { Type = TableWidthUnitValues.Dxa, Width = "4000" }; // 先移除原有的宽度设置(如果存在) var existingWidth = cell1.Elements<Wordprocessing.TableCellWidth>().FirstOrDefault(); if (existingWidth != null) existingWidth.Remove(); cell1.AppendChild(cellWidth); - 务必移除第二个单元格,否则Word文档会出现异常的空白单元格。
内容的提问来源于stack exchange,提问作者bvl




