Цифровая подпись проекта VBA с помощью сертификата
Вы можете цифрово подписать свой проект кода VBA, используя Aspose.Cells с его методом Workbook.VbaProject.Sign(). Пожалуйста, следуйте этим шагам, чтобы проверить, подписан ли ваш файл Excel цифровой сертификат.
- Нажмите Visual Basic на вкладке Разработчиков, чтобы открыть Интегрированную среду разработки Visual Basic for Applications
- Нажмите Сервис > Цифровые подписи… в Среде VBA
и отобразится Форма цифровой подписи, показывающая, подписан ли документ цифровым сертификатом или нет.
Цифровая подпись проекта VBA с сертификатом на C#
Приведенный ниже образец кода иллюстрирует, как использовать метод Workbook.VbaProject.Sign(). Вот входные и выходные файлы образца кода. Вы можете использовать любой файл Excel и любой сертификат, чтобы протестировать этот код.
- Исходный файл Excel, используемый в образцовом коде.
- Образец файла pfx для создания цифровой подписи. Пожалуйста, установите его на ваш компьютер, чтобы запустить этот код. Пароль - 1234.
- Файл Excel вывода, сгенерированный образцовым кодом.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String password = "1234"; | |
String pfxPath = sourceDir + "sampleDigitallySignVbaProjectWithCertificate.pfx";; | |
String comment = "Signing Digital Signature using Aspose.Cells"; | |
// Load the certificate into an instance of InputStream | |
InputStream inStream = new FileInputStream(pfxPath); | |
// Create an instance of KeyStore with PKCS12 cryptography | |
KeyStore inputKeyStore = KeyStore.getInstance("PKCS12"); | |
// Use the KeyStore.load method to load the certificate stream and its password | |
inputKeyStore.load(inStream, password.toCharArray()); | |
inStream.close(); | |
// Create an instance of DigitalSignature and pass the instance of KeyStore, password, comments and time | |
DigitalSignature signature = new DigitalSignature(inputKeyStore, password, comment, | |
DateTime.getNow()); | |
Workbook wb = new Workbook(sourceDir + "sampleDigitallySignVbaProjectWithCertificate.xlsm"); | |
wb.getVbaProject().sign(signature); | |
wb.save(outputDir + "outputDigitallySignVbaProjectWithCertificate.xlsm"); |