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

如何使用C#(Microsoft.Interop.Excel)程序化设置Excel敏感度标签?

在C#中使用Microsoft.Interop.Excel设置Excel敏感度标签

前提准备

  • 先在项目中添加两个引用:Microsoft.Office.Interop.Excel(用于操作Excel对象模型)和Microsoft.Office.Core(用于访问Office通用对象如LabelInfo、MsoAssignmentMethod)

实现代码

using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;

class ExcelSensitivityLabelHandler
{
    public static void SetSensitivityLabel(string targetSavePath)
    {
        Excel.Application excelInstance = null;
        Excel.Workbook targetWorkbook = null;

        try
        {
            // 初始化Excel应用
            excelInstance = new Excel.Application();
            excelInstance.Visible = false;

            // 创建新工作簿
            targetWorkbook = excelInstance.Workbooks.Add();

            // 获取工作簿的敏感度标签对象
            Office.SensitivityLabel sensitivityLabel = targetWorkbook.SensitivityLabel;

            // 构建标签信息实例
            Office.LabelInfo labelInfo = sensitivityLabel.CreateLabelInfo();
            labelInfo.AssignmentMethod = Office.MsoAssignmentMethod.msoAssignmentMethodPrivileged;
            labelInfo.LabelId = "9203368f-916c-4d59-8292-9f1c6a1e8f39";
            labelInfo.LabelName = "MyLabelName";
            labelInfo.SiteId = "6c15903a-880e-4e17-818a-6cb4f7935615";

            // 应用敏感度标签
            sensitivityLabel.SetLabel(labelInfo, labelInfo);

            // 保存工作簿(格式51对应.xlsx)
            targetWorkbook.SaveAs(targetSavePath, Excel.XlFileFormat.xlOpenXMLWorkbook);

            // 可选:验证标签设置结果
            // Office.LabelInfo retrievedLabel = sensitivityLabel.GetLabel();
            // Console.WriteLine($"标签ID:{retrievedLabel.LabelId}");
            // Console.WriteLine($"标签名称:{retrievedLabel.LabelName}");
        }
        finally
        {
            // 释放COM资源,避免Excel进程后台残留
            if (targetWorkbook != null)
            {
                targetWorkbook.Close(false);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(targetWorkbook);
            }
            if (excelInstance != null)
            {
                excelInstance.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excelInstance);
            }
        }
    }
}

注意事项

  • 将targetSavePath替换为实际的文件保存路径
  • 确保开发环境已安装对应版本的Office,且Interop组件版本与Office版本匹配
  • 必须执行COM对象释放步骤,否则会导致Excel进程在后台持续运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:42:53