Spire.Office 11.7.0 is released

2026-07-31 06:18:02

 

We're pleased to announce the release of Spire.Office 11.7.0. This version adds several new features. For example, Spire.XLS adds a property to avoid exceptions triggered by long header/footer text; Spire.Presentation supports saving macro-enabled files and managing VBA modules. What’s more, a series of issues that occurred when processing Excel, PDF, and PowerPoint files have been successfully fixed. More details are given below.

In this version, the most recent versions of Spire.Doc, Spire.PDF, Spire.XLS, Spire.Presentation, Spire.Email, Spire.DocViewer, Spire.PDFViewer, Spire.Spreadsheet, Spire.OfficeViewer, Spire.DataExport, Spire.Barcode are included.

DLL Versions:

  • Spire.Doc.dll: 14.7.5
  • Spire.Pdf.dll: 12.7.8
  • Spire.XLS.dll: 16.7.2
  • Spire.Presentation.dll: 11.7.6
  • Spire.Barocde.dll: 7.5.0
  • Spire.DocViewer.dll: 8.9.5
  • Spire.Email.dll: 6.8.0
  • Spire.OfficeViewer.dll: 8.8.1
  • Spire.PdfViewer.Asp.dll: 8.3.0
  • Spire.PdfViewer.Forms.dll: 8.3.0
  • Spire.Spreadsheet.dll: 7.5.3
Click the link to get the version Spire.Office 11.7.0:
More information of Spire.Office new release or hotfix:

Here is a list of changes made in this release

Spre.XLS

Category ID Description
New Feature SPIREXLS-6161 Added the new ValidateHeaderFooterLength property to prevent the exception triggered by long header or footer text when converting Excel to PDF.
workbook.ConverterSetting.ValidateHeaderFooterLength = false;
Bug Fix - Fixed the issue where applying multiple licenses failed to take effect.
Bug Fix SPIREXLS-6152 Fixed the issue where setting the NumberFormat of a cell failed to take effect.
Bug Fix SPIREXLS-6157 Fixed the issue where images were misaligned when converting Excel to PDF.
Bug Fix SPIREXLS-6158 Fixed the issue where the CalculateAllValue() method returned incorrect formula results.
Bug Fix SPIREXLS-6170 Fixed the issue where page breaks were incorrect when converting Excel to PDF.

Spire.Presentation

Category ID Description
New Feature SPIREPPT-660 Added the FileFormat.Pptm enumeration type to support saving macro-enabled files.
New Feature - Added support for adding VBA modules.
Presentation ppt = new Presentation();
// Add VBA project to the document
IVbaProject vbaProject = ppt.VbaProject;
vbaProject.Name = "SampleVBAMacro";
vbaProject.CodePage = 936; // Set encoding to support Chinese characters
IVbaModule vbaModule = vbaProject.Modules.Add("SampleModule", VbaModuleType.Module);
vbaModule.SourceCode = @"
Sub ExampleMacro()
' Declare variables
Dim pptPres As Object
Dim pptSlide As Object
Dim pptShape As Object
' Set reference to the current presentation
Set pptPres = ActivePresentation
' Loop through all slides
Dim i As Integer
For i = 1 To pptPres.Slides.Count
Set pptSlide = pptPres.Slides(i)
' Add a title text box to each slide (msoTextOrientationHorizontal = 1)
Set pptShape = pptSlide.Shapes.AddTextbox(1, 50, 50, 600, 50)
pptShape.TextFrame.TextRange.Text = ""Slide "" & i & "" - Auto-generated by macro""
With pptShape.TextFrame.TextRange.Font
.Bold = -1 ' msoTrue = -1
.Size = 24
.Color.RGB = RGB(0, 102, 204)
End With
Next i
' Display completion message
MsgBox ""Macro execution completed! Processed "" & pptPres.Slides.Count & "" slides."", vbInformation, ""Operation Prompt""
End Sub";
ppt.SaveToFile("result.pptm", FileFormat.Pptm);
ppt.Dispose();
New Feature - Added support for deleting VBA modules.
// Remove module by name
Presentation ppt1 = new Presentation();
ppt1.LoadFromFile(inputFile);
IVbaModule firstModule = ppt1.VbaProject.Modules[0];
sb.AppendLine("[Remove by Name]");
sb.AppendLine("Module Name: " + firstModule.Name);
sb.AppendLine("Module Type: " + firstModule.Type);
sb.AppendLine("Module Count Before Deletion: " + ppt1.VbaProject.Modules.Count);
ppt1.VbaProject.Modules.Remove(firstModule.Name);
sb.AppendLine("Module Count After Deletion: " + ppt1.VbaProject.Modules.Count);
ppt1.SaveToFile("result1.pptm", FileFormat.Pptm);
ppt1.Dispose();
// Remove module by index
Presentation ppt2 = new Presentation();
ppt2.LoadFromFile(inputFile);
sb.AppendLine("[Remove by Index (0)]");
sb.AppendLine("Module Count Before Deletion: " + ppt2.VbaProject.Modules.Count);
ppt2.VbaProject.Modules.RemoveAt(0);
sb.AppendLine("Module Count After Deletion: " + ppt2.VbaProject.Modules.Count);
ppt2.SaveToFile("result2.pptm", FileFormat.Pptm);
ppt2.Dispose();
// Remove module by VbaModule object (cast to specific type)
Presentation ppt3 = new Presentation();
ppt3.LoadFromFile(inputFile);
IVbaModule moduleObj = ppt3.VbaProject.Modules[4];
VbaModule vbaModule = (VbaModule)moduleObj;
sb.AppendLine("[Remove by Object]");
sb.AppendLine("Module Name: " + vbaModule.Name);
sb.AppendLine("Module Type: " + vbaModule.Type);
sb.AppendLine("Module Count Before Deletion: " + ppt3.VbaProject.Modules.Count);
ppt3.VbaProject.Modules.Remove(vbaModule);
sb.AppendLine("Module Count After Deletion: " + ppt3.VbaProject.Modules.Count);
ppt3.SaveToFile("result3.pptm", FileFormat.Pptm);
ppt3.Dispose();
// Clear all modules
Presentation ppt4 = new Presentation();
ppt4.LoadFromFile(inputFile);
sb.AppendLine("[Clear All]");
sb.AppendLine("Module Count Before Deletion: " + ppt4.VbaProject.Modules.Count);
ppt4.VbaProject.Modules.Clear();
sb.AppendLine("Module Count After Deletion: " + ppt4.VbaProject.Modules.Count);
ppt4.SaveToFile("result4.pptm", FileFormat.Pptm);
ppt4.Dispose();
Bug Fix - Fixed an issue where applying multiple licenses failed to take effect.

Spire.PDF

Category ID Description
Bug Fix - Fixed an issue where applying multiple licenses failed to take effect.
Bug Fix SPIREPDF-8062 Fixed an issue where the print job name was incorrect when sending a PDF to a virtual printer.
Bug Fix SPIREPDF-8089 Fixed an issue where extracted text from PDF pages contained duplicated content.
Bug Fix SPIREPDF-8105 Fixed an issue where an "OFD parsing failed" exception was thrown when converting OFD to PDF.

Spire.PdfViewer

Category ID Description
Bug Fix SPIREPDFVIEWER-625 Fixed issue with previewing PDF file throwing "ArgumentNullException" error.