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. |