You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added PDF export support through SaveFormat.Pdf, PdfSaveOptions, and a SkiaSharp-based rendering pipeline.
Added rich-text cell APIs and shared-string rich-text round-tripping so formatted string runs can be loaded, edited, and saved.
Improved display-text formatting fidelity for General numeric output and locale-sensitive date formatting.
Added
Added SaveFormat.Pdf and the public PdfSaveOptions type for XLSX-to-PDF export.
Added automatic PDF format selection in Workbook.Save(string fileName) when the output path ends with .pdf.
Added Cell.Characters(int startIndex, int length), Cell.GetCharacters(), Cell.SetCharacters(FontSetting[] characters), and Cell.IsRichText() for rich-text string ranges.
Added the public FontSetting type to represent per-range rich-text font settings within a cell.
Added rich-text-capable shared-string parsing and serialization so shared strings can preserve formatted runs instead of flattening to plain text.
Added samples/Aspose.Cells_FOSS.Samples.PdfConversion to convert .xlsx files under samples/files to matching .pdf outputs.
Added License/SkiaSharp.LICENSE.txt and License/ThirdPartyNotices.txt for third-party license and attribution compliance.
Changed
Changed SaveOptions from sealed to inheritable so specialized save options such as PdfSaveOptions can extend it.
Workbook save failures now report the more format-agnostic message Failed to save workbook. instead of an XLSX-only error string.
General-format numeric display now rounds floating-point and decimal values to 15 significant digits, reducing binary floating-point artifacts in displayed text.
Built-in date and date-time display formatting for formats 14 and 22 now honors the caller-supplied culture when a non-invariant workbook culture is used.
Date-format display logic now avoids unintentionally localizing textual month tokens unless the format explicitly carries a locale directive.
The loading sample now resolves samples/files/sample.xlsx from the repository root instead of depending on a project-local sample.xlsx copy.
Sample documentation was refreshed to include the PDF conversion sample and its repository-based input convention.
Improved Compatibility
PDF export uses worksheet page setup settings for paper size, orientation, and pagination behavior, aligning the public workflow more closely with Aspose.Cells conventions.
Rich-text runs in inline strings and shared strings now round-trip with font name, size, bold, italic, underline, strikeout, and color metadata preserved more faithfully.
Shared-string interning now distinguishes entries by both text and rich-text formatting runs, reducing accidental coalescing of differently formatted strings.
General-format cell display text is less likely to expose IEEE-754 artifacts such as trailing binary rounding noise.
Locale-sensitive built-in date display behaves more like spreadsheet viewers when rendering with a real machine culture.
Drawing and worksheet loaders now retain additional drawing metadata such as drawing object identifiers, connector endpoint metadata, and preserved SmartArt drawing payloads, improving downstream fidelity for rendering and save.
Picture loading and archive helpers were expanded alongside the new PDF/export path so workbook assets referenced from packages are resolved more consistently.
Potential Breaking Changes
SaveOptions is no longer sealed, which is source-compatible for most consumers but changes the type's inheritance behavior.
Calling Workbook.Save("output.pdf") now exports PDF automatically based on the file extension, whereas earlier versions always followed the default XLSX save path.
Display text produced under the General format or under built-in date formats 14 and 22 may differ from earlier versions because of the new rounding and culture-handling logic.
Shared strings that previously collapsed to plain text can now serialize as rich-text entries when formatting runs are present, which changes emitted OOXML for those cells.