Java: Get Digital Signatures in Excel in Java

Spire.XLS for Java offers the Workbook.addDigitalSignature() method and the Workbook.removeAllDigitalSignatures() method to add and remove the Excel digital signatures. This article will show you how to detect if an Excel document has been signed or not, and retrieve information about digital signatures in Java applications.

Install Spire.XLS for Java

First of all, you're required to add the Spire.Xls.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>14.11.0</version>
    </dependency>
</dependencies>
    

Detect if an Excel is Digitally Signed or Not

Spire.XLS for Java offers the Workbook.isDigitallySigned() method to check whether an Excel document is digitally signed or not.

  • Create a Workbook instance and load a sample Excel document using Workbook.loadFromFile() method.
  • Determine if the workbook is digitally signed by Workbook.isDigitallySigned() method.
  • Print out the results.
  • Java
import com.spire.xls.*;

public class Test {
    public static void main(String[] args) throws Exception {

        //Create a Workbook instance
        Workbook workbook = new Workbook();

        //Load an Excel document
        workbook.loadFromFile("Sample.xlsx");

        //Detect if an Excel Document is digitally signed or not
        Boolean signature = workbook.isDigitallySigned();

       //Print the results
       if (signature) {
            System.out.println("Document has been signed");
        }
         else
        {
            System.out.println("Document has not been signed");
        }

    }
}

Java: Get Digital Signatures in Excel in Java

Get the Digital Signature Details in Excel

The following are the steps to get the details of the digital signatures in an Excel document.

  • Create a Workbook instance and load a sample Excel document using Workbook.loadFromFile() method.
  • Get the collection of digital signatures using Workbook.getDigitalSignatures() method.
  • Get the details of a specific digital signature using the methods under IDigitalSignature object.
  • Java
import com.spire.xls.*;
import com.spire.xls.core.interfaces.IDigitalSignature;
import com.spire.xls.core.interfaces.IDigitalSignatures;

import java.security.PrivateKey;
import java.security.cert.X509Certificate;
import java.util.Date;

public class Test {
    public static void main(String[] args) throws Exception {

        //Create a Workbook instance
        Workbook workbook = new Workbook();

        //Load an Excel document
        workbook.loadFromFile("Sample01.xlsx");

        //Get the collection of digital signatures
        IDigitalSignatures signatures = workbook.getDigitalSignatures();

        //Get the details of digital signatures
        for (IDigitalSignature digitalSignature : (Iterable) signatures) {
            X509Certificate info = digitalSignature.getX509Certificate();
            PrivateKey privateKey = digitalSignature.getPrivateKey();
            String comment = digitalSignature.getComments();
            Date date = digitalSignature.getSignTime();

            //Print out the results of the Excel digital signature
            System.out.println("Signatature Certificate:" + info + "\n" +
                    "Signature Comment:" + comment + "\n" +
                    "Sign Date:" + date + "\n" +
                    "PrivateKey:" + privateKey + "\n");
        }
    }
}

Java: Get Digital Signatures in Excel in Java

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.