Skip to main content
 首页 » 编程设计

c#之使用 C# 在 Excel 中使用预期的签名者、电子邮件等制作签名行

2024年01月11日31虾米姐

我正在使用 Excel 为我公司的会计部门自动生成表格。我需要每个表单都有一个 Excel 签名行对象,其中填写了预期签名者的信息(姓名、职位、电子邮件)并准备好让他们签名。

到目前为止,我已经创建了签名行

xlApp.ActiveWorkbook.Signatures.AddSignatureLine(); 

其中 xlApp 是我的 Excel 应用程序。当我运行代码时,它会生成签名框,但会弹出一个窗口,询问预期签名者的姓名、职位和电子邮件。我尝试使用

SendKeys.Send(name + "{TAB}Peon{TAB}" + email + "{TAB}{TAB}{TAB}{TAB}~"); 

手动输入信息,因为我找不到任何创建接受此信息的签名行的方法。但是,代码在弹出窗口关闭之前挂起,永远不会到达它填写我需要的信息的那一行。我正在考虑在 excel 中抑制警报和弹出窗口,但我找不到在哪里编辑签名行对象的属性。关于如何实现我的目标有什么想法吗?

谢谢,如果你能帮忙!

请您参考如下方法:

根据 MSDN SignatureInfo“表示用于创建数字或文档内签名的信息”。

我希望您可以在执行之前进行一些设置(定义 SignatureComment、SignatureImage 和 SignatureText - 这些都是可读/可写的)签名和这些将是签名用户可以同意(即签名)或不同意的预设值。但我还没有找到如何做到这一点。 (我正在处理 AddNonVisibleSignature() 方法的类似问题。我的问题:Is there a way to programmatically predefine the purpose when signing an office document?)

不用说,您不能在 签名后进行这些设置,因为您会更改文档/签名并使签名无效。但是,您可以通过SignatureSet 对象查看Signature 界面来阅读文档中签名的详细信息:

    Set sigs = ActiveDocument.Signatures; 

我认为处理签名和使用户签署文档变得简单所涉及的一些困难是由于使签名安全所必需的架构。