What's Changed
- Desktop: write log records to standard error and a rotating log file by @switch87 in #8
- Default Windows startup to DirectX 12 by @DWAA1660 in #22
- Fix: inserting or deleting rows, columns or cells cancels copy/cut mode (#21) by @MarekSpodBiedry in #34
- Fix missing dropdown arrows on large ribbon buttons (#26) by @harrisonoconnorhover in #35
- Fix disappearing text when editing merged cells (#40) by @harrisonoconnorhover in #44
- Fix header double-click AutoFit for selected columns and rows (#42) by @harrisonoconnorhover in #46
- Fix worksheet popups staying open after outside clicks (#41) by @harrisonoconnorhover in #47
- Issue #48: rotated text with Wrap Text draws upright (grid and print) by @LloydNicholson in #50
- Issue #51: General numbers fit by the cell's own font, not 11pt by @LloydNicholson in #53
- ROUND: keep 15 significant digits when asked for 15+ digits, so ROUND(0.1+0.2,15) is 0.3 (#58) by @MarekSpodBiedry in #60
- XLSX: write _xlpm. prefix on LET/LAMBDA parameter names, strip it on read (#63) by @MarekSpodBiedry in #65
- Issue #123: SUMIF/AVERAGEIF size the sum range like the criteria range by @LloydNicholson in #67
- Issue #124: DATE(1900,2,29) is serial 60, as in Excel by @LloydNicholson in #68
- Preserve whole-sheet formatting when entering empty cells (#70) by @DWAA1660 in #74
- Fix the documented offscreen snapshot command (#71) by @DWAA1660 in #75
- Add the missing vertical worksheet scrollbar (#73) by @DWAA1660 in #77
- XLSX: cache #SPILL! and #CALC! as #VALUE! so Excel can open the file by @nihilist-narwhal in #85
- chore: bump github actions to fix Node 20 deprecation warnings by @dylanmtaylor in #89
- Fix Enter navigation returning to the last clicked cell by @harrisonoconnorhover in #94
- Recommend supported recovery steps after a screenshot timeout by @harrisonoconnorhover in #95
- Add System appearance alongside Light and Dark themes by @harrisonoconnorhover in #96
- Add a visible File menu to the shared ribbon by @harrisonoconnorhover in #97
- Preview border presets and fix shared-edge removal by @harrisonoconnorhover in #106
- Preserve quick selection drags and clarify the fill handle by @harrisonoconnorhover in #109
- Protection: enforce locked cells for every command, keep hidden formulas hidden by @nihilist-narwhal in #111
- Insert/Delete Cells: adjust references like Excel by @nihilist-narwhal in #112
- Names: keep sheet-level names with their sheet on move, copy and delete by @nihilist-narwhal in #113
- Names: R1C1-style names, Create from Selection bottom/right, LAMBDA name case by @nihilist-narwhal in #114
- Formulas: the spill range operator (A1#) by @nihilist-narwhal in #115
- Preserve doubled text qualifiers in Text to Columns by @agammann in #119
- Publish Flatpak repository through GitHub Pages by @dylanmtaylor in #81
- ci: Add RISC-V Linux build by @dylanmtaylor in #90
- Issue #122: Recalc: linear in the number of range formulas by @LloydNicholson in #66
- Issue #118: committing a cell in the web app no longer traps on the clock by @LloydNicholson in #125
- Import worksheet data and cached values from ODS files by @harrisonoconnorhover in #100
- Import worksheet data and cached results from XLSB workbooks by @harrisonoconnorhover in #101
- Fix copying selected cells as rich HTML tables by @harrisonoconnorhover in #36
- Add initial Alt ribbon keytips and legacy shortcuts (#33) by @harrisonoconnorhover in #43
- Allow editing and selecting text inside worksheet text boxes by @harrisonoconnorhover in #84
- Objects: anchor modes — images/charts/shapes follow cells on sort (#5) by @justinjohn0306 in #12
- File open: report password-protected (encrypted) files clearly (#11) by @justinjohn0306 in #17
- Line charts: smooth (spline) curves (issue #52) by @justinjohn0306 in #62
- Charts: Switch Row/Column on charts read from a file; scatter with text X values by @nihilist-narwhal in #116
- Render CJK text (Japanese/Chinese/Korean) instead of tofu by @justinjohn0306 in #25
- i18n: switch the interface language, defaulting to the system language (#20) by @justinjohn0306 in #31
- Fonts: render Thai and Hebrew (and other non-Latin scripts) instead of tofu (#32) by @justinjohn0306 in #38
- i18n: Brazilian Portuguese interface language (#79) by @edurbs in #82
- i18n: add Simplified Chinese, Korean and Russian UI by @neko233-com in #104
- Progress docs: re-measure against Excel 16.113.4; standard doc set; parity-checklist rename by @echelon in #189
- Offer an optional desktop shortcut in the Windows installer by @harrisonoconnorhover in #108
- Support common Spanish formula names and semicolon arguments by @harrisonoconnorhover in #98
- Preserve array evaluation for non-spilling XLSX formulas by @harrisonoconnorhover in #83
- Add static pictures inside cells with XLSX roundtrip by @harrisonoconnorhover in #105
- Paste Special operations: keep text, errors and formulas by @nihilist-narwhal in #150
- Current region: grow past 10,000 rows, in linear time by @nihilist-narwhal in #151
- selection.move: Ctrl+arrow without a direction no longer loops forever by @nihilist-narwhal in #153
- functions: MIN() accepts zero arguments by @itrycodinganditsbad in #159
- Rename sheet-qualified defined names with their sheet (#134) by @MarekSpodBiedry in #178
- Clamp table style number to 1 so zero-numbered styles don't underflow (#130) by @MarekSpodBiedry in #179
- Keep the untouched part of a data validation range when clearing or replacing part of it (#129) by @MarekSpodBiedry in #180
- Keep comma when a semicolon or tab is missing from some CSV lines (#127) by @MarekSpodBiedry in #181
- Deliver Export as PDF as a browser download (#141) by @MarekSpodBiedry in #182
- Shrink 3-D sheet spans when an end sheet is deleted (#140) by @MarekSpodBiedry in #183
- Honor search in the desktop engine.commands handler so connected list_commands filters (#136) by @MarekSpodBiedry in #184
- Report an error when file commands get no file in MCP and CLI (#135) by @MarekSpodBiedry in #185
- Compare numbers at 15 significant digits like Excel (#57) by @MarekSpodBiedry in #187
- Release focus when the sheet tab rename ends (#145) by @MarekSpodBiedry in #188
- Recalc: formulas over a blocked spill see #SPILL!; no spilling in tables by @nihilist-narwhal in #157
- Recalc: stale spills and values after edits (fixes #133, #139) by @nihilist-narwhal in #148
- Tables: typing in the header row renames the column; Go To a table selects its data by @nihilist-narwhal in #149
- Whole-sheet selection: Fill and Remove Duplicates no longer run out of memory or time by @nihilist-narwhal in #152
- Repeated headers: number pivot fields and table columns in linear time by @nihilist-narwhal in #154
- Ranges keep their size past the used range; spilled blanks show 0 by @nihilist-narwhal in #155
- Charts: combo and stock charts keep their kind in XLSX by @nihilist-narwhal in #158
- Legacy array formulas: fill the range they were entered in by @nihilist-narwhal in #156
- fill: clamp month and year date series to the month's last day by @itrycodinganditsbad in #160
- Charts: histogram, box & whisker, waterfall, funnel, treemap and sunburst keep their kind through XLSX by @nihilist-narwhal in #161
- macOS: open documents from Finder, the Dock and
open -a(#69) by @LloydNicholson in #164 - Write comment and hyperlink maps with A1 keys so JSON save works (#126) by @MarekSpodBiedry in #186
- Preserve formula references when cutting cells across sheets by @harrisonoconnorhover in #144
- Bump version to 0.5.0 for release by @echelon in #227
New Contributors
- @switch87 made their first contribution in #8
- @DWAA1660 made their first contribution in #22
- @MarekSpodBiedry made their first contribution in #34
- @harrisonoconnorhover made their first contribution in #35
- @LloydNicholson made their first contribution in #50
- @nihilist-narwhal made their first contribution in #85
- @dylanmtaylor made their first contribution in #89
- @agammann made their first contribution in #119
- @justinjohn0306 made their first contribution in #12
- @edurbs made their first contribution in #82
- @neko233-com made their first contribution in #104
- @itrycodinganditsbad made their first contribution in #159
Full Changelog: v0.4.0...v0.5.0