You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EPPlus 6.1.0(.NET Core 7、C#)如何隐藏数据透视表字段列表?

解决EPPlus 6.1.0中隐藏数据透视表字段列表的问题

EPPlus 6.1.0没有直接提供隐藏数据透视表字段列表的API,但可以通过直接修改工作簿的XML结构来实现,具体操作如下:

核心思路

通过操作工作簿的XML文档,找到或创建workbookPr元素,并添加hidePivotFieldList="1"属性,这和你对比XML文件发现的变化一致。

实现代码

using OfficeOpenXml;
using System.Xml;
using System.IO;

// 配置EPPlus许可证上下文(6.x版本必填)
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 商用场景请改为LicenseContext.Commercial

using var package = new ExcelPackage();
var xmlDoc = package.Workbook.WorkbookXml;
var nsManager = new XmlNamespaceManager(xmlDoc.NameTable);
// 注册OpenXML表格命名空间
nsManager.AddNamespace("x", "http://schemas.openxmlformats.org/spreadsheetml/2006/main");

// 查找workbookPr节点,不存在则创建
var workbookPrNode = xmlDoc.SelectSingleNode("//x:workbookPr", nsManager);
if (workbookPrNode == null)
{
    var workbookNode = xmlDoc.SelectSingleNode("//x:workbook", nsManager);
    workbookPrNode = xmlDoc.CreateElement("workbookPr", "http://schemas.openxmlformats.org/spreadsheetml/2006/main");
    workbookNode?.InsertBefore(workbookPrNode, workbookNode.FirstChild);
}

// 添加或设置hidePivotFieldList属性
var hideAttribute = xmlDoc.CreateAttribute("hidePivotFieldList");
hideAttribute.Value = "1";
workbookPrNode.Attributes?.SetNamedItem(hideAttribute);

// 可选:添加defaultThemeVersion属性(和你对比发现的XML一致)
var themeAttribute = xmlDoc.CreateAttribute("defaultThemeVersion");
themeAttribute.Value = "166925";
workbookPrNode.Attributes?.SetNamedItem(themeAttribute);

// 保存文件
package.SaveAs(new FileInfo(@"D:\output.xlsx"));

注意事项

  • 必须正确设置LicenseContext,否则EPPlus会抛出许可证相关异常
  • XML节点查找依赖正确的命名空间,不要遗漏命名空间注册
  • 修改XML后务必调用Save或SaveAs,否则修改不会写入到最终文件中

内容的提问来源于stack exchange,提问作者MHop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 10:17:24