Add Digital Signature to an already signed Excel file

Possible Usage Scenarios

Aspose.Cells provides the Workbook.addDigitalSignature(DigitalSignatureCollection digitalSignatureCollection) method that you can use to add digital signature to an already signed Excel file.

Add Digital Signature to an already signed Excel file

The following sample code explains how to make use of Workbook.addDigitalSignature(DigitalSignatureCollection digitalSignatureCollection) method to add a digital signature to already signed Excel file. Please check the sample Excel file used in this code. This file is already digitally signed. Please check the output Excel file generated by the code. We have used the demo certificate named AsposeTest.pfx in this code which has a password aspose. The screenshot shows the effect of the sample code on the sample Excel file after execution.

todo:image_alt_text

Sample Code

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Certificate file and its password
String certFileName = "AsposeTest.pfx";
String password = "aspose";
// Load the workbook which is already digitally signed to add new digital signature
Workbook workbook = new Workbook(srcDir + "sampleDigitallySignedByCells.xlsx");
// Create the digital signature collection
DigitalSignatureCollection dsCollection = new DigitalSignatureCollection();
// Create new digital signature and add it in digital signature collection
// ------------------------------------------------------------
// --------------Begin::creating signature---------------------
// Load the certificate into an instance of InputStream
InputStream inStream = new FileInputStream(srcDir + certFileName);
// Create an instance of KeyStore with PKCS12 cryptography
java.security.KeyStore inputKeyStore = java.security.KeyStore.getInstance("PKCS12");
// Use the KeyStore.load method to load the certificate stream and its password
inputKeyStore.load(inStream, password.toCharArray());
// Create an instance of DigitalSignature and pass the instance of KeyStore, password, comments and time
DigitalSignature signature = new DigitalSignature(inputKeyStore, password,
"Aspose.Cells added new digital signature in existing digitally signed workbook.",
com.aspose.cells.DateTime.getNow());
dsCollection.add(signature);
// ------------------------------------------------------------
// --------------End::creating signature-----------------------
// Add digital signature collection inside the workbook
workbook.addDigitalSignature(dsCollection);
// Save the workbook and dispose it.
workbook.save(outDir + "outputDigitallySignedByCells.xlsx");
workbook.dispose();