使用OfficeOpenXml通过X++创建Excel时如何合并列单元格并解决编译报错
X++ 调用OfficeOpenXml API合并单元格解决方案
错误原因
你遇到的Invalid token '.'编译错误是因为X语法不支持C#风格的字符串索引器直接调用写法,CustTableWorksheet.Cells["B1:D1"]这种C#常用的调用格式在X中不符合语法规范。
正确实现方式
OfficeOpenXml本身提供了合并单元格的能力,在X++中需要通过get_Item方法获取单元格范围后再设置Merge属性,有两种常用写法:
- 基于单元格地址字符串指定范围
// 合并B1到D1的横向单元格 CustTableWorksheet.Cells.get_Item("B1:D1").Merge = true;
- 基于行号列号指定范围(更适合动态生成场景)
// 参数顺序:起始行号、起始列号、结束行号、结束列号,以下示例等效于合并B1到D1 CustTableWorksheet.Cells.get_Item(1, 2, 1, 4).Merge = true;
补充说明
合并后的单元格赋值、样式设置可以直接定位到合并范围的左上角单元格操作,也可以针对整个合并范围设置样式:
// 给合并单元格赋值 CustTableWorksheet.Cells.get_Item("B1").Value = "合并表头"; // 给整个合并范围设置水平居中 CustTableWorksheet.Cells.get_Item("B1:D1").Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
内容的提问来源于stack exchange,提问作者Aitor Ramos Pajares
相关产品推荐
相关产品推荐

