OK. you asked for it ![]()
VNS XLSX Reader — v0.6.0 (100% Xojo, API 2.0, no plugins)
Iterate with For Each — For Each sheet As XLSXSheet In workbook now works (the workbook implements Iterable), and rows/columns come back as arrays you can iterate directly: For Each c As XLSXCell In sheet.RowCells(1).
Auto-fit column widths — a new Auto-fit button (Desktop + Web) sizes columns to their content, allowing for bold/larger fonts and skipping merged cells. The widths are saved into the file, not just shown on screen. From code: sheet.AutoFitColumns, with an optional charWidthPx to match your own font.
Optional 0-based indexing — XLSXHelpers.gZeroBasedSheetsRowsColumns = True and sheets/rows/columns address from 0 instead of Excel’s 1. Off by default and a pure no-op when off, so nothing changes for existing code.
Two round-trip gaps from 0.5.0, closed:
ODS styling now reads back — opening a .ods reads each cell’s fonts, fills, alignment and borders (not just number formats), so styling round-trips both ways. Open an .xlsx, save as .ods, reopen — the styling is still there.
Excel Tables now save as real tables — a workbook with an Excel Table saved as .xlsx keeps it as a real table (auto-filter, header, banded rows), not just coloured cells.
Fixes: rows inside an Excel Table alternated text sizes (the banding was replacing the cell’s font instead of merging with it); Web text drew ~27% too small (points passed where CSS wanted pixels); Desktop columns were ~25% too narrow and shrank on every save; and the money format #,##0.00 was truncated at the comma, so .Money produced #.
Reads + writes .xlsx and .ods, Desktop + Web 2.0, macOS/Windows/Linux. Feedback welcome!