2010-06-09 157 views
6

有沒有什麼辦法以編程方式確定.xls是否包含宏,而不實際在Excel中打開它?以編程方式確定Excel文件(.xls)是否包含宏

也有任何方法來檢查哪些證書(包括時間戳證書)這些宏簽名?再次不使用Excel。

特別想知道是否有任何字符串總是出現在Excel文件的原始數據中,當宏存在時。

+0

這是一個XLS XLSX檔案? – 2010-06-09 13:50:51

+0

這將用於XLS文件 – 2010-06-09 13:51:50

回答

1

是的,你可以打開.xls文件作爲複合文檔文件並檢查是否包含VBA文件夾和包含VBA代碼的流。

示例代碼,請這CodeProject上的文章中:

Another OLE Doc Viewer but with editing facility

證書信息存儲在DocumentSummaryInformation流。如果你想讀從那裏出來的信息,你應該深入到Microsoft提供的文件格式規範:

[MS-OSHARED]: Office Common Data Types and Objects Structure Specification

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification

+0

謝謝,這比我預期的要好,我不知道文件格式是公開可用的! – 2010-06-09 14:36:23

0

包含宏的XLS文件應包含字符串看起來像

Keyboard Shortcut: 

不知道這是否是一個萬無一失的解決方案,雖然

+0

不,這不適合我。 – 2012-10-25 20:39:52

相關問題