有没有办法以编程方式确定 .xls 是否包含宏,而无需在 Excel 中实际打开它?
还有什么方法可以检查这些宏是用哪个证书(包括时间戳证书)签名的?再次不使用 Excel。
我特别想知道当存在宏时,是否有任何字符串始终显示在 Excel 文件的原始数据中。
最佳答案
是的,您可以将.xls文件作为复合文档文件打开,并检查其中是否包含VBA文件夹和包含VBA代码的流。
此 CodeProject 文章中提供了示例代码:
证书信息存储在DocumentSummaryInformation流中。如果您想从那里读出信息,您应该深入研究 Microsoft 提供的文件格式规范:
[MS-OSHARED]: Office Common Data Types and Objects Structure Specification
[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification
关于excel - 以编程方式确定 Excel 文件 (.xls) 是否包含宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006328/