C#/VB.NET 给Excel添加、删除数字签名
一、程序环境
以下内容通过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添加、删除数字签名的更多相关文章
- C# / vb.net 给PDF 添加可视化和不可见数字签名
本文通过C#程序代码展示如何给PDF文档添加可视化数字签名和不可见数字签名.可视化数字签名,即在PDF文档中的指定页面位置添加签名,包含相关文字信息和签名图片等:不可见数字签名,即添加签名时不在文档中 ...
- vb.net向Excel中写入值
根据网上例子结合自己的工具环境修改后测试可以通过 我使用的工具:Microsoft Visual Studio 2010,Excel 2007 一.在D盘新建一个temp文件夹用于存放Excel启动时 ...
- VB.NET操作Excel
VB.NET操作Excel的基本方法与例子:
- WPF下的Richtextbox中实现表格合并,添加删除行列等功能
.Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...
- 编辑 Ext 表格(一)——— 动态添加删除行列
一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除. (1) 动态添加表格的行 gridS ...
- Angular-表单动态添加删除
angular本身不允许去操作DOM,在angular的角度来说,所有操作都以数据为核心,剩下的事情由angular来完成.所以说,想清楚问题的根源,解决起来也不是那么困难. 前提 那么,要做的这个添 ...
- 用Javascript动态添加删除HTML元素实例 (转载)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [CentOS]添加删除用户
摘要 在安装CentOS的时候,我们只设置了root,类似windows的超级管理员.当然我们在工作的时候,为了安全考虑,不可能对外开发root,一方面是从安全的角度,另一方面也是方便管理. 添加删除 ...
- iOS仿网易新闻栏目拖动重排添加删除效果
仿网易新闻栏目选择页面的基本效果,今天抽了点时间教大家如何实现UICollectionView拖动的效果! 其实实现起来并不复杂,这里只是基本的功能,没有实现细节上的修改,连UI都是丑丑的样子,随手画 ...
随机推荐
- 开始在Windows上开发Android
介绍 鉴于您正在阅读这篇文章,您很可能已经知道android是什么了.可能.在科幻小说和电影中,机器人本质上是具有拟人化特征的机器人.还记得<星球大战>里的C-3PO吗?那<星际迷航 ...
- Linux 杀毒软件ClamAV安装部署
环境说明 系统安全需求,批量安装免费杀毒软件: 操作系统统一为CentOS 7 x64,在此选择免费开源杀毒软件ClamAV: 两种安装方式 1.yum 安装: 2.源码包编译安装: 安装参考网址: ...
- Windows7 提示“无法访问您可能没有权限使用网络资源”的解决办法
大家经常会碰到,电脑A(Windows7)访问局域网打印机的时候出现提示"无法访问你可能没有权限使用网络资源",导致无法正常使用打印机. 那么出现这种情况该如何解决呢? 解决方法: ...
- TP5发送邮件
1,前提去qq邮箱开启smtp 2,生成授权码 2,发送短信给 3,附上代码 贴上代码如下 <?phpnamespace app\mails\controller;use \think\Cont ...
- GDB 调试 .NET 程序实录 - .NET 调用 .so 出现问题怎么解决
注:本文重要信息使用 *** 屏蔽关键字. 最近国庆前,项目碰到一个很麻烦的问题,这个问题让我们加班到凌晨三点. 大概背景: 客户给了一些 C语言 写的 SDK 库,这些库打包成 .so 文件,然后我 ...
- shell-的变量-局部变量
1. 定义本地变量 本地变量在用户当前的shell生产期的脚本中使用.例如,本地变量OLDBOY取值为ett098,这个值只在用户当前shell生存期中有意义.如果在shell中启动另一个进程或退出, ...
- Cypress系列(63)- 使用 Custom Commands
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Custom Commands 自定义命 ...
- 一道算法题,引出collections.Counter的特殊用法
题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次, ...
- pytest文档48-切换 base_url 测试环境(pytest-base-url)
前言 当我们自动化代码写完成之后,期望能在不同的环境测试,这时候应该把 base_url 单独拿出来,能通过配置文件和支持命令行参数执行. pytest-base-url 是 pytest 里面提供的 ...
- linux(centos8):使用namespace做资源隔离
一,namespace是什么? namespace 是 Linux 内核用来隔离内核资源的方式. 它是对全局系统资源的封装隔离, 处于不同 namespace 的进程拥有独立的全局系统资源, 改变一个 ...