В этой четкой статье содержится вся информация о том, как поставить цифровую подпись в документе Excel с помощью Java. Он содержит логические шаги, необходимые для выполнения этой задачи программным путем, а также исполняемый пример кода для вставки электронной подписи в Excel с использованием Java. Вы также научитесь настраивать этот процесс, чтобы использовать PFX для создания цифровой подписи, а затем помещать эту подпись в файл Excel перед ее сохранением в виде файла XLSX или в любом другом поддерживаемом формате.
Шаги по созданию цифровой подписи в Excel с использованием Java
- Настройте среду для использования Aspose.Cells из репозитория для подписи файла Excel.
- Создайте экземпляр хранилища ключей и загрузите сертификат, используя имя файла сертификата и пароль.
- Создайте digital signature, используя указанное выше хранилище ключей и пароль закрытого ключа.
- Укажите комментарии, дату и время подписания цифровой подписи.
- Создайте коллекцию цифровых подписей и добавьте в нее только что созданную цифровую подпись.
- Загрузите workbook и добавьте в него коллекцию цифровых подписей.
- Сохраните книгу с цифровой подписью
Эти шаги описывают процедуру как создать электронную подпись в Excel с помощью Java. Представлен пошаговый процесс, в котором сначала создается хранилище ключей с использованием сертификата PFX и пароля закрытого ключа, затем создается коллекция цифровых подписей, и в эту коллекцию добавляется новая цифровая подпись, созданная с помощью хранилища ключей. На последнем этапе загружается целевая рабочая книга, и в нее добавляется коллекция цифровых подписей.
Код для размещения цифровой подписи в Excel с использованием Java
import java.io.FileInputStream; | |
import java.io.InputStream; | |
import com.aspose.cells.DigitalSignature; | |
import com.aspose.cells.DigitalSignatureCollection; | |
import com.aspose.cells.Workbook; | |
public class AsposeTest { | |
public static void main(String[] args) throws Exception {//Main function to add a digital signature to a spreadsheet in java | |
// Instantiate a license | |
com.aspose.cells.License slidesLicense = new com.aspose.cells.License(); | |
slidesLicense.setLicense("Aspose.Total.lic"); | |
// Using the cryptography PKCS12, create a Keystore | |
java.security.KeyStore keyStore = java.security.KeyStore.getInstance("PKCS12"); | |
// Load certificate into the InputStream | |
InputStream inStreamCert = new FileInputStream("TestCert1.pfx"); | |
// Load the certificate into the Keystore by providing the certificate file and its password | |
keyStore.load(inStreamCert, "testcert1".toCharArray()); | |
// Create the digital signature | |
DigitalSignature digtSign = new DigitalSignature(keyStore, "testcert1", "New digital signature is added to a workbook",com.aspose.cells.DateTime.getNow()); | |
// Instantiate a collection of digital signatures | |
DigitalSignatureCollection digtSignColl = new DigitalSignatureCollection(); | |
// Add the digital signature to the collection | |
digtSignColl.add(digtSign); | |
// Load the spreadsheet | |
Workbook wbToBeSigned = new Workbook("sampleSpreadsheet.xlsx"); | |
// Add the collection of digital signatures to the workbook | |
wbToBeSigned.addDigitalSignature(digtSignColl); | |
// Save the workbook with an electronic signature | |
wbToBeSigned.save("outputDigitallySignedByCells.xlsx"); | |
System.out.println("Done"); | |
} | |
} |
В этом коде для цифровой подписи Excel с помощью Java хранилище ключей создается с использованием криптографии PKCS12, а затем в него загружается файл сертификата. DigitalSignature создается путем предоставления хранилища ключей, пароля закрытого ключа, комментариев и времени подписи, предоставленного пользователем, однако вы также можете добавить изображение подписи, идентификатор поставщика и XAdESType. Выходную книгу можно сохранить в любом из поддерживаемых форматов, таких как XLSX, XLS, XLSM, ODS, XLSB и т. д.
В этом руководстве описан процесс цифровой подписи файла Excel, однако, если вы хотите изучить процесс преобразования Excel в изображение, обратитесь к статье как преобразовать листы Excel в изображение в Java.