Changelog
Release history and changelog for all OfficeIMO packages.
OfficeIMO release notes are generated from GitHub Releases so this page stays in sync with the repository.
If you want the packaged artifacts for the current stable release, start with the download matrix below and then browse the full release timeline.
Latest Stable Release Assets
Release Timeline
OfficeIMO 2026.04.09-17.53.02
What's Changed
- Improve OfficeIMO.Excel parity, reliability, and benchmarks by @PrzemyslawKlys in #1752
- Harden markdown AST parity and spec-backed coverage by @PrzemyslawKlys in #1751
- Bump Markdig from 0.44.0 to 1.1.2 by @dependabot[bot] in #1753
- Improve Visio authoring safety and round-trip fidelity by @PrzemyslawKlys in #1756
- Improve reader metadata and ingestion reporting by @PrzemyslawKlys in #1754
- Improve PDF reader and SaveAsPdf compatibility by @PrzemyslawKlys in #1755
- Fix debugger exception during table creation by @PrzemyslawKlys in #1758
Full Changelog: Compare OfficeIMO-v20260403150522 to OfficeIMO-v20260409175302
- OfficeIMO.CSV.0.1.22.zip
- OfficeIMO.Excel.0.6.22.zip
- OfficeIMO.Markdown.0.6.9.zip
- OfficeIMO.Markdown.Html.0.1.9.zip
- OfficeIMO.MarkdownRenderer.0.2.9.zip
- OfficeIMO.MarkdownRenderer.Wpf.0.1.4.zip
- OfficeIMO.Pdf.0.1.17.zip
- OfficeIMO.PowerPoint.1.0.17.zip
- OfficeIMO.Reader.0.1.17.zip
- OfficeIMO.Word.1.0.42.zip
- OfficeIMO.Word.Html.1.0.16.zip
- OfficeIMO.Word.Markdown.1.0.16.zip
- OfficeIMO.Word.Pdf.1.0.16.zip
OfficeIMO 2026.04.03-15.05.22
What's Changed
- Stabilize OfficeIMO website shell and API docs by @PrzemyslawKlys in #1745
- Polish PowerShell API docs presentation by @PrzemyslawKlys in #1746
- Add regression tests for strong-wrapped markdown links by @PrzemyslawKlys in #1747
- Inline critical CSS for custom page shells by @PrzemyslawKlys in #1748
- Include table content in Word document aggregates by @PrzemyslawKlys in #1750
- Preserve tabs in underlined Word runs by @PrzemyslawKlys in #1749
Full Changelog: Compare OfficeIMO-v20260401121024 to OfficeIMO-v20260403150522
- OfficeIMO.CSV.0.1.21.zip
- OfficeIMO.Excel.0.6.21.zip
- OfficeIMO.Markdown.0.6.8.zip
- OfficeIMO.Markdown.Html.0.1.8.zip
- OfficeIMO.MarkdownRenderer.0.2.8.zip
- OfficeIMO.MarkdownRenderer.Wpf.0.1.3.zip
- OfficeIMO.Pdf.0.1.16.zip
- OfficeIMO.PowerPoint.1.0.16.zip
- OfficeIMO.Reader.0.1.16.zip
- OfficeIMO.Word.1.0.41.zip
- OfficeIMO.Word.Html.1.0.15.zip
- OfficeIMO.Word.Markdown.1.0.15.zip
- OfficeIMO.Word.Pdf.1.0.15.zip
OfficeIMO 2026.04.01-12.10.24
What's Changed
- Bump coverlet.collector from 8.0.0 to 8.0.1 by @dependabot[bot] in #1729
- Upgrade DocumentFormat.OpenXml to 3.5.1 by @PrzemyslawKlys in #1731
- Update PowerForge GitHub housekeeping pin by @PrzemyslawKlys in #1733
- Add Google Workspace resilience and diagnostics support by @PrzemyslawKlys in #1734
- Add OfficeIMO website and GitHub Pages pipeline by @PrzemyslawKlys in #1732
- Add OfficeIMO website and API polish by @PrzemyslawKlys in #1735
- Fix OfficeIMO website asset loading and mobile docs shell by @PrzemyslawKlys in #1736
- Unify OfficeIMO PowerForge website workflows by @PrzemyslawKlys in #1737
- Refresh PowerForge workflow pins by @PrzemyslawKlys in #1738
- Gate website cloudflare post-deploy on available secrets by @PrzemyslawKlys in #1739
- Thin OfficeIMO website workflows by @PrzemyslawKlys in #1740
- Gate OfficeIMO website post-deploy on Cloudflare config by @PrzemyslawKlys in #1741
- Bump Markdig from 1.1.1 to 1.1.2 by @dependabot[bot] in #1743
- Bump AngleSharp.Css from 1.0.0-beta.157 to 1.0.0-beta.213 by @dependabot[bot] in #1742
- [codex] stabilize OfficeIMO website experience by @PrzemyslawKlys in #1744
Full Changelog: Compare OfficeIMO-v20260323175610 to OfficeIMO-v20260401121024
- OfficeIMO.CSV.0.1.20.zip
- OfficeIMO.Excel.0.6.20.zip
- OfficeIMO.Markdown.0.6.7.zip
- OfficeIMO.Markdown.Html.0.1.7.zip
- OfficeIMO.MarkdownRenderer.0.2.7.zip
- OfficeIMO.MarkdownRenderer.Wpf.0.1.2.zip
- OfficeIMO.Pdf.0.1.15.zip
- OfficeIMO.PowerPoint.1.0.15.zip
- OfficeIMO.Reader.0.1.15.zip
- OfficeIMO.Word.1.0.40.zip
- OfficeIMO.Word.Html.1.0.14.zip
- OfficeIMO.Word.Markdown.1.0.14.zip
- OfficeIMO.Word.Pdf.1.0.14.zip
OfficeIMO 2026.03.23-17.56.10
What's Changed
- Improve OfficeIMO.Markdown AST and Word round-tripping by @PrzemyslawKlys in #1722
- Fix Excel OpenXML repair risks and add validation coverage by @PrzemyslawKlys in #1723
- Strengthen OfficeIMO.Markdown AST and extension APIs by @PrzemyslawKlys in #1724
- Improve markdown syntax ownership and provenance by @PrzemyslawKlys in #1725
- Docs: add AppendDocument example by @PrzemyslawKlys in #1728
- Improve markdown transcript contracts and shared visual corpus by @PrzemyslawKlys in #1727
Full Changelog: Compare OfficeIMO-v20260319132410 to OfficeIMO-v20260323175610
- OfficeIMO.CSV.0.1.19.zip
- OfficeIMO.Excel.0.6.19.zip
- OfficeIMO.Markdown.0.6.6.zip
- OfficeIMO.Markdown.Html.0.1.6.zip
- OfficeIMO.MarkdownRenderer.0.2.6.zip
- OfficeIMO.MarkdownRenderer.Wpf.0.1.1.zip
- OfficeIMO.Pdf.0.1.14.zip
- OfficeIMO.PowerPoint.1.0.14.zip
- OfficeIMO.Reader.0.1.14.zip
- OfficeIMO.Word.1.0.39.zip
- OfficeIMO.Word.Html.1.0.13.zip
- OfficeIMO.Word.Markdown.1.0.13.zip
- OfficeIMO.Word.Pdf.1.0.13.zip
OfficeIMO 2026.03.19-13.24.10
What's Changed
- Fix PowerPoint section serialization and repair prompts by @PrzemyslawKlys in #1716
- Revert unrelated Markdown commit accidentally merged in #1716 by @PrzemyslawKlys in #1717
- Fix PowerPoint imported notes fidelity and package metadata by @PrzemyslawKlys in #1718
- Improve Markdown AST structure and source fidelity by @PrzemyslawKlys in #1715
- Fix PowerPoint post-merge CI compatibility after #1718 by @PrzemyslawKlys in #1719
- Add reusable WPF host for OfficeIMO.MarkdownRenderer by @PrzemyslawKlys in #1720
- Harden MarkdownRenderer.Wpf host by @PrzemyslawKlys in #1721
Full Changelog: Compare OfficeIMO-v20260318172507 to OfficeIMO-v20260319132410
- OfficeIMO.CSV.0.1.18.zip
- OfficeIMO.Excel.0.6.18.zip
- OfficeIMO.Markdown.0.6.5.zip
- OfficeIMO.Markdown.Html.0.1.5.zip
- OfficeIMO.MarkdownRenderer.0.2.5.zip
- OfficeIMO.MarkdownRenderer.Wpf.0.1.0.zip
- OfficeIMO.Pdf.0.1.13.zip
- OfficeIMO.PowerPoint.1.0.13.zip
- OfficeIMO.Reader.0.1.13.zip
- OfficeIMO.Word.1.0.38.zip
- OfficeIMO.Word.Html.1.0.12.zip
- OfficeIMO.Word.Markdown.1.0.12.zip
- OfficeIMO.Word.Pdf.1.0.12.zip
OfficeIMO 2026.03.18-17.25.07
What's Changed
- Improve markdown crawl portability and listing-card metadata handling by @PrzemyslawKlys in #1713
Full Changelog: Compare OfficeIMO-v20260318084328 to OfficeIMO-v20260318172507
- OfficeIMO.CSV.0.1.17.zip
- OfficeIMO.Excel.0.6.17.zip
- OfficeIMO.Markdown.0.6.4.zip
- OfficeIMO.Markdown.Html.0.1.4.zip
- OfficeIMO.MarkdownRenderer.0.2.4.zip
- OfficeIMO.Pdf.0.1.12.zip
- OfficeIMO.PowerPoint.1.0.12.zip
- OfficeIMO.Reader.0.1.12.zip
- OfficeIMO.Word.1.0.37.zip
- OfficeIMO.Word.Html.1.0.11.zip
- OfficeIMO.Word.Markdown.1.0.11.zip
- OfficeIMO.Word.Pdf.1.0.11.zip
OfficeIMO 2026.03.18-08.43.28
What's Changed
- Improve markdown AST parity across HTML and Word pipelines by @PrzemyslawKlys in #1706
- Fix markdown post-merge follow-ups by @PrzemyslawKlys in #1707
- Add reusable document reader path orchestration by @PrzemyslawKlys in #1708
- Improve markdown AST and plugin architecture by @PrzemyslawKlys in #1709
- Improve markdown AST pipeline diagnostics and IX transforms by @PrzemyslawKlys in #1710
- Improve markdown AST HTML picture and link parity by @PrzemyslawKlys in #1711
- Bump OfficeIMO.Markdown.Html package version by @PrzemyslawKlys in #1712
Full Changelog: Compare OfficeIMO-v20260316083655 to OfficeIMO-v20260318084328
- OfficeIMO.CSV.0.1.16.zip
- OfficeIMO.Excel.0.6.16.zip
- OfficeIMO.Markdown.0.6.3.zip
- OfficeIMO.Markdown.Html.0.1.3.zip
- OfficeIMO.MarkdownRenderer.0.2.3.zip
- OfficeIMO.Pdf.0.1.11.zip
- OfficeIMO.PowerPoint.1.0.11.zip
- OfficeIMO.Reader.0.1.11.zip
- OfficeIMO.Word.1.0.36.zip
- OfficeIMO.Word.Html.1.0.10.zip
- OfficeIMO.Word.Markdown.1.0.10.zip
- OfficeIMO.Word.Pdf.1.0.10.zip
OfficeIMO 2026.03.16-08.36.55
What's Changed
- Expand Google Docs export fidelity by @PrzemyslawKlys in #1700
- Improve AST parity for markdown, html import, and rich table cells by @PrzemyslawKlys in #1703
Full Changelog: Compare OfficeIMO-v20260315164709 to OfficeIMO-v20260316083655
- OfficeIMO.CSV.0.1.15.zip
- OfficeIMO.Excel.0.6.15.zip
- OfficeIMO.Markdown.0.6.2.zip
- OfficeIMO.Markdown.Html.0.1.2.zip
- OfficeIMO.MarkdownRenderer.0.2.2.zip
- OfficeIMO.Pdf.0.1.10.zip
- OfficeIMO.PowerPoint.1.0.10.zip
- OfficeIMO.Reader.0.1.10.zip
- OfficeIMO.Word.1.0.35.zip
- OfficeIMO.Word.Html.1.0.9.zip
- OfficeIMO.Word.Markdown.1.0.9.zip
- OfficeIMO.Word.Pdf.1.0.9.zip
OfficeIMO 2026.03.15-16.47.09
What's Changed
- Add Google Workspace planning and Sheets export scaffolding by @PrzemyslawKlys in #1691
- Round-trip visual hosts into semantic fences by @PrzemyslawKlys in #1692
- Expand Google Sheets filter and table fidelity by @PrzemyslawKlys in #1693
- Build AST-driven markdown engine profiles and Word bridge by @PrzemyslawKlys in #1695
- Expand Google Sheets validation fidelity by @PrzemyslawKlys in #1694
- Fix CRLF collapsed metric normalization on Windows by @PrzemyslawKlys in #1696
- Stabilize markdown remote image downloads on net472 by @PrzemyslawKlys in #1697
- Add Google Docs export pipeline by @PrzemyslawKlys in #1698
- fix(excel): persist worksheet gridlines visibility by @PrzemyslawKlys in #1699
- Make IntelligenceX transcript contracts explicit by @PrzemyslawKlys in #1701
- Fix worksheet gridlines persistence by @PrzemyslawKlys in #1702
Full Changelog: Compare OfficeIMO-v20260313144302 to OfficeIMO-v20260315164709
- OfficeIMO.CSV.0.1.14.zip
- OfficeIMO.Excel.0.6.14.zip
- OfficeIMO.Markdown.0.6.1.zip
- OfficeIMO.Markdown.Html.0.1.1.zip
- OfficeIMO.MarkdownRenderer.0.2.1.zip
- OfficeIMO.Pdf.0.1.9.zip
- OfficeIMO.PowerPoint.1.0.9.zip
- OfficeIMO.Reader.0.1.9.zip
- OfficeIMO.Word.1.0.34.zip
- OfficeIMO.Word.Html.1.0.8.zip
- OfficeIMO.Word.Markdown.1.0.8.zip
- OfficeIMO.Word.Pdf.1.0.8.zip
OfficeIMO 2026.03.13-14.43.02
What's Changed
- Modular Reader foundations: hardened ZIP/EPUB + JSON/XML structured ingestion by @PrzemyslawKlys in #1450
- Bump SkiaSharp from 3.119.1 to 3.119.2 by @dependabot[bot] in #1424
- Bump coverlet.collector from 6.0.4 to 8.0.0 by @dependabot[bot] in #1436
- Bump Microsoft.Bcl.AsyncInterfaces from 9.0.3 to 10.0.3 by @dependabot[bot] in #1437
- Bump QuestPDF from 2025.12.1 to 2026.2.0 by @dependabot[bot] in #1438
- Bump System.IO.Packaging from 8.0.1 to 10.0.3 by @dependabot[bot] in #1439
- Bump Verify.Xunit from 31.9.3 to 31.12.5 by @dependabot[bot] in #1440
- Fix Visio round-tripping and improve fluent authoring by @PrzemyslawKlys in #1453
- test(PowerPoint): harden stream lifecycle coverage by @PrzemyslawKlys in #1461
- feat(PowerPoint): enrich markdown extraction output by @PrzemyslawKlys in #1462
- feat(PowerPoint): add scatter chart data APIs by @PrzemyslawKlys in #1463
- Add fenced code block renderer extensions by @PrzemyslawKlys in #1455
- Add built-in IX visual fence renderers by @PrzemyslawKlys in #1457
- Add shared native visual metadata by @PrzemyslawKlys in #1458
- Add generic native visual contract by @PrzemyslawKlys in #1459
- Dogfood the native visual contract fallback by @PrzemyslawKlys in #1460
- Improve Visio master fidelity and native flowchart support by @PrzemyslawKlys in #1464
- feat(PowerPoint): add general chart axis helpers by @PrzemyslawKlys in #1467
- Improve parser-aware markdown reader chunking by @PrzemyslawKlys in #1465
- Add markdown reader provenance metadata by @PrzemyslawKlys in #1466
- feat(PowerPoint): add data label formatting helpers by @PrzemyslawKlys in #1468
- feat(PowerPoint): add title and legend text styling by @PrzemyslawKlys in #1469
- feat(PowerPoint): add axis title text styling by @PrzemyslawKlys in #1470
- Improve markdown reader block anchors by @PrzemyslawKlys in #1474
- Add markdown highlight inline support by @PrzemyslawKlys in #1475
- Preserve markdown link label formatting in Word by @PrzemyslawKlys in #1476
- Fix per-run hyperlink formatting for markdown round-trips by @PrzemyslawKlys in #1478
- Improve autolink handling for balanced parentheses by @PrzemyslawKlys in #1479
- Improve nested list block parsing after blank lines by @PrzemyslawKlys in #1480
- test(PowerPoint): restore axis title formatting fact attribute by @PrzemyslawKlys in #1477
- test: fix xunit single assertions by @PrzemyslawKlys in #1481
- Harden table parsing around unmatched backticks by @PrzemyslawKlys in #1482
- feat(PowerPoint): support updating pie and doughnut charts by @PrzemyslawKlys in #1471
- feat(PowerPoint): add pie and doughnut chart APIs by @PrzemyslawKlys in #1472
- feat(PowerPoint): add scatter axis helpers by @PrzemyslawKlys in #1473
- Support explicit mailto angle autolinks by @PrzemyslawKlys in #1484
- Expand angle autolink absolute URI coverage by @PrzemyslawKlys in #1485
- feat(PowerPoint): add axis label text styling by @PrzemyslawKlys in #1486
- feat(PowerPoint): add axis label rotation and tick helpers by @PrzemyslawKlys in #1487
- Support generic absolute URI angle autolinks by @PrzemyslawKlys in #1488
- Guard blockquote lazy continuation boundaries by @PrzemyslawKlys in #1489
- Prefer inner bold runs inside italic spans by @PrzemyslawKlys in #1490
- feat(PowerPoint): add axis gridline and display unit helpers by @PrzemyslawKlys in #1491
- Rebalance triple emphasis delimiter runs by @PrzemyslawKlys in #1492
- Keep lone same-marker delimiters literal inside bold by @PrzemyslawKlys in #1493
- feat(PowerPoint): add scatter axis gridline and display unit helpers by @PrzemyslawKlys in #1494
- Keep lone double-marker runs literal inside italic by @PrzemyslawKlys in #1495
- feat(PowerPoint): add chart and plot area styling by @PrzemyslawKlys in #1496
- Keep nested quote continuation inside list items by @PrzemyslawKlys in #1497
- feat(PowerPoint): add series trendline support by @PrzemyslawKlys in #1499
- feat(PowerPoint): add data label styling helpers by @PrzemyslawKlys in #1501
- feat(PowerPoint): add series data label styling helpers by @PrzemyslawKlys in #1503
- feat(PowerPoint): add series data label configuration helpers by @PrzemyslawKlys in #1504
- feat(PowerPoint): add chart data label callouts by @PrzemyslawKlys in #1505
- feat(PowerPoint): add point data label overrides by @PrzemyslawKlys in #1506
- feat(PowerPoint): add point data label callouts by @PrzemyslawKlys in #1508
- feat(PowerPoint): add series data label templates by @PrzemyslawKlys in #1510
- feat(PowerPoint): add chart data label templates by @PrzemyslawKlys in #1512
- feat(PowerPoint): add point label templates by @PrzemyslawKlys in #1514
- feat(PowerPoint): add point label reset helpers by @PrzemyslawKlys in #1515
- feat(PowerPoint): add label reset helpers by @PrzemyslawKlys in #1517
- feat(PowerPoint): add chart text reset helpers by @PrzemyslawKlys in #1519
- feat(PowerPoint): add axis text reset helpers by @PrzemyslawKlys in #1522
- Improve underscore emphasis fallback parity by @PrzemyslawKlys in #1498
- Allow same-type nested lists in markdown reader by @PrzemyslawKlys in #1502
- Improve mixed-marker emphasis fallback by @PrzemyslawKlys in #1509
- feat(PowerPoint): add gridline reset helpers by @PrzemyslawKlys in #1523
- Improve bold-plus-italic delimiter rebalancing by @PrzemyslawKlys in #1513
- Improve loose list child block ordering by @PrzemyslawKlys in #1516
- Clean up blockquote lazy continuation spacing by @PrzemyslawKlys in #1520
- Add Markdig parity corpus tests by @PrzemyslawKlys in #1521
- Improve markdown font and code round-tripping by @PrzemyslawKlys in #1524
- Match Markdig code block HTML newline behavior by @PrzemyslawKlys in #1525
- Tighten ambiguous autolink trailing parens by @PrzemyslawKlys in #1526
- Refine autolink punctuation parity by @PrzemyslawKlys in #1527
- Fix list continuation indent parity by @PrzemyslawKlys in #1528
- Support setext headings in list items by @PrzemyslawKlys in #1529
- Avoid empty paragraphs after list setext headings by @PrzemyslawKlys in #1530
- Honor non-one ordered paragraph interruption rules by @PrzemyslawKlys in #1531
- Fix nested quote lazy continuation after non-one ordered text by @PrzemyslawKlys in #1532
- Expand Markdig parity regression coverage by @PrzemyslawKlys in #1533
- Expand Visio native geometric master catalog by @PrzemyslawKlys in #1483
- Add markdown syntax tree parse result by @PrzemyslawKlys in #1535
- Avoid definition list false positives for literal URLs by @PrzemyslawKlys in #1534
- Capture nested syntax spans for quotes and callouts by @PrzemyslawKlys in #1536
- Capture list item syntax spans by @PrzemyslawKlys in #1537
- Derive list syntax spans by @PrzemyslawKlys in #1538
- Fix nested list syntax offsets by @PrzemyslawKlys in #1539
- Capture definition list syntax spans by @PrzemyslawKlys in #1540
- Capture details body syntax spans by @PrzemyslawKlys in #1541
- Capture details summary syntax spans by @PrzemyslawKlys in #1542
- Add syntax line targeting helpers by @PrzemyslawKlys in #1543
- Capture footnote syntax children by @PrzemyslawKlys in #1544
- Add document syntax span helpers by @PrzemyslawKlys in #1545
- Capture table row syntax nodes by @PrzemyslawKlys in #1546
- Add syntax range targeting helpers by @PrzemyslawKlys in #1547
- Add syntax overlap targeting helpers by @PrzemyslawKlys in #1548
- Capture code block syntax structure by @PrzemyslawKlys in #1549
- Capture definition list syntax structure by @PrzemyslawKlys in #1550
- Capture image syntax structure by @PrzemyslawKlys in #1551
- Add AST block query helpers by @PrzemyslawKlys in #1552
- Improve markdown reader provenance and renderer normalization by @PrzemyslawKlys in #1553
- Normalize compact markdown heading/list structure by @PrzemyslawKlys in #1554
- Add built-in ix-dataview fenced renderer by @PrzemyslawKlys in #1556
- Normalize compact markdown block boundaries by @PrzemyslawKlys in #1555
- Extract ix-dataview fences as reader tables by @PrzemyslawKlys in #1557
- Preserve IX dataview metadata in reader and renderer by @PrzemyslawKlys in #1559
- Normalize compact fenced-code body boundaries by @PrzemyslawKlys in #1558
- Add IX dataview payload hashes to reader and renderer by @PrzemyslawKlys in #1560
- Normalize broken signal bullet labels in markdown by @PrzemyslawKlys in #1562
- Extract markdown visual fence metadata in reader by @PrzemyslawKlys in #1563
- Align dataview renderer output with native visual contract by @PrzemyslawKlys in #1564
- Support richer IX dataview payload shapes by @PrzemyslawKlys in #1561
- Fix repeated strong delimiter transcript artifacts by @PrzemyslawKlys in #1565
- Harden Visio load/save round-trips by @PrzemyslawKlys in #1566
- Fix Word document compatibility regressions by @PrzemyslawKlys in #1569
- Harden Visio load/save round-trips by @PrzemyslawKlys in #1567
- Preserve Visio sparse connection point indices by @PrzemyslawKlys in #1570
- Tighten Visio connection point glue resolution by @PrzemyslawKlys in #1571
- Handle guarded Visio style pattern cells by @PrzemyslawKlys in #1572
- Parse guarded Visio color cells by @PrzemyslawKlys in #1573
- Handle numeric Visio color cells by @PrzemyslawKlys in #1574
- Preserve Visio shape geometry sections by @PrzemyslawKlys in #1575
- fix(excel): harden sheet handling and save flows by @PrzemyslawKlys in #1576
- Harden Word follow-up coverage and merge behavior by @PrzemyslawKlys in #1577
- Fix PowerPoint slide content integrity regressions by @PrzemyslawKlys in #1568
- Fix markdown reader correctness and narrative definition handling by @PrzemyslawKlys in #1580
- Add markdown input normalization presets by @PrzemyslawKlys in #1581
- Cache parsed inline AST for markdown tables by @PrzemyslawKlys in #1582
- Add inline AST support for markdown headings by @PrzemyslawKlys in #1586
- Cache parsed inline AST for definition lists by @PrzemyslawKlys in #1584
- Reuse parsed paragraphs in footnote HTML rendering by @PrzemyslawKlys in #1585
- Fix markdown rendering for details summaries by @PrzemyslawKlys in #1588
- Add inline AST support for callout titles by @PrzemyslawKlys in #1587
- Fix angle destination parity for links and images by @PrzemyslawKlys in #1589
- Handle tab-indented list continuations by @PrzemyslawKlys in #1595
- Handle lazy quote continuation after list items by @PrzemyslawKlys in #1596
- Reject autolinks with query parentheses by @PrzemyslawKlys in #1592
- Reject autolinks with query fragment ampersands by @PrzemyslawKlys in #1593
- fix(PowerPoint): harden theme, table, and textbox behaviors by @PrzemyslawKlys in #1598
- Tighten plain email autolink boundaries by @PrzemyslawKlys in #1594
- fix(excel): harden save validation and rename propagation by @PrzemyslawKlys in #1597
- Fix empty destinations and invalid link title tails by @PrzemyslawKlys in #1600
- Pin CI SDK versions to available .NET builds by @PrzemyslawKlys in #1601
- Support multiline reference link titles by @PrzemyslawKlys in #1602
- Honor first reference link definition by @PrzemyslawKlys in #1605
- Handle tab-indented code blocks by @PrzemyslawKlys in #1606
- Keep invalid reference lines literal by @PrzemyslawKlys in #1607
- fix(excel): harden autosave and isolate parallel test outputs by @PrzemyslawKlys in #1603
- fix(word): harden section ordering and html/markdown edge cases by @PrzemyslawKlys in #1599
- Keep empty reference lines literal by @PrzemyslawKlys in #1608
- Keep invalid reference tails literal by @PrzemyslawKlys in #1609
- Add malformed reference body parity cases by @PrzemyslawKlys in #1610
- fix(tests): restore net472 markdown indented code coverage by @PrzemyslawKlys in #1611
- Tighten autolink left boundaries by @PrzemyslawKlys in #1612
- Tighten plain email left boundaries by @PrzemyslawKlys in #1613
- Tighten adjacent URL token boundaries by @PrzemyslawKlys in #1614
- fix(tests): unblock markdown CI on master by @PrzemyslawKlys in #1615
- Tighten plain email autolink colon boundaries by @PrzemyslawKlys in #1616
- Tighten operator-prefixed autolink boundaries by @PrzemyslawKlys in #1617
- Tighten bracket-prefixed autolink boundaries by @PrzemyslawKlys in #1618
- Tighten ampersand-prefixed autolink boundaries by @PrzemyslawKlys in #1619
- Tighten parenthesized autolink boundaries by @PrzemyslawKlys in #1620
- Tighten apostrophe-prefixed autolink boundaries by @PrzemyslawKlys in #1621
- Add Markdig-compatible reader preset by @PrzemyslawKlys in #1622
- Expand Markdig-compatible parity coverage by @PrzemyslawKlys in #1623
- Fix quadruple emphasis opener rebalancing by @PrzemyslawKlys in #1624
- fix(powerpoint): harden notes, background, and chart duplication by @PrzemyslawKlys in #1604
- Generalize odd closer emphasis rebalancing by @PrzemyslawKlys in #1625
- Fix tight list rendering after setext headings by @PrzemyslawKlys in #1626
- Fix loose list rendering across list items by @PrzemyslawKlys in #1627
- Fix quoted ordered list continuations by @PrzemyslawKlys in #1628
- Fix quote paragraph continuations after indented lines by @PrzemyslawKlys in #1630
- Fix blank-line setext headings inside list items by @PrzemyslawKlys in #1631
- Fix lazy paragraph continuations in list items by @PrzemyslawKlys in #1632
- Tighten Markdig-compatible preset behavior by @PrzemyslawKlys in #1633
- Fix renderer Markdig-compatible reader options by @PrzemyslawKlys in #1634
- Preserve narrative definition renderer options by @PrzemyslawKlys in #1635
- Preserve task list renderer options by @PrzemyslawKlys in #1636
- Expose typed inline AST nodes through InlineSequence by @PrzemyslawKlys in #1637
- Move inline rendering onto node contracts by @PrzemyslawKlys in #1638
- Move block syntax ownership onto AST nodes by @PrzemyslawKlys in #1639
- Move syntax child ownership onto markdown nodes by @PrzemyslawKlys in #1640
- Share TOC heading scope logic across render paths by @PrzemyslawKlys in #1641
- Move contextual body HTML onto markdown blocks by @PrzemyslawKlys in #1642
- Preserve duplicate heading slugs in HTML TOC rendering by @PrzemyslawKlys in #1648
- Extract markdown body render planning by @PrzemyslawKlys in #1643
- Refactor markdown block capabilities and shared rendering logic by @PrzemyslawKlys in #1649
- Move tight list item HTML onto block contracts by @PrzemyslawKlys in #1650
- Move more list item behavior onto markdown model by @PrzemyslawKlys in #1651
- Expose footnote paragraph blocks as AST children by @PrzemyslawKlys in #1652
- Expose callout child blocks as AST children by @PrzemyslawKlys in #1653
- Share nested markdown parsing across container readers by @PrzemyslawKlys in #1654
- Add owned syntax children contract for composite blocks by @PrzemyslawKlys in #1655
- Move table and definition list syntax node ownership into blocks by @PrzemyslawKlys in #1656
- Move simple block syntax node ownership into blocks by @PrzemyslawKlys in #1657
- Move remaining leaf block syntax node ownership into blocks by @PrzemyslawKlys in #1658
- Move composite block syntax node ownership into blocks by @PrzemyslawKlys in #1659
- Expose list item paragraph blocks as AST children by @PrzemyslawKlys in #1660
- Expose quote and details AST child blocks by @PrzemyslawKlys in #1661
- Expose list item child blocks by @PrzemyslawKlys in #1662
- Expose structured front matter entries by @PrzemyslawKlys in #1663
- Expose ordered list item block children by @PrzemyslawKlys in #1664
- Expose ordered top-level markdown blocks by @PrzemyslawKlys in #1665
- Add markdown block depth-first traversal by @PrzemyslawKlys in #1666
- Add markdown list item traversal APIs by @PrzemyslawKlys in #1667
- Add markdown heading query APIs by @PrzemyslawKlys in #1669
- Add typed markdown block query APIs by @PrzemyslawKlys in #1670
- Add resolved markdown heading info API by @PrzemyslawKlys in #1671
- Add markdown heading lookup helpers by @PrzemyslawKlys in #1672
- Add front matter lookup helpers by @PrzemyslawKlys in #1673
- Add document front matter accessors by @PrzemyslawKlys in #1674
- Add first-match markdown block query APIs by @PrzemyslawKlys in #1675
- Add singular heading lookup helper by @PrzemyslawKlys in #1676
- Add markdown query helper conveniences by @PrzemyslawKlys in #1681
- Align markdown docs with current reader capabilities by @PrzemyslawKlys in #1682
- Use neutral markdown profile naming by @PrzemyslawKlys in #1683
- Add markdown benchmark harness by @PrzemyslawKlys in #1684
- Polish markdown release prep docs by @PrzemyslawKlys in #1686
- Use shared PowerForge housekeeping workflow by @PrzemyslawKlys in #1685
- Add markdown HTML conversion package prototype by @PrzemyslawKlys in #1688
- Make markdown renderer generic-first and semantic-aware by @PrzemyslawKlys in #1689
- Align markdown release version map by @PrzemyslawKlys in #1690
Full Changelog: Compare OfficeIMO-v20260221214323 to OfficeIMO-v20260313144302
- OfficeIMO.CSV.0.1.13.zip
- OfficeIMO.Excel.0.6.13.zip
- OfficeIMO.Markdown.0.6.0.zip
- OfficeIMO.Markdown.Html.0.1.0.zip
- OfficeIMO.MarkdownRenderer.0.2.0.zip
- OfficeIMO.Pdf.0.1.8.zip
- OfficeIMO.PowerPoint.1.0.8.zip
- OfficeIMO.Reader.0.1.8.zip
- OfficeIMO.Word.1.0.33.zip
- OfficeIMO.Word.Html.1.0.7.zip
- OfficeIMO.Word.Markdown.1.0.7.zip
- OfficeIMO.Word.Pdf.1.0.7.zip
OfficeIMO 2026.02.21-21.43.23
What's Changed
- fix(word-markdown): render definition-list inlines in DOCX by @PrzemyslawKlys in #1447
- Markdown: add reusable tight signal-flow spacing normalization options by @PrzemyslawKlys in #1448
- Add markdown image-fit options for page-aware DOCX sizing by @PrzemyslawKlys in #1449
- Harden markdown visual export layout and narrative definition handling by @PrzemyslawKlys in #1451
Full Changelog: Compare OfficeIMO-v20260219094625 to OfficeIMO-v20260221214323
- OfficeIMO.CSV.0.1.12.zip
- OfficeIMO.Excel.0.6.12.zip
- OfficeIMO.Markdown.0.5.12.zip
- OfficeIMO.MarkdownRenderer.0.1.9.zip
- OfficeIMO.Pdf.0.1.7.zip
- OfficeIMO.PowerPoint.1.0.7.zip
- OfficeIMO.Reader.0.1.7.zip
- OfficeIMO.Word.1.0.32.zip
- OfficeIMO.Word.Html.1.0.6.zip
- OfficeIMO.Word.Markdown.1.0.6.zip
- OfficeIMO.Word.Pdf.1.0.6.zip
OfficeIMO 2026.02.19-09.46.25
What's Changed
- fix(markdown): preserve list boundaries around strong spans by @PrzemyslawKlys in #1446
Full Changelog: Compare OfficeIMO-v20260218123333 to OfficeIMO-v20260219094625
- OfficeIMO.CSV.0.1.11.zip
- OfficeIMO.Excel.0.6.11.zip
- OfficeIMO.Markdown.0.5.11.zip
- OfficeIMO.MarkdownRenderer.0.1.8.zip
- OfficeIMO.Pdf.0.1.6.zip
- OfficeIMO.PowerPoint.1.0.6.zip
- OfficeIMO.Reader.0.1.6.zip
- OfficeIMO.Word.1.0.31.zip
- OfficeIMO.Word.Html.1.0.5.zip
- OfficeIMO.Word.Markdown.1.0.5.zip
- OfficeIMO.Word.Pdf.1.0.5.zip
OfficeIMO 2026.02.18-12.33.33
What's Changed
- Centralize markdown normalization for list/paren artifacts by @PrzemyslawKlys in #1443
- Avoid inline-code mutation in tight parenthetical normalization by @PrzemyslawKlys in #1444
- chore: bump net9 targets to net10 across projects by @PrzemyslawKlys in #1445
Full Changelog: Compare OfficeIMO-v20260218110648 to OfficeIMO-v20260218123333
- OfficeIMO.CSV.0.1.10.zip
- OfficeIMO.Excel.0.6.10.zip
- OfficeIMO.Markdown.0.5.10.zip
- OfficeIMO.MarkdownRenderer.0.1.7.zip
- OfficeIMO.Pdf.0.1.5.zip
- OfficeIMO.PowerPoint.1.0.5.zip
- OfficeIMO.Reader.0.1.5.zip
- OfficeIMO.Word.1.0.30.zip
- OfficeIMO.Word.Html.1.0.4.zip
- OfficeIMO.Word.Markdown.1.0.4.zip
- OfficeIMO.Word.Pdf.1.0.4.zip
OfficeIMO 2026.02.18-11.06.48
What's Changed
- Fix handling of line breaks in Word to HTML conversion and preserve font size by @manfromarce in #1442
Full Changelog: Compare OfficeIMO-v20260217141634 to OfficeIMO-v20260218110648
- OfficeIMO.CSV.0.1.9.zip
- OfficeIMO.Excel.0.6.9.zip
- OfficeIMO.Markdown.0.5.9.zip
- OfficeIMO.MarkdownRenderer.0.1.6.zip
- OfficeIMO.Pdf.0.1.4.zip
- OfficeIMO.PowerPoint.1.0.4.zip
- OfficeIMO.Reader.0.1.4.zip
- OfficeIMO.Word.1.0.29.zip
- OfficeIMO.Word.Html.1.0.3.zip
- OfficeIMO.Word.Markdown.1.0.3.zip
- OfficeIMO.Word.Pdf.1.0.3.zip
OfficeIMO 2026.02.17-14.16.34
What's Changed
- Fix markdown normalization for collapsed chat transcript output by @PrzemyslawKlys in #1441
Full Changelog: Compare OfficeIMO-v20260216125757 to OfficeIMO-v20260217141634
- OfficeIMO.CSV.0.1.8.zip
- OfficeIMO.Excel.0.6.8.zip
- OfficeIMO.Markdown.0.5.8.zip
- OfficeIMO.MarkdownRenderer.0.1.5.zip
- OfficeIMO.Pdf.0.1.3.zip
- OfficeIMO.PowerPoint.1.0.3.zip
- OfficeIMO.Reader.0.1.3.zip
- OfficeIMO.Word.1.0.28.zip
- OfficeIMO.Word.Html.1.0.2.zip
- OfficeIMO.Word.Markdown.1.0.2.zip
- OfficeIMO.Word.Pdf.1.0.2.zip
OfficeIMO 2026.02.16-12.57.57
What's Changed
- Improve chat markdown normalization for escaped inline code and tight strong spacing by @PrzemyslawKlys in #1433
- Centralize markdown fence handling for parser and renderer by @PrzemyslawKlys in #1434
- Normalize loose strong delimiters in chat markdown by @PrzemyslawKlys in #1435
Full Changelog: Compare OfficeIMO-v20260215223515 to OfficeIMO-v20260216125757
- OfficeIMO.CSV.0.1.7.zip
- OfficeIMO.Excel.0.6.7.zip
- OfficeIMO.Markdown.0.5.7.zip
- OfficeIMO.MarkdownRenderer.0.1.4.zip
- OfficeIMO.Pdf.0.1.2.zip
- OfficeIMO.PowerPoint.1.0.2.zip
- OfficeIMO.Reader.0.1.2.zip
- OfficeIMO.Word.1.0.27.zip
- OfficeIMO.Word.Html.1.0.1.zip
- OfficeIMO.Word.Markdown.1.0.1.zip
- OfficeIMO.Word.Pdf.1.0.1.zip
OfficeIMO 2026.02.15-22.35.15
Full Changelog: Compare OfficeIMO-v20260215203613 to OfficeIMO-v20260215223515
- OfficeIMO.CSV.0.1.6.zip
- OfficeIMO.Excel.0.6.6.zip
- OfficeIMO.Markdown.0.5.6.zip
- OfficeIMO.MarkdownRenderer.0.1.3.zip
- OfficeIMO.Pdf.0.1.1.zip
- OfficeIMO.PowerPoint.1.0.1.zip
- OfficeIMO.Reader.0.1.1.zip
- OfficeIMO.Word.1.0.26.zip
- OfficeIMO.Word.Html.1.0.0.zip
- OfficeIMO.Word.Markdown.1.0.0.zip
- OfficeIMO.Word.Pdf.1.0.0.zip
OfficeIMO 2026.02.15-20.36.13
What's Changed
- OfficeIMO.Reader: unified chunk extraction for AI ingestion by @PrzemyslawKlys in #1430
- PDF reading/layout improvements (code-only split from #1302) by @PrzemyslawKlys in #1431
- Pre-publish polish: Reader hardening + build config updates by @PrzemyslawKlys in #1432
Full Changelog: Compare OfficeIMO-v20260215124958 to OfficeIMO-v20260215203613
OfficeIMO 2026.02.15-12.49.58
What's Changed
- chore(build): timestamp-based GitHub tags for Single release mode by @PrzemyslawKlys in #1428
- Add markdown text preprocessing to MarkdownRenderer by @PrzemyslawKlys in #1429
Full Changelog: Compare OfficeIMO-v1.0.23 to OfficeIMO-v20260215124958
OfficeIMO-v1.0.23
What's Changed
- Improve Markdown parsing and add renderer for chat by @PrzemyslawKlys in #1426
- MarkdownRenderer: offline bundling mode for Mermaid/Chart/Math by @PrzemyslawKlys in #1427
Full Changelog: Compare OfficeIMO-v1.0.22 to OfficeIMO-v1.0.23
OfficeIMO-v1.0.22
What's Changed
- Add cached worksheet access with thread-safe invalidation by @PrzemyslawKlys in #1375
- Make CellValues the canonical batch API by @PrzemyslawKlys in #1372
- Stream Excel file loading and add large file regression test by @PrzemyslawKlys in #1371
- Power point improvement by @PrzemyslawKlys in #1395
- feat(presentation): ⨠Enhance PowerPoint slide creation with advanced⦠by @PrzemyslawKlys in #1396
- Bump PdfPig from 0.1.11 to 0.1.13 by @dependabot[bot] in #1397
- Bump QuestPDF from 2025.7.4 to 2025.12.1 by @dependabot[bot] in #1398
- Bump Verify.Xunit from 31.4.1 to 31.9.3 by @dependabot[bot] in #1399
- Multiple improvements by @PrzemyslawKlys in #1400
- feat(tests): ⨠add functional smoke tests for PowerPoint presentation⦠by @PrzemyslawKlys in #1401
- feat(charts): šØ add support for creating and customizing charts by @PrzemyslawKlys in #1402
- feat(Excel, PowerPoint, Visio): ⨠add stream support for document cre⦠by @PrzemyslawKlys in #1405
- feat(Excel, PowerPoint, Visio): ⨠add stream support for document cre⦠by @PrzemyslawKlys in #1404
- Add formatting for structured document tags by @PrzemyslawKlys in #1416
- Add Excel pivot tables, comments, protection, and sparklines by @PrzemyslawKlys in #1417
- Fix #1418: cover page properties API + configurable TOC levels by @PrzemyslawKlys in #1419
- Fix inline parsing in lists + heading priority by @PrzemyslawKlys in #1420
- Markdown: guard null parsing context in definition terms by @PrzemyslawKlys in #1422
Full Changelog: Compare OfficeIMO.CSV-v0.1.0 to OfficeIMO-v1.0.22
OfficeIMO.CSV-v0.1.0
What's Changed
- feat(csv): ⨠Add CSV document model with parsing, validation, and ser⦠by @PrzemyslawKlys in #1377
- test: ⨠Add new tests for CSV document parsing and validation by @PrzemyslawKlys in #1378
Full Changelog: Compare OfficeIMO.Excel-v0.6.0 to OfficeIMO.CSV-v0.1.0
OfficeIMO.Excel-v0.6.0
What's Changed
- Ensure TOC fields update on open by @PrzemyslawKlys in #1305
- Bump System.Net.Http from 4.3.0 to 4.3.4 by @dependabot[bot] in #1307
- Bump Verify.Xunit from 30.20.1 to 31.0.1 by @dependabot[bot] in #1313
- Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.0 by @dependabot[bot] in #1310
- Add parent accessors for Word table rows and cells by @PrzemyslawKlys in #1321
- Add parent navigation to WordParagraph objects by @PrzemyslawKlys in #1322
- feat(word): ⨠render run colors/highlights and paragraph backgrounds/⦠by @PrzemyslawKlys in #1325
- Implement GitHub-style HTML block parsing by @PrzemyslawKlys in #1326
- Ensure Markdown slugs stay unique across renders by @PrzemyslawKlys in #1329
- Handle dictionary sequences when building Markdown tables by @PrzemyslawKlys in #1327
- Support blank lines within HTML block parsing by @PrzemyslawKlys in #1331
- fix(reader): š Trim BOM (U+FEFF) at start of input to avoid blocking ⦠by @PrzemyslawKlys in #1335
- Handle tables without outer pipes in markdown reader by @PrzemyslawKlys in #1334
- Bump QuestPDF from 2025.7.1 to 2025.7.3 by @dependabot[bot] in #1338
- Bump OpenMcdf from 3.0.1 to 3.0.3 by @dependabot[bot] in #1337
- Bump Verify.Xunit from 31.0.1 to 31.4.1 by @dependabot[bot] in #1342
- Add helpers for setting table column widths by percentage by @PrzemyslawKlys in #1344
- Add options to disable HTML parsing in Markdown reader by @PrzemyslawKlys in #1332
- Ensure deterministic SdtId allocation for Word building blocks by @PrzemyslawKlys in #1346
- Ensure watermarks use unique structured document IDs by @PrzemyslawKlys in #1347
- Ensure structured document tags use shared ID allocator by @PrzemyslawKlys in #1348
- Add tests to guard SdtId assignment on Word templates by @PrzemyslawKlys in #1349
- Ensure cloned Word tables assign new SDT identifiers by @PrzemyslawKlys in #1350
- feat(word): ⨠normalize table grid/widths for Word Online and Google ⦠by @PrzemyslawKlys in #1351
- Add Markdown image size overloads and tests by @PrzemyslawKlys in #1330
- Escape Markdown table cells by @PrzemyslawKlys in #1328
- Handle HTML comment blocks by @PrzemyslawKlys in #1333
- Add shared markdown inline escaping helper by @PrzemyslawKlys in #1367
- Enforce FromSequence row and column limits by @PrzemyslawKlys in #1366
- Add structured details block support by @PrzemyslawKlys in #1368
- feat(url-resolution): ⨠Add base URI support for resolving relative l⦠by @PrzemyslawKlys in #1370
- Adapt code block fences to embedded backticks by @PrzemyslawKlys in #1365
- Fix anchored list item insertion order by @PrzemyslawKlys in #1356
Full Changelog: Compare OfficeIMO.Excel-v0.5.0 to OfficeIMO.Excel-v0.6.0
OfficeIMO.Markdown-v0.5.0
What's Changed
- Ensure TOC fields update on open by @PrzemyslawKlys in #1305
- Bump System.Net.Http from 4.3.0 to 4.3.4 by @dependabot[bot] in #1307
- Bump Verify.Xunit from 30.20.1 to 31.0.1 by @dependabot[bot] in #1313
- Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.0 by @dependabot[bot] in #1310
- Add parent accessors for Word table rows and cells by @PrzemyslawKlys in #1321
- Add parent navigation to WordParagraph objects by @PrzemyslawKlys in #1322
- feat(word): ⨠render run colors/highlights and paragraph backgrounds/⦠by @PrzemyslawKlys in #1325
- Implement GitHub-style HTML block parsing by @PrzemyslawKlys in #1326
- Ensure Markdown slugs stay unique across renders by @PrzemyslawKlys in #1329
- Handle dictionary sequences when building Markdown tables by @PrzemyslawKlys in #1327
- Support blank lines within HTML block parsing by @PrzemyslawKlys in #1331
- fix(reader): š Trim BOM (U+FEFF) at start of input to avoid blocking ⦠by @PrzemyslawKlys in #1335
- Handle tables without outer pipes in markdown reader by @PrzemyslawKlys in #1334
- Bump QuestPDF from 2025.7.1 to 2025.7.3 by @dependabot[bot] in #1338
- Bump OpenMcdf from 3.0.1 to 3.0.3 by @dependabot[bot] in #1337
- Bump Verify.Xunit from 31.0.1 to 31.4.1 by @dependabot[bot] in #1342
- Add helpers for setting table column widths by percentage by @PrzemyslawKlys in #1344
- Add options to disable HTML parsing in Markdown reader by @PrzemyslawKlys in #1332
- Ensure deterministic SdtId allocation for Word building blocks by @PrzemyslawKlys in #1346
- Ensure watermarks use unique structured document IDs by @PrzemyslawKlys in #1347
- Ensure structured document tags use shared ID allocator by @PrzemyslawKlys in #1348
- Add tests to guard SdtId assignment on Word templates by @PrzemyslawKlys in #1349
- Ensure cloned Word tables assign new SDT identifiers by @PrzemyslawKlys in #1350
- feat(word): ⨠normalize table grid/widths for Word Online and Google ⦠by @PrzemyslawKlys in #1351
- Add Markdown image size overloads and tests by @PrzemyslawKlys in #1330
- Escape Markdown table cells by @PrzemyslawKlys in #1328
- Handle HTML comment blocks by @PrzemyslawKlys in #1333
- Add shared markdown inline escaping helper by @PrzemyslawKlys in #1367
- Enforce FromSequence row and column limits by @PrzemyslawKlys in #1366
- Add structured details block support by @PrzemyslawKlys in #1368
- feat(url-resolution): ⨠Add base URI support for resolving relative l⦠by @PrzemyslawKlys in #1370
- Adapt code block fences to embedded backticks by @PrzemyslawKlys in #1365
- Fix anchored list item insertion order by @PrzemyslawKlys in #1356
Full Changelog: Compare OfficeIMO.Excel-v0.5.0 to OfficeIMO.Excel-v0.6.0
OfficeIMO.Word-v1.0.20
What's Changed
- Ensure TOC fields update on open by @PrzemyslawKlys in #1305
- Bump System.Net.Http from 4.3.0 to 4.3.4 by @dependabot[bot] in #1307
- Bump Verify.Xunit from 30.20.1 to 31.0.1 by @dependabot[bot] in #1313
- Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.0 by @dependabot[bot] in #1310
- Add parent accessors for Word table rows and cells by @PrzemyslawKlys in #1321
- Add parent navigation to WordParagraph objects by @PrzemyslawKlys in #1322
- feat(word): ⨠render run colors/highlights and paragraph backgrounds/⦠by @PrzemyslawKlys in #1325
- Implement GitHub-style HTML block parsing by @PrzemyslawKlys in #1326
- Ensure Markdown slugs stay unique across renders by @PrzemyslawKlys in #1329
- Handle dictionary sequences when building Markdown tables by @PrzemyslawKlys in #1327
- Support blank lines within HTML block parsing by @PrzemyslawKlys in #1331
- fix(reader): š Trim BOM (U+FEFF) at start of input to avoid blocking ⦠by @PrzemyslawKlys in #1335
- Handle tables without outer pipes in markdown reader by @PrzemyslawKlys in #1334
- Bump QuestPDF from 2025.7.1 to 2025.7.3 by @dependabot[bot] in #1338
- Bump OpenMcdf from 3.0.1 to 3.0.3 by @dependabot[bot] in #1337
- Bump Verify.Xunit from 31.0.1 to 31.4.1 by @dependabot[bot] in #1342
- Add helpers for setting table column widths by percentage by @PrzemyslawKlys in #1344
- Add options to disable HTML parsing in Markdown reader by @PrzemyslawKlys in #1332
- Ensure deterministic SdtId allocation for Word building blocks by @PrzemyslawKlys in #1346
- Ensure watermarks use unique structured document IDs by @PrzemyslawKlys in #1347
- Ensure structured document tags use shared ID allocator by @PrzemyslawKlys in #1348
- Add tests to guard SdtId assignment on Word templates by @PrzemyslawKlys in #1349
- Ensure cloned Word tables assign new SDT identifiers by @PrzemyslawKlys in #1350
- feat(word): ⨠normalize table grid/widths for Word Online and Google ⦠by @PrzemyslawKlys in #1351
- Add Markdown image size overloads and tests by @PrzemyslawKlys in #1330
- Escape Markdown table cells by @PrzemyslawKlys in #1328
- Handle HTML comment blocks by @PrzemyslawKlys in #1333
- Add shared markdown inline escaping helper by @PrzemyslawKlys in #1367
- Enforce FromSequence row and column limits by @PrzemyslawKlys in #1366
- Add structured details block support by @PrzemyslawKlys in #1368
- feat(url-resolution): ⨠Add base URI support for resolving relative l⦠by @PrzemyslawKlys in #1370
- Adapt code block fences to embedded backticks by @PrzemyslawKlys in #1365
- Fix anchored list item insertion order by @PrzemyslawKlys in #1356
Full Changelog: Compare OfficeIMO.Excel-v0.5.0 to OfficeIMO.Excel-v0.6.0
OfficeIMO.Excel-v0.5.0
What's Changed
- Bump Verify.Xunit from 30.13.0 to 30.18.0 by @dependabot[bot] in #1214
- Handle empty header maps on blank sheets by @PrzemyslawKlys in #1226
- Improve PowerPoint textbox text handling by @PrzemyslawKlys in #1220
- Ensure default PowerPoint parts include document properties by @PrzemyslawKlys in #1216
- Use local DateTimeOffset values when writing Excel cells by @PrzemyslawKlys in #1222
- Preserve header/footer image content types by @PrzemyslawKlys in #1221
- Handle missing headers gracefully across Excel helpers by @PrzemyslawKlys in #1225
- Sanitize shared strings for parallel cell updates by @PrzemyslawKlys in #1227
- Ensure notes master for generated notes by @PrzemyslawKlys in #1215
- Add stream-based overloads for ExcelDocument loading by @PrzemyslawKlys in #1224
- fix formattign issues by @PrzemyslawKlys in #1230
- Refactor VsdxPackageValidator into partial classes for better organiz⦠by @PrzemyslawKlys in #1200
- Ensure PowerPoint default parts include metadata by @PrzemyslawKlys in #1231
- Extend Excel preflight cleanup for empty containers by @PrzemyslawKlys in #1236
- Prevent removing last slide and add regression tests by @PrzemyslawKlys in #1233
- Make table totals header lookup case-insensitive by @PrzemyslawKlys in #1232
- Ensure notes master part is created and linked to notes slides by @PrzemyslawKlys in #1234
- Guard against inverted Excel table ranges by @PrzemyslawKlys in #1235
- Ensure Excel saves create missing directories by @PrzemyslawKlys in #1237
- Handle blank sheet header lookups by @PrzemyslawKlys in #1238
- Update Visio validator namespace and add 2012 validation tests by @PrzemyslawKlys in #1247
- Ensure positive Visio view scale defaults by @PrzemyslawKlys in #1248
- Preserve header footer image content types from downloads by @PrzemyslawKlys in #1246
- Handle DataTable nulls as explicit blanks by @PrzemyslawKlys in #1242
- Write integer cell values without double coercion by @PrzemyslawKlys in #1240
- Refine PowerPoint picture image type handling by @PrzemyslawKlys in #1244
- Ensure unique PowerPoint chart axis ids and add regression test by @PrzemyslawKlys in #1243
- Handle TimeSpan DataTable columns with duration number format by @PrzemyslawKlys in #1256
- Refine cross-platform targeting and builds by @PrzemyslawKlys in #1251
- Propagate cancellation during Excel column autofit by @PrzemyslawKlys in #1255
- Add default slide layouts and extend theme tests by @PrzemyslawKlys in #1245
- Fix combo box selection persistence by @PrzemyslawKlys in #1260
- Handle single-cell named ranges without exceptions by @PrzemyslawKlys in #1261
- Ensure Visio content types include all page overrides by @PrzemyslawKlys in #1252
- Improve worksheet validation diagnostics by @PrzemyslawKlys in #1254
- Add configurable Visio page scales by @PrzemyslawKlys in #1253
- Enhance Visio validator coverage for multi-page packages by @PrzemyslawKlys in #1250
- Optimize InsertObjects header tracking and add large graph test by @PrzemyslawKlys in #1262
- Handle missing Excel header lookups gracefully by @PrzemyslawKlys in #1249
- Guard SetCellValues against null inputs by @PrzemyslawKlys in #1257
- Fix break paragraph insertion for section tracking by @PrzemyslawKlys in #1272
- Add SmartArt templates and tests for additional layouts by @PrzemyslawKlys in #1280
- Preserve relationships when appending Word documents by @PrzemyslawKlys in #1275
- Ensure compatibility fixer rewinds streams by @PrzemyslawKlys in #1271
- Allow clearing PDF metadata values by @PrzemyslawKlys in #1268
- Add guards for PDF image input validation by @PrzemyslawKlys in #1267
- Render bullets with hanging indent in PDF lists by @PrzemyslawKlys in #1266
- Handle empty rows when reading ranges by @PrzemyslawKlys in #1277
- Bump AngleSharp.Css from 1.0.0-beta.154 to 1.0.0-beta.157 by @dependabot[bot] in #1281
- Bump xunit.runner.visualstudio from 3.1.4 to 3.1.5 by @dependabot[bot] in #1288
- Bump Verify.Xunit from 30.18.0 to 30.19.1 by @dependabot[bot] in #1285
- Handle grouped Visio shapes when loading by @PrzemyslawKlys in #1264
- Improve WordParagraph text handling and add newline tests by @PrzemyslawKlys in #1292
- Fix newline handling in find and replace by @PrzemyslawKlys in #1291
- Fix WordDocument dispose deadlock by @PrzemyslawKlys in #1294
- Ensure Word comparer cleans up temporary results by @PrzemyslawKlys in #1276
- Add defensive checks for cross-document paragraph insertions by @PrzemyslawKlys in #1279
- Bump Verify.Xunit from 30.19.1 to 30.20.1 by @dependabot[bot] in #1301
Full Changelog: Compare OfficeIMO.Excel-v0.4.0 to OfficeIMO.Excel-v0.5.0
OfficeIMO.Word-v1.0.10
What's Changed
- Bump Verify.Xunit from 30.13.0 to 30.18.0 by @dependabot[bot] in #1214
- Handle empty header maps on blank sheets by @PrzemyslawKlys in #1226
- Improve PowerPoint textbox text handling by @PrzemyslawKlys in #1220
- Ensure default PowerPoint parts include document properties by @PrzemyslawKlys in #1216
- Use local DateTimeOffset values when writing Excel cells by @PrzemyslawKlys in #1222
- Preserve header/footer image content types by @PrzemyslawKlys in #1221
- Handle missing headers gracefully across Excel helpers by @PrzemyslawKlys in #1225
- Sanitize shared strings for parallel cell updates by @PrzemyslawKlys in #1227
- Ensure notes master for generated notes by @PrzemyslawKlys in #1215
- Add stream-based overloads for ExcelDocument loading by @PrzemyslawKlys in #1224
- fix formattign issues by @PrzemyslawKlys in #1230
- Refactor VsdxPackageValidator into partial classes for better organiz⦠by @PrzemyslawKlys in #1200
- Ensure PowerPoint default parts include metadata by @PrzemyslawKlys in #1231
- Extend Excel preflight cleanup for empty containers by @PrzemyslawKlys in #1236
- Prevent removing last slide and add regression tests by @PrzemyslawKlys in #1233
- Make table totals header lookup case-insensitive by @PrzemyslawKlys in #1232
- Ensure notes master part is created and linked to notes slides by @PrzemyslawKlys in #1234
- Guard against inverted Excel table ranges by @PrzemyslawKlys in #1235
- Ensure Excel saves create missing directories by @PrzemyslawKlys in #1237
- Handle blank sheet header lookups by @PrzemyslawKlys in #1238
- Update Visio validator namespace and add 2012 validation tests by @PrzemyslawKlys in #1247
- Ensure positive Visio view scale defaults by @PrzemyslawKlys in #1248
- Preserve header footer image content types from downloads by @PrzemyslawKlys in #1246
- Handle DataTable nulls as explicit blanks by @PrzemyslawKlys in #1242
- Write integer cell values without double coercion by @PrzemyslawKlys in #1240
- Refine PowerPoint picture image type handling by @PrzemyslawKlys in #1244
- Ensure unique PowerPoint chart axis ids and add regression test by @PrzemyslawKlys in #1243
- Handle TimeSpan DataTable columns with duration number format by @PrzemyslawKlys in #1256
- Refine cross-platform targeting and builds by @PrzemyslawKlys in #1251
- Propagate cancellation during Excel column autofit by @PrzemyslawKlys in #1255
- Add default slide layouts and extend theme tests by @PrzemyslawKlys in #1245
- Fix combo box selection persistence by @PrzemyslawKlys in #1260
- Handle single-cell named ranges without exceptions by @PrzemyslawKlys in #1261
- Ensure Visio content types include all page overrides by @PrzemyslawKlys in #1252
- Improve worksheet validation diagnostics by @PrzemyslawKlys in #1254
- Add configurable Visio page scales by @PrzemyslawKlys in #1253
- Enhance Visio validator coverage for multi-page packages by @PrzemyslawKlys in #1250
- Optimize InsertObjects header tracking and add large graph test by @PrzemyslawKlys in #1262
- Handle missing Excel header lookups gracefully by @PrzemyslawKlys in #1249
- Guard SetCellValues against null inputs by @PrzemyslawKlys in #1257
- Fix break paragraph insertion for section tracking by @PrzemyslawKlys in #1272
- Add SmartArt templates and tests for additional layouts by @PrzemyslawKlys in #1280
- Preserve relationships when appending Word documents by @PrzemyslawKlys in #1275
- Ensure compatibility fixer rewinds streams by @PrzemyslawKlys in #1271
- Allow clearing PDF metadata values by @PrzemyslawKlys in #1268
- Add guards for PDF image input validation by @PrzemyslawKlys in #1267
- Render bullets with hanging indent in PDF lists by @PrzemyslawKlys in #1266
- Handle empty rows when reading ranges by @PrzemyslawKlys in #1277
- Bump AngleSharp.Css from 1.0.0-beta.154 to 1.0.0-beta.157 by @dependabot[bot] in #1281
- Bump xunit.runner.visualstudio from 3.1.4 to 3.1.5 by @dependabot[bot] in #1288
- Bump Verify.Xunit from 30.18.0 to 30.19.1 by @dependabot[bot] in #1285
- Handle grouped Visio shapes when loading by @PrzemyslawKlys in #1264
- Improve WordParagraph text handling and add newline tests by @PrzemyslawKlys in #1292
- Fix newline handling in find and replace by @PrzemyslawKlys in #1291
- Fix WordDocument dispose deadlock by @PrzemyslawKlys in #1294
- Ensure Word comparer cleans up temporary results by @PrzemyslawKlys in #1276
- Add defensive checks for cross-document paragraph insertions by @PrzemyslawKlys in #1279
- Bump Verify.Xunit from 30.19.1 to 30.20.1 by @dependabot[bot] in #1301
Full Changelog: Compare OfficeIMO.Word-v1.0.9 to OfficeIMO.Word-v1.0.10
OfficeIMO.Excel-v0.4.0
What's Changed
- Use SharedStringPlanner for cell coercion by @PrzemyslawKlys in #1133
- Clarify converter exception tests by @PrzemyslawKlys in #1130
- Add DateOnly and TimeOnly support for Excel cell values by @PrzemyslawKlys in #1131
- Add Markdown support using OfficeIMO.Markdown by @PrzemyslawKlys in #1134
- Refactor Excel cell value coercion with shared helper by @PrzemyslawKlys in #1137
- Bump Verify.Xunit from 30.11.0 to 30.13.0 by @dependabot[bot] in #1136
- Fix Excel and Markdown build warnings by @PrzemyslawKlys in #1138
- feat: Add Table of Contents (TOC) support with enhanced styling and S⦠by @PrzemyslawKlys in #1139
- Fix XML documentation warnings in sheet column layout helpers by @PrzemyslawKlys in #1141
- Fix nullability warnings in Word content controls by @PrzemyslawKlys in #1140
- Fix nullability warnings in OfficeIMO examples by @PrzemyslawKlys in #1142
- Improve null-safety across Word features by @PrzemyslawKlys in #1143
- Fix nullable warnings in samples, tests, and Markdown by @PrzemyslawKlys in #1145
- Improve null-safety in Word list helpers by @PrzemyslawKlys in #1144
- feat: Add support for absolute positioning of DrawingML shapes by @PrzemyslawKlys in #1104
- fix(WordDocument): š ensure style overrides are applied after documen⦠by @PrzemyslawKlys in #1146
- Synchronize Word tests to avoid parallel custom style interference by @PrzemyslawKlys in #1147
- Add XML documentation for Excel cell helper methods by @PrzemyslawKlys in #1148
- Add XML docs to ExcelRead helpers by @PrzemyslawKlys in #1153
- Document VisioShape.GetAbsolutePoint parameters by @PrzemyslawKlys in #1151
- Improve XML docs for Markdown save extensions by @PrzemyslawKlys in #1152
- Document VML helper parameters in WordSection by @PrzemyslawKlys in #1156
- Clarify zero-based table removal XML doc comments by @PrzemyslawKlys in #1150
- Document SmartArt text helpers by @PrzemyslawKlys in #1160
- Add parameter docs for Excel auto-fit helpers by @PrzemyslawKlys in #1149
- Document SetTableTotals parameters by @PrzemyslawKlys in #1159
- Add XML param documentation for AddImageFromUrlAt by @PrzemyslawKlys in #1157
- Add XML documentation params for PowerPoint factories by @PrzemyslawKlys in #1155
- Add parameter docs for CellEdit formatting helpers by @PrzemyslawKlys in #1154
- Fix XML param tags in execution helper docs by @PrzemyslawKlys in #1161
- Add XML docs for ColumnStyleByHeader parameters by @PrzemyslawKlys in #1158
- Capture header and footer asserts in Verify tests by @PrzemyslawKlys in #1164
- Guard watermark examples against missing headers by @PrzemyslawKlys in #1171
- Improve footer HTML conversion guards by @PrzemyslawKlys in #1170
- Refactor header removal tests to use helper accessors by @PrzemyslawKlys in #1168
- Encapsulate HTML formatting helpers and extend macro parser coverage by @PrzemyslawKlys in #1167
- Guard header and footer usage in header/footer examples by @PrzemyslawKlys in #1166
- Guard header/footer usage in Word examples by @PrzemyslawKlys in #1172
- Refine section header and footer tests by @PrzemyslawKlys in #1169
- Adjust CSS scoping null checks by @PrzemyslawKlys in #1162
- Ensure Word section examples safely access headers and footers by @PrzemyslawKlys in #1175
- Refactor Word watermark tests to use header helpers by @PrzemyslawKlys in #1177
- Add helpers for section headers and footers in tests by @PrzemyslawKlys in #1176
- Guard header footer access in section tests by @PrzemyslawKlys in #1181
- Refine watermark header access in tests by @PrzemyslawKlys in #1180
- Add guards for header/footer usage in examples by @PrzemyslawKlys in #1178
- Refactor tests to use header/footer helper accessors by @PrzemyslawKlys in #1185
- Refine header retrieval in OddEvenFirst test by @PrzemyslawKlys in #1184
- Use footer/header helpers in page number tests by @PrzemyslawKlys in #1183
- Use RequireSection helpers in header/footer test by @PrzemyslawKlys in #1186
- Ensure tests use header/footer helper accessors by @PrzemyslawKlys in #1188
- Ensure header helper usage and guard null cell references by @PrzemyslawKlys in #1187
- Use header/footer helpers in fluent headers footers test by @PrzemyslawKlys in #1189
- Use header/footer helpers in PDF and HTML tests by @PrzemyslawKlys in #1190
- Refine header/footer test helpers by @PrzemyslawKlys in #1191
- Fix nullable warnings in markdown and excel helpers by @PrzemyslawKlys in #1192
- small cleanups by @PrzemyslawKlys in #1193
- Fix PowerPoint picture update image type handling by @PrzemyslawKlys in #1194
- Finalize per-page PDF compose options by @PrzemyslawKlys in #1196
- Improve ExcelDocument.Load error diagnostics by @PrzemyslawKlys in #1197
- Add stream-based Excel save overloads and tests by @PrzemyslawKlys in #1198
- Add MarkdownDoc Hr helper and tests by @PrzemyslawKlys in #1195
- Support multi-page Visio saving by @PrzemyslawKlys in #1199
- Ensure internal link sheet names are escaped by @PrzemyslawKlys in #1202
- Add validation and normalization for PDF row columns by @PrzemyslawKlys in #1203
- Guard PDF bullet lists against null inputs by @PrzemyslawKlys in #1205
- Ensure SetTableTotals matches headers case-insensitively by @PrzemyslawKlys in #1204
- Format TimeSpan cells with duration number format by @PrzemyslawKlys in #1210
- Add Markdown quote builder and tests by @PrzemyslawKlys in #1207
- Clamp TOC levels during HTML rendering by @PrzemyslawKlys in #1208
- Handle inline markdown formatting inside definitions by @PrzemyslawKlys in #1209
- Handle read-only dictionary inputs in Markdown tables by @PrzemyslawKlys in #1206
- Adjust PDF wrapping to honor run fonts by @PrzemyslawKlys in #1212
- Ensure Excel save creates destination directories by @PrzemyslawKlys in #1201
- Add optional OpenSettings parameters to Load APIs by @PrzemyslawKlys in #1213
- Prevent duplicate Excel hyperlink entries by @PrzemyslawKlys in #1211
Full Changelog: Compare OfficeIMO.Excel-v0.3.0 to OfficeIMO.Excel-v0.4.0
OfficeIMO.Markdown-v0.3.0
What's Changed
- Use SharedStringPlanner for cell coercion by @PrzemyslawKlys in #1133
- Clarify converter exception tests by @PrzemyslawKlys in #1130
- Add DateOnly and TimeOnly support for Excel cell values by @PrzemyslawKlys in #1131
- Add Markdown support using OfficeIMO.Markdown by @PrzemyslawKlys in #1134
- Refactor Excel cell value coercion with shared helper by @PrzemyslawKlys in #1137
- Bump Verify.Xunit from 30.11.0 to 30.13.0 by @dependabot[bot] in #1136
- Fix Excel and Markdown build warnings by @PrzemyslawKlys in #1138
- feat: Add Table of Contents (TOC) support with enhanced styling and S⦠by @PrzemyslawKlys in #1139
- Fix XML documentation warnings in sheet column layout helpers by @PrzemyslawKlys in #1141
- Fix nullability warnings in Word content controls by @PrzemyslawKlys in #1140
- Fix nullability warnings in OfficeIMO examples by @PrzemyslawKlys in #1142
- Improve null-safety across Word features by @PrzemyslawKlys in #1143
- Fix nullable warnings in samples, tests, and Markdown by @PrzemyslawKlys in #1145
- Improve null-safety in Word list helpers by @PrzemyslawKlys in #1144
- feat: Add support for absolute positioning of DrawingML shapes by @PrzemyslawKlys in #1104
- fix(WordDocument): š ensure style overrides are applied after documen⦠by @PrzemyslawKlys in #1146
- Synchronize Word tests to avoid parallel custom style interference by @PrzemyslawKlys in #1147
- Add XML documentation for Excel cell helper methods by @PrzemyslawKlys in #1148
- Add XML docs to ExcelRead helpers by @PrzemyslawKlys in #1153
- Document VisioShape.GetAbsolutePoint parameters by @PrzemyslawKlys in #1151
- Improve XML docs for Markdown save extensions by @PrzemyslawKlys in #1152
- Document VML helper parameters in WordSection by @PrzemyslawKlys in #1156
- Clarify zero-based table removal XML doc comments by @PrzemyslawKlys in #1150
- Document SmartArt text helpers by @PrzemyslawKlys in #1160
- Add parameter docs for Excel auto-fit helpers by @PrzemyslawKlys in #1149
- Document SetTableTotals parameters by @PrzemyslawKlys in #1159
- Add XML param documentation for AddImageFromUrlAt by @PrzemyslawKlys in #1157
- Add XML documentation params for PowerPoint factories by @PrzemyslawKlys in #1155
- Add parameter docs for CellEdit formatting helpers by @PrzemyslawKlys in #1154
- Fix XML param tags in execution helper docs by @PrzemyslawKlys in #1161
- Add XML docs for ColumnStyleByHeader parameters by @PrzemyslawKlys in #1158
- Capture header and footer asserts in Verify tests by @PrzemyslawKlys in #1164
- Guard watermark examples against missing headers by @PrzemyslawKlys in #1171
- Improve footer HTML conversion guards by @PrzemyslawKlys in #1170
- Refactor header removal tests to use helper accessors by @PrzemyslawKlys in #1168
- Encapsulate HTML formatting helpers and extend macro parser coverage by @PrzemyslawKlys in #1167
- Guard header and footer usage in header/footer examples by @PrzemyslawKlys in #1166
- Guard header/footer usage in Word examples by @PrzemyslawKlys in #1172
- Refine section header and footer tests by @PrzemyslawKlys in #1169
- Adjust CSS scoping null checks by @PrzemyslawKlys in #1162
- Ensure Word section examples safely access headers and footers by @PrzemyslawKlys in #1175
- Refactor Word watermark tests to use header helpers by @PrzemyslawKlys in #1177
- Add helpers for section headers and footers in tests by @PrzemyslawKlys in #1176
- Guard header footer access in section tests by @PrzemyslawKlys in #1181
- Refine watermark header access in tests by @PrzemyslawKlys in #1180
- Add guards for header/footer usage in examples by @PrzemyslawKlys in #1178
- Refactor tests to use header/footer helper accessors by @PrzemyslawKlys in #1185
- Refine header retrieval in OddEvenFirst test by @PrzemyslawKlys in #1184
- Use footer/header helpers in page number tests by @PrzemyslawKlys in #1183
- Use RequireSection helpers in header/footer test by @PrzemyslawKlys in #1186
- Ensure tests use header/footer helper accessors by @PrzemyslawKlys in #1188
- Ensure header helper usage and guard null cell references by @PrzemyslawKlys in #1187
- Use header/footer helpers in fluent headers footers test by @PrzemyslawKlys in #1189
- Use header/footer helpers in PDF and HTML tests by @PrzemyslawKlys in #1190
- Refine header/footer test helpers by @PrzemyslawKlys in #1191
- Fix nullable warnings in markdown and excel helpers by @PrzemyslawKlys in #1192
- small cleanups by @PrzemyslawKlys in #1193
- Fix PowerPoint picture update image type handling by @PrzemyslawKlys in #1194
- Finalize per-page PDF compose options by @PrzemyslawKlys in #1196
- Improve ExcelDocument.Load error diagnostics by @PrzemyslawKlys in #1197
- Add stream-based Excel save overloads and tests by @PrzemyslawKlys in #1198
- Add MarkdownDoc Hr helper and tests by @PrzemyslawKlys in #1195
- Support multi-page Visio saving by @PrzemyslawKlys in #1199
- Ensure internal link sheet names are escaped by @PrzemyslawKlys in #1202
- Add validation and normalization for PDF row columns by @PrzemyslawKlys in #1203
- Guard PDF bullet lists against null inputs by @PrzemyslawKlys in #1205
- Ensure SetTableTotals matches headers case-insensitively by @PrzemyslawKlys in #1204
- Format TimeSpan cells with duration number format by @PrzemyslawKlys in #1210
- Add Markdown quote builder and tests by @PrzemyslawKlys in #1207
- Clamp TOC levels during HTML rendering by @PrzemyslawKlys in #1208
- Handle inline markdown formatting inside definitions by @PrzemyslawKlys in #1209
- Handle read-only dictionary inputs in Markdown tables by @PrzemyslawKlys in #1206
- Adjust PDF wrapping to honor run fonts by @PrzemyslawKlys in #1212
- Ensure Excel save creates destination directories by @PrzemyslawKlys in #1201
- Add optional OpenSettings parameters to Load APIs by @PrzemyslawKlys in #1213
- Prevent duplicate Excel hyperlink entries by @PrzemyslawKlys in #1211
Full Changelog: Compare OfficeIMO.Excel-v0.3.0 to OfficeIMO.Markdown-v0.3.0
OfficeIMO.Word-v1.0.9
What's Changed
- Use SharedStringPlanner for cell coercion by @PrzemyslawKlys in #1133
- Clarify converter exception tests by @PrzemyslawKlys in #1130
- Add DateOnly and TimeOnly support for Excel cell values by @PrzemyslawKlys in #1131
- Add Markdown support using OfficeIMO.Markdown by @PrzemyslawKlys in #1134
- Refactor Excel cell value coercion with shared helper by @PrzemyslawKlys in #1137
- Bump Verify.Xunit from 30.11.0 to 30.13.0 by @dependabot[bot] in #1136
- Fix Excel and Markdown build warnings by @PrzemyslawKlys in #1138
- feat: Add Table of Contents (TOC) support with enhanced styling and S⦠by @PrzemyslawKlys in #1139
- Fix XML documentation warnings in sheet column layout helpers by @PrzemyslawKlys in #1141
- Fix nullability warnings in Word content controls by @PrzemyslawKlys in #1140
- Fix nullability warnings in OfficeIMO examples by @PrzemyslawKlys in #1142
- Improve null-safety across Word features by @PrzemyslawKlys in #1143
- Fix nullable warnings in samples, tests, and Markdown by @PrzemyslawKlys in #1145
- Improve null-safety in Word list helpers by @PrzemyslawKlys in #1144
- feat: Add support for absolute positioning of DrawingML shapes by @PrzemyslawKlys in #1104
- fix(WordDocument): š ensure style overrides are applied after documen⦠by @PrzemyslawKlys in #1146
- Synchronize Word tests to avoid parallel custom style interference by @PrzemyslawKlys in #1147
- Add XML documentation for Excel cell helper methods by @PrzemyslawKlys in #1148
- Add XML docs to ExcelRead helpers by @PrzemyslawKlys in #1153
- Document VisioShape.GetAbsolutePoint parameters by @PrzemyslawKlys in #1151
- Improve XML docs for Markdown save extensions by @PrzemyslawKlys in #1152
- Document VML helper parameters in WordSection by @PrzemyslawKlys in #1156
- Clarify zero-based table removal XML doc comments by @PrzemyslawKlys in #1150
- Document SmartArt text helpers by @PrzemyslawKlys in #1160
- Add parameter docs for Excel auto-fit helpers by @PrzemyslawKlys in #1149
- Document SetTableTotals parameters by @PrzemyslawKlys in #1159
- Add XML param documentation for AddImageFromUrlAt by @PrzemyslawKlys in #1157
- Add XML documentation params for PowerPoint factories by @PrzemyslawKlys in #1155
- Add parameter docs for CellEdit formatting helpers by @PrzemyslawKlys in #1154
- Fix XML param tags in execution helper docs by @PrzemyslawKlys in #1161
- Add XML docs for ColumnStyleByHeader parameters by @PrzemyslawKlys in #1158
- Capture header and footer asserts in Verify tests by @PrzemyslawKlys in #1164
- Guard watermark examples against missing headers by @PrzemyslawKlys in #1171
- Improve footer HTML conversion guards by @PrzemyslawKlys in #1170
- Refactor header removal tests to use helper accessors by @PrzemyslawKlys in #1168
- Encapsulate HTML formatting helpers and extend macro parser coverage by @PrzemyslawKlys in #1167
- Guard header and footer usage in header/footer examples by @PrzemyslawKlys in #1166
- Guard header/footer usage in Word examples by @PrzemyslawKlys in #1172
- Refine section header and footer tests by @PrzemyslawKlys in #1169
- Adjust CSS scoping null checks by @PrzemyslawKlys in #1162
- Ensure Word section examples safely access headers and footers by @PrzemyslawKlys in #1175
- Refactor Word watermark tests to use header helpers by @PrzemyslawKlys in #1177
- Add helpers for section headers and footers in tests by @PrzemyslawKlys in #1176
- Guard header footer access in section tests by @PrzemyslawKlys in #1181
- Refine watermark header access in tests by @PrzemyslawKlys in #1180
- Add guards for header/footer usage in examples by @PrzemyslawKlys in #1178
- Refactor tests to use header/footer helper accessors by @PrzemyslawKlys in #1185
- Refine header retrieval in OddEvenFirst test by @PrzemyslawKlys in #1184
- Use footer/header helpers in page number tests by @PrzemyslawKlys in #1183
- Use RequireSection helpers in header/footer test by @PrzemyslawKlys in #1186
- Ensure tests use header/footer helper accessors by @PrzemyslawKlys in #1188
- Ensure header helper usage and guard null cell references by @PrzemyslawKlys in #1187
- Use header/footer helpers in fluent headers footers test by @PrzemyslawKlys in #1189
- Use header/footer helpers in PDF and HTML tests by @PrzemyslawKlys in #1190
- Refine header/footer test helpers by @PrzemyslawKlys in #1191
- Fix nullable warnings in markdown and excel helpers by @PrzemyslawKlys in #1192
- small cleanups by @PrzemyslawKlys in #1193
- Fix PowerPoint picture update image type handling by @PrzemyslawKlys in #1194
- Finalize per-page PDF compose options by @PrzemyslawKlys in #1196
- Improve ExcelDocument.Load error diagnostics by @PrzemyslawKlys in #1197
- Add stream-based Excel save overloads and tests by @PrzemyslawKlys in #1198
- Add MarkdownDoc Hr helper and tests by @PrzemyslawKlys in #1195
- Support multi-page Visio saving by @PrzemyslawKlys in #1199
- Ensure internal link sheet names are escaped by @PrzemyslawKlys in #1202
- Add validation and normalization for PDF row columns by @PrzemyslawKlys in #1203
- Guard PDF bullet lists against null inputs by @PrzemyslawKlys in #1205
- Ensure SetTableTotals matches headers case-insensitively by @PrzemyslawKlys in #1204
- Format TimeSpan cells with duration number format by @PrzemyslawKlys in #1210
- Add Markdown quote builder and tests by @PrzemyslawKlys in #1207
- Clamp TOC levels during HTML rendering by @PrzemyslawKlys in #1208
- Handle inline markdown formatting inside definitions by @PrzemyslawKlys in #1209
- Handle read-only dictionary inputs in Markdown tables by @PrzemyslawKlys in #1206
- Adjust PDF wrapping to honor run fonts by @PrzemyslawKlys in #1212
- Ensure Excel save creates destination directories by @PrzemyslawKlys in #1201
- Add optional OpenSettings parameters to Load APIs by @PrzemyslawKlys in #1213
- Prevent duplicate Excel hyperlink entries by @PrzemyslawKlys in #1211
Full Changelog: Compare OfficeIMO.Excel-v0.3.0 to OfficeIMO.Word-v1.0.9