We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Excel Digital Signatures

Hi Aspose,

I am working with a client who requires that I send him an excel file that is digitally signed. I have successfully prototyped a solution using Aspose.Cells and been able to send him a .xlsx file. Unfortunately his users do not have Excel 2007 available on their desktops and when I attempt to save a signed Aspose.Cells.Workbook to FileFormatType.Excel97To2003 the signature gets removed.

Is there any way using your component, to save a signed workbook in a format earlier than Excel 2007 .xslx?

Best Regards,


Please check the document:

If you find any issue, kindly do create a sample console application to show the issue with all the files. We will check it soon.

We recommend you to try our latest version/fix: Please download: Aspose.Cells for .NET v7.0.0.1

Hello and thanks for the reply. Here is an example (using your own code) where the digital signing fails. I have tried this with both the 6.1 and the v7.0.01 that you linked to:

using System;
using System.IO;
using Aspose.Cells;
using System.Collections;
using System.Text;
using System.Threading;
using Aspose.Cells.Rendering;
using System.Security.Cryptography;
using System.Diagnostics;
using Aspose.Cells.DigitalSignatures;
using System.Security.Cryptography.X509Certificates;

namespace Aspose.Cells.test

class MyTest

public MyTest()

static void Main(string[] args)

MyTest test = new MyTest();


internal void testvalidateSign()

Workbook wb = new Workbook(@“c:\newfile.xls”);
System.Console.WriteLine(wb.IsDigitallySigned); //True -OK
DigitalSignatureCollection dsc = wb.GetDigitalSignature();

foreach (DigitalSignature ds in dsc)
System.Console.WriteLine(ds.Comments); //test for sign -OK
System.Console.WriteLine(ds.SignTime); //11/25/2010 1:22:01 PM -OK
System.Console.WriteLine(ds.IsValid); //True -OK


internal void testSign()

DigitalSignatureCollection dsc = new DigitalSignatureCollection();

DigitalSignature ds = new DigitalSignature(
FindCertificateFromSerial(“5d 88 3d d1 ab 8d 63 c2 eb 64 c2 fc 8a e7 fb bd”),
“test for sign”, DateTime.Now);


Workbook wb = new Workbook();
wb.Save(@“c:\newfile.xls”, SaveFormat.Excel97To2003);


public static X509Certificate2 FindCertificateFromSerial(string serialNum)
X509Store localStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
localStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection matches =
localStore.Certificates.Find(X509FindType.FindBySerialNumber, serialNum, false);
if (matches.Count > 0)
return matches[0];
return null;

{ localStore.Close(); }



This code works perfectly for the Xslx format, but fails for Xls.


Thanks for sharing the sample code.

I have logged your issue with an id: CELLSNET-30247. We will look into your issue soon.

Thank you.


As mentioned in release notes, we only support adding digital signature on Ms-Excel 2007 or later formats. We will support it for Ms-Excel 2003 formats in later release versions.

Is checking digital signature (Workbook.IsDigitallySigned) on Ms-Excel 2003 supported in the latest version (XLS files)?



Yes, Aspose.Cells does support digital signatures for XLS file format. Please try using our latest version/fix (Aspose.Cells v21.5.x). If you find any issue, kindly zip and share your sample digitally signed MS Excel 2003 XLS file, we will look into it soon.