Java 新增數字簽名到Excel以及檢測、刪除簽名

iceblue發表於2021-03-26

Excel中可新增數字簽名以供文件所有者申明文件的所有權或有效性。文字以Java程式碼示例介紹如何在Excel文件中對數字簽名功能進行相關操作,包括如何新增簽名到Excel、檢測Excel文件是否已簽名,以及如何刪除Excel文件中的簽名。

本次程式碼測試環境

  • Excel版本:2013
  • 編譯環境:IntelliJ IDEA2018
  • JDK版本:1.8.0
  • Excel庫工具:spire.xls.jar 4.3.4
  • Pfx數字證照(及密碼)

下面分別以三個程式碼塊來展示如何實現。

1. 新增簽名

import com.spire.xls.*;
import com.spire.xls.digital.CertificateAndPrivateKey;
import java.util.Date;

public class AddSignature {
    public static void main(String[] args) throws Exception {
        //載入Excel工作簿
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //新增數字簽名
        wb.addDigitalSignature(new CertificateAndPrivateKey("cer.pfx","123654yes!"), "The Author is Mia",new Date());
        
        //儲存文件
        wb.saveToFile("AddSignature.xlsx",ExcelVersion.Version2013);
        wb.dispose();
    }
}

簽名新增結果:

 

2.檢測是否簽名

import com.spire.xls.*;
public class DetectSignature { public static void main(String[] args) { //載入Excel工作簿 Workbook wb = new Workbook(); wb.loadFromFile("AddSignature.xlsx"); //判斷文件是否簽名 boolean signature = wb.isDigitallySigned(); if(signature==true) { System.out.println("文件已簽名!"); } else { System.out.println("未簽名文件!"); } } }

檢測結果:

 

 

3.刪除簽名

import com.spire.xls.*;

public class RemoveSignature {
    public static void main(String[] args) {
        //載入Excel工作簿
        Workbook wb = new Workbook();
        wb.loadFromFile("AddSignature.xlsx");

        //刪除簽名
        wb.removeAllDigitalSignatures();

        //儲存文件
        wb.saveToFile("RemoveSignature.xlsx",ExcelVersion.Version2013);
        wb.dispose();
    }
}

執行程式程式碼後,生成的結果文件中不再有簽名。

 

本文完。

如需轉載,務必註明出處!!!

 

相關文章