如何在.NET C#中通过Open XML SDK访问Excel Table Design选项卡的Resize Table功能
使用Open XML SDK调整Excel表格大小的实现方案
Excel UI中的Resize Table功能在Open XML中没有封装对应的直接方法,你可以通过修改表格对象的核心属性实现相同效果,具体实现步骤如下:
- 引入必要的命名空间
using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Spreadsheet;
- 核心实现逻辑
你需要先定位到目标表格,修改其引用范围,再同步更新关联的筛选配置即可,示例代码如下:
// 打开Excel文件,Open模式设置为可读写 using (SpreadsheetDocument doc = SpreadsheetDocument.Open("你的模板文件路径.xlsx", true)) { // 获取目标工作表部分,示例取第一个工作表,你可以根据名称自行匹配目标表 WorksheetPart worksheetPart = doc.WorkbookPart.WorksheetParts.First(); Worksheet worksheet = worksheetPart.Worksheet; // 获取工作表中的所有表格,匹配你要调整的目标表格 TableDefinitionPart tablePart = worksheetPart.TableDefinitionParts.First(); Table targetTable = tablePart.Table; // 定义新的表格范围,示例将原A1:C5的范围扩展到A1:C10 string newRange = "A1:C10"; // 修改表格的引用范围 targetTable.Reference = newRange; // 同步修改自动筛选的引用范围,否则打开文件会报格式错误 if (targetTable.AutoFilter != null) { targetTable.AutoFilter.Reference = newRange; } // 若表格包含计算列,可在此处补充逻辑更新计算列的公式应用范围 // 保存表格修改 targetTable.Save(); // 保存工作表修改 worksheet.Save(); }
- 注意事项
- 若你需要扩大表格范围,请确保新范围对应的行、列已经在工作表中存在,否则打开文件时会出现结构错误
- 表格自带的单元格样式会自动继承到新扩展的范围,无需额外配置
- 调整前请做好原模板的备份,避免修改错误导致文件损坏
内容的提问来源于stack exchange,提问作者Kibria
相关产品推荐
相关产品推荐

