一、程序环境

以下内容通过C#及VB.NET代码demo示例介绍如何给Excel文档添加数字签名,以及删除Excel文档中已有的数字签名。工具使用最近发布的Spire.XLS for .NET 版本10.11.2,可在官网下载包,或者通过Nuget搜索下载;编辑代码前,注意先将Spire.XLS.dll添加引用到VS,并添加相应using指令,如下添加引用效果:

二、Java Demo示例代码

1. 添加数字签名

C#

using Spire.Xls;
using Spire.Xls.Core.MergeSpreadsheet.Interfaces;
using System;
using System.Security.Cryptography.X509Certificates; namespace DigitalSignature_XLS
{
class Program
{
static void Main(string[] args)
{
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文档
workbook.LoadFromFile("sample.xlsx"); //添加数字签名
X509Certificate2 cert = new X509Certificate2("gary.pfx", "123456");
DateTime certtime = new DateTime(2020, 7, 1, 7, 10, 36);
IDigitalSignatures signature = workbook.AddDigitalSignature(cert, "Manager", certtime); //保存文档
workbook.SaveToFile("AddDigitalSignature.xlsx", FileFormat.Version2013);
System.Diagnostics.Process.Start("AddDigitalSignature.xlsx");
}
}
}

VB.NET

Imports Spire.Xls
Imports Spire.Xls.Core.MergeSpreadsheet.Interfaces
Imports System.Security.Cryptography.X509Certificates Namespace DigitalSignature_XLS
Class Program
Private Shared Sub Main(args As String())
'创建Workbook实例
Dim workbook As New Workbook()
'加载Excel文档
workbook.LoadFromFile("sample.xlsx") '添加数字签名
Dim cert As New X509Certificate2("gary.pfx", "123456")
Dim certtime As New DateTime(2020, 7, 1, 7, 10, 36)
Dim signature As IDigitalSignatures = workbook.AddDigitalSignature(cert, "Manager", certtime) '保存文档
workbook.SaveToFile("AddDigitalSignature.xlsx", FileFormat.Version2013)
System.Diagnostics.Process.Start("AddDigitalSignature.xlsx")
End Sub
End Class
End Namespace

数字签名添加效果:

2. 删除Excel中的数字签名

C#

using Spire.Xls;

namespace RemoveSignature
{
class Program
{
static void Main(string[] args)
{
//加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("AddDigitalSignature.xlsx"); //删除文档中的数字签名
workbook.RemoveAllDigitalSignatures(); //保存文档
workbook.SaveToFile("RemoveDigitalSignature.xlsx", FileFormat.Version2013);
System.Diagnostics.Process.Start("RemoveDigitalSignature.xlsx");
}
}
}

VB.NET

Imports Spire.Xls

Namespace RemoveSignature
Class Program
Private Shared Sub Main(args As String())
'加载Excel文档
Dim workbook As New Workbook()
workbook.LoadFromFile("AddDigitalSignature.xlsx") '删除文档中的数字签名
workbook.RemoveAllDigitalSignatures() '保存文档
workbook.SaveToFile("RemoveDigitalSignature.xlsx", FileFormat.Version2013)
System.Diagnostics.Process.Start("RemoveDigitalSignature.xlsx")
End Sub
End Class
End Namespace

运行程序后,原有的签名已删除。

C#/VB.NET 给Excel添加、删除数字签名的更多相关文章

  1. C# / vb.net 给PDF 添加可视化和不可见数字签名

    本文通过C#程序代码展示如何给PDF文档添加可视化数字签名和不可见数字签名.可视化数字签名,即在PDF文档中的指定页面位置添加签名,包含相关文字信息和签名图片等:不可见数字签名,即添加签名时不在文档中 ...

  2. vb.net向Excel中写入值

    根据网上例子结合自己的工具环境修改后测试可以通过 我使用的工具:Microsoft Visual Studio 2010,Excel 2007 一.在D盘新建一个temp文件夹用于存放Excel启动时 ...

  3. VB.NET操作Excel

    VB.NET操作Excel的基本方法与例子:

  4. WPF下的Richtextbox中实现表格合并,添加删除行列等功能

    .Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...

  5. 编辑 Ext 表格(一)——— 动态添加删除行列

    一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除.   (1) 动态添加表格的行  gridS ...

  6. Angular-表单动态添加删除

    angular本身不允许去操作DOM,在angular的角度来说,所有操作都以数据为核心,剩下的事情由angular来完成.所以说,想清楚问题的根源,解决起来也不是那么困难. 前提 那么,要做的这个添 ...

  7. 用Javascript动态添加删除HTML元素实例 (转载)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. [CentOS]添加删除用户

    摘要 在安装CentOS的时候,我们只设置了root,类似windows的超级管理员.当然我们在工作的时候,为了安全考虑,不可能对外开发root,一方面是从安全的角度,另一方面也是方便管理. 添加删除 ...

  9. iOS仿网易新闻栏目拖动重排添加删除效果

    仿网易新闻栏目选择页面的基本效果,今天抽了点时间教大家如何实现UICollectionView拖动的效果! 其实实现起来并不复杂,这里只是基本的功能,没有实现细节上的修改,连UI都是丑丑的样子,随手画 ...

随机推荐

  1. docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled

    故障描述: [root@docker01 ~]# docker run centos docker: Error response from daemon: Get https://registry- ...

  2. cp命令:复制文件和目录

    cp命令:复制文件和目录 [功能说明] cp命令可以理解英文单词copy的缩写,其功能为复制文件和目录. [语法格式] 1 cp [option] [source] [dest] 2 cp [选项] ...

  3. ansible-playbook-roles目录结构

    1. ansible-角色-roles目录结构       角色是基于已知文件结构自动加载某些vars_files,任务和处理程序的方法.按角色对内容进行分组还可以轻松与其他用户共享角色.      ...

  4. Java结构体系

  5. MeteoInfoLab脚本示例:Maskout图形

    Maskout通常有两种类型:Maskout图形和Maskout数据.这里是Maskout图形的示例.需要用shaperead读取地图数据形成图层作为Maskout图层(这里是中国的行政区域china ...

  6. 编程福利:50本C语言电子书,你还怕没书看吗!

    推荐适合编程新手入门的几本经典的C语言书籍. 1.<C程序设计语言> C语言之父的著作,被称为C语言的的圣经.全球最经典的C语言教程.这本书最大的特点是精炼.读起来不会觉得"啰嗦 ...

  7. 扫描仪扫描文件处理-Photoshop批处理无响应问题

    问题描述:Photoshop批处理时候卡死.卡住.无响应问题(出现在处理60M及以上TIFF文件的时候) 解决办法: 调整系统虚拟内存见<扫描-Photoshop批处理内存不足问题解决> ...

  8. 19。删除链表倒数第N个节点

    class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next# 这道题还是很简单的,我们只 ...

  9. 反射(Reflection)

    Java学习笔记--反射(Reflection) 关于反射 能够分析类能力的程序称之为反射(Reflection) 反射机制可以用来: 在运行时分析类的能力 在运行时检查对象,例如:编写一个适合所有类 ...

  10. ubuntu JDK&SDK 环境变量配置

    ubuntu JDK&SDK 环境变量配置 一.下载JDK 1. 先卸载Ubuntu 带的openJDK: sudo apt-get purge openjdk* 2.到http://www. ...