数字签名是一种电子签名形式,可用于验证数字文档的真实性和完整性。它可以帮助接收者确认文档的来源,并判断文档在签署之后是否被第三方篡改。本文将演示如何使用 Spire.XLS for .NET,在 C# 和 VB.NET 中为 Excel 添加或删除数字签名。

安装 Spire.XLS for .NET

首先,您需要将 Spire.XLS for .NET 软件包中包含的 DLL 文件添加为 .NET 项目的引用。您可以通过此链接下载这些 DLL 文件,或通过 NuGet 进行安装。

PM> Install-Package Spire.XLS

在 C# 和 VB.NET 中为 Excel 添加数字签名

您可以通过添加数字签名来保护 Excel 文件的完整性。添加数字签名后,文件将变为只读状态,以防止进一步编辑。如果有人对文件进行修改,数字签名将立即失效。

Spire.XLS for .NET 提供了 Workbook 类的 AddDigitalSignature 方法,用于为 Excel 文件添加数字签名。

具体步骤如下:

  1. 初始化 Workbook 类的实例。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 使用指定的证书(.pfx)文件路径和 .pfx 文件密码,初始化 X509Certificate2 类的实例。
  4. 初始化 DateTime 类的实例。
  5. 使用 Workbook.AddDigitalSignature(X509Certificate2, string, DateTime) 方法为文件添加数字签名。
  6. 使用 Workbook.SaveToFile() 方法保存结果文件。

示例代码如下:

using Spire.Xls;
using Spire.Xls.Core.MergeSpreadsheet.Interfaces;
using System;
using System.Security.Cryptography.X509Certificates;

namespace AddSignatureInExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();

            // 加载 Excel 文件
            workbook.LoadFromFile("Sample.xlsx");

            // 为文件添加数字签名
            X509Certificate2 cert = new X509Certificate2("gary.pfx", "e-iceblue");

            // 定义证书文件路径
            string certificatePath = "gary.pfx";

            DateTime certtime = new DateTime(2020, 7, 1, 7, 10, 36);

            // 使用证书为工作簿添加数字签名
            IDigitalSignatures signature = workbook.AddDigitalSignature(certificatePath, "e-iceblue", "Signed by Gary Zhang", certtime);

            // 保存结果文件
            workbook.SaveToFile("AddDigitalSignature.xlsx", FileFormat.Version2013);
        }
    }
}

在 C# 和 VB.NET 中删除 Excel 中的所有数字签名

Spire.XLS for .NET 提供了 Workbook 类的 RemoveAllDigitalSignatures 方法,供开发者用于从 Excel 文件中移除数字签名。

具体步骤如下:

  1. 初始化 Workbook 类的实例。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 使用 Workbook.RemoveAllDigitalSignatures() 方法移除文件中的所有数字签名。
  4. 使用 Workbook.SaveToFile() 方法保存结果文件。

示例代码如下:

using Spire.Xls;

namespace DeleteSignatureInExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();

            // 加载 Excel 文件
            workbook.LoadFromFile("AddDigitalSignature.xlsx");

            // 移除文件中的所有数字签名
            workbook.RemoveAllDigitalSignatures();

            // 保存结果文件
            workbook.SaveToFile("RemoveDigitalSignature.xlsx", FileFormat.Version2013);
        }
    }
}

申请临时许可证

如果您希望移除生成文档中的评估提示信息,或解除功能限制,请为自己申请一个 30 天的试用许可证。

标签: none

添加新评论