1.2.1
Headings become h1–h4 rows, list items become indented rows, > **notes:** … blockquotes and <!-- notes: … --> comments fill side columns of the row above, other comments become x rows. Front matter title, author and description fill empty settings. A CSV or TSV table imports one row per line: the text column (or the longest one) becomes the text, kind and indent columns are honoured, the rest become side columns.
> **notes:** …
<!-- notes: … -->
text
kind
indent
Any column name works; the app treats a column specially by the role you give it here. Status values show as coloured chips on cards and tint Grid cells. Defaults are column=value pairs filled into rows you add. Columns starting with a dot are SheetWriter's own.
column=value
.updated
.author
A number in the target column on a heading row is the target for that section, shown on the card and in the contents pane; the workbook target shows in the status bar.
.words
.chars
.contents
Stored in the protected .sheetwriter sheet inside the workbook, with created/modified dates and links to this editor. Extra rows you add to that sheet are kept.
.sheetwriter
The display state (view, sheet, row, table of contents, visible columns, counts) is saved with the workbook too, from the Columns ▾ and Contents buttons.
Overwrite if the disk changes do not matter. Save as a copy to keep both, then compare in Excel. Cancel to look first.
A snapshot is a named copy of the whole workbook kept in this browser (the autosave history under Recent keeps unnamed ones). Compare lists the rows added, removed or changed since a snapshot, since the file was last saved, or against another workbook.
A text editor whose document is an Excel workbook. One argument per row, extra columns for notes, sources, examples. Each sheet is a chapter. Columns whose names start with a dot belong to SheetWriter: .kind marks headings and paragraphs, .indent nests rows, .no holds the numbering, .words, .chars, .updated and .author are maintained on save. Every other column is yours to name. Cells are Markdown.
.kind
.indent
.no
The Import button, or drop a .md or .csv file on the window. A CSV or TSV table gives one row per line, with its text column (or the longest column) as the text and the other columns as side columns. For Markdown: one paragraph per row by default; files written one sentence per line are detected and imported line by line; a sentence mode splits paragraphs into p and s rows. Lists become indented rows, and the side-column blockquotes and comments that Export writes are read back into their columns, so export and import round-trip. Import into a new sheet, one sheet per h1, or the current sheet. Several files at once become several sheets.
The Contents button opens a pane listing the headings of this sheet or of all sheets, with numbers and section word counts (or characters against a character target). Click a heading to jump to it in Draft, Grid or Read view; collapsed sections open on the way. The heading you are working under is highlighted. The pane is also an outliner: drag a heading to move its whole section above or below another heading, or onto a sheet name to move it to that sheet; the ◂ ▸ buttons that appear on hover promote or demote a section together with its sub-headings, ⤴ moves it to a new sheet; on a focused entry, Alt+↑/↓ moves the section past a sibling and Alt+Shift+←/→ promotes or demotes it. Drag the pane's right edge to make it wider or narrower (remembered in this browser); double-click the edge to reset.
Settings → Columns chooses which of your columns the app treats specially, whatever their names: the main text column (★) and a status column (●) whose values show as coloured chips under each card and tint the Grid cell. Settings → Counts and targets chooses the columns whose words and characters are counted, a target column (◎) whose number on a heading row sets a target for that section, shown against the section count on the card and in the contents pane, and a target for the whole workbook, shown in the status bar. Targets count words or characters, as chosen there. The Filter button (Draft and Grid) hides rows that do not match: plain text, or column:value such as status:todo, kind:h2 or no:2.1. Pasting rich text from Word or a browser into the import dialog converts it to Markdown.
column:value
status:todo
kind:h2
no:2.1
In Draft, the ◨ Side button shows or hides the side columns beside the text; Columns ▾ chooses which. Columns are shared by all chapter sheets: adding, renaming, deleting or reordering a column applies everywhere, and deleting warns if any sheet holds data in it. Click a column name to rename it, drag a column header to reorder, drag its right edge to resize. The – button hides a column in Grid view; the Columns ▾ button chooses which columns the Grid and Draft views show. Rows hide in Grid by collapsing (▾ in the number cell, Collapse all) or by typing in the filter box above the table. Double-click a sheet tab to rename it. Drag rows by the ⋮⋮ handle, drag tabs to reorder chapters. Click the title in the toolbar to change it.
Saving checks whether the file changed on disk since it was opened (edited in Excel, say) and asks before overwriting. An autosave snapshot is kept in the browser every 5 minutes (Recent ▾ → Recover an autosave…), and Settings can add an autosave copy written to a second workbook, such as name_AUTOSAVE.xlsx, at an interval of your choice. Excel hyperlinks are read as Markdown links. In Read view, click any paragraph or heading to edit it.
name_AUTOSAVE.xlsx
Recent ▾ → Snapshots and compare… keeps named copies of the workbook in this browser and compares the editor with a snapshot, with the saved file, or with another workbook: rows added, removed or changed, with word-level differences, grouped by sheet. Click a row in the list to go to it.
Editing in Excel: the .sheetwriter sheet starts with a short description of the workbook and instructions, above its settings table, on what is safe (text, rows, sorting, .kind, .indent, your own columns), what is kept (cell colours, borders, comments and fonts follow the row through a hidden .id column), what is lost on the next save (formulas, number formats, row heights on chapter sheets) and what breaks the structure (renaming dotted columns or the text column, merged cells). Chapter sheets have only their header row protected; everything else is editable, and Review → Unprotect Sheet lifts it.
.id
Formats: the workbook is saved as .xlsx or, when the file name ends in .ods, as an OpenDocument spreadsheet for LibreOffice, with the same sheets, settings and contents. Both open. Formatting of data sheets is only carried through for .xlsx, and .ods files have no frozen panes.
.xlsx
.ods
Links from notes apps such as Obsidian: Recent ▾ → Copy link to this workbook (or a Markdown link, or one to the row you are in) gives a web address that opens this workbook in SheetWriter, at that row if chosen. A web page cannot open a file by its path, so the link finds the file in this browser's Recent list, by an id kept in .sheetwriter (so renaming the file is fine) or else by name. It works in Edge and Chrome, in the browser where the file was opened before; after a browser restart one click gives SheetWriter access to the file again. Elsewhere the link asks you to open the file once.
In Edge and Chrome the app opens and saves the .xlsx in place and keeps a Recent list. In Firefox and Safari, Open uses a file picker and Save downloads a copy. Unsaved work is also kept in the browser and offered back on the next start. Sheets without a main text column are data sheets: shown read-only, written back unchanged. A workbook edited or sorted in Excel is put back in no order on load; rows without a number go last. A plain spreadsheet without a text column is imported using its longest text column.
no