- commit
- b452cd49b158d20dd000239e36a0671347e92396
- parent
- d181cafc7b609ebe070737b7382e49805fd8a95d
- author
- Dami <dami.etoile@gmail.com>
| M | ROADMAP.md | 4 | ++-- |
| M | docs/ | 36 | ++++++++++++++++++++++++++++++ |
| M | docs/ | 7 | ++++-- |
| M | docs/ | 2 | ++ |
@@ -124,11 +124,11 @@ work left open. Sizes: S (a day or two), M (about a week), L (weeks).
124124 | Conditional formatting (color scales, rules on values and formulas), drawn in theme roles | Visual; must read under all 349 schemes | M |125125 | Data validation: dropdown lists (a picker in the cell), number and date rules, checkboxes | Pairs with the filter picker | M |126126 | Wrap text, row heights, borders, merged cells | Layout changes in the grid renderer | M to L |127-| Notes on cells (shown on hover and in the context line) | | S |127+| Notes on cells (shown on hover and in the context line). Done: Insert > Note (Shift+F2), a corner mark, the context line and a hover box, saved and in XLSX as Excel's notes; see [data.md](docs/data.md#notes) | | S |128128 | Locale: decimal comma, date order, list separator in formulas | Sheets' File > Settings > Locale | M |129129 | Charts: scatter, area, stacked columns and bars, axis options, a legend position | Registry entries in `internal/chart` | M |130130 | Pivot tables: column subtotals, renaming value columns, check the "(blank)" label against Sheets | Left open by pivots | S |131-| Protected ranges and sheets (warn on edit) | | S |131+| Protected ranges and sheets (warn on edit). Done: Data > Protect sheets and ranges, edits ask on the context line; an XLSX sheet's protection is noted on import; see [data.md](docs/data.md#protected-sheets-and-ranges) | | S |132132 133133 ### 3. Scale (see "Next: vast data" above and docs/limits.md)134134 @@ -147,3 +147,39 @@ searching formulas (Alt+=). The scope chip says where to search, as Sheets'
147147 "Search" choice: this sheet, all sheets, or the range selected when the bar148148 opened; Alt+S goes through them. Searching all sheets steps from sheet to149149 sheet in tab order, and replacing all across sheets is still one undo step.150+151+## Notes152+153+Insert > Note (Shift+F2, or Insert note on the right-click menu) adds a154+note to the active cell, as Sheets' notes: plain text typed on the context155+line, where Alt+Enter or Shift+Enter starts a new line (shown as ↵), and156+an empty note deletes it. A cell with a note shows ▝ in its top-right157+corner; while it is the active cell, the context line shows the note, and158+while the mouse is over it, a box beside it does. Delete notes (on the159+right-click menu) removes the notes of the selection.160+161+A note belongs to its cell: clearing the contents (Del) keeps it, it moves162+with the cell when rows or columns are inserted, deleted or sorted, and a163+copy or a cut takes it along, as in Sheets. Ctrl+Enter fills the entry164+into the selection and leaves each cell's note alone. Every change to a165+note is an undo step. Pivot table results can't take notes.166+167+## Protected sheets and ranges168+169+Data > Protect sheets and ranges works as Sheets' protection with "Show a170+warning when editing this range": it locks nothing, but an edit that171+touches a protected range, or anything on a protected sheet, asks first on172+the context line: Enter edits anyway, Esc cancels. The picker lists the173+sheet's protections; its first rows protect the selection or the whole174+sheet, with an optional description, Enter on a protection selects its175+range, and Ctrl+D removes it. Protect range and Remove protection on the176+right-click menu and in the palette do the same for the selection.177+178+What asks: typing into a cell, commands that change cells (clear, paste,179+fill, formats, sort, delete rows), pasting text from the terminal and the180+fill handle. Inserting rows or columns moves a protected range without181+asking, unless the whole sheet is protected. Macros that run don't ask, as182+Sheets' scripts don't. Protected ranges follow inserted and deleted rows183+and columns, save with the sheet, and adding or removing one is an undo184+step.185+@@ -19,7 +19,7 @@ File > Import asks where the data goes, as Sheets' Import location does
1919 | Format | Import | Download |2020 |---|---|---|2121 | CSV, TSV | Delimiter (`,` `;` tab `\|`), UTF-8 BOM, UTF-16 and Windows-1252 detected; entries become numbers, dates, currency and percentages as if typed; formulas stay text | Values as shown, as Sheets' Download does |22-| Excel `.xlsx` | Every sheet, opening on the one Excel showed: values, formulas (references between sheets too), workbook named ranges, number formats, bold, italic, underline, strikethrough, alignment, column widths, column and row styles, frozen panes, filters (see [Filters in XLSX](#filters-in-xlsx)), shared formulas, dates in the 1904 system; sheets Excel hid stay hidden (unless it's the one Excel showed). Formulas 012 can't read (unknown functions) keep their values; Excel pivot tables come in as the values they showed. Files past the reader's limits (a zip bomb, 1 GB in one part, 2 GB in all, cells past XFD1048576) are refused with a message saying which | Every sheet, the same, with formulas in Excel's syntax and their results cached, column and row formats as column and row styles, frozen rows and columns as frozen panes, and a filter as Excel's with the rows it hides hidden. A sheet whose name Excel can't take as is (spaces at its ends, or the same as another's but for them and case) gets one it can (without the spaces, with a number when two would clash, e.g. `Plan (2)`), and the formulas and named ranges naming it name that. JEV functions and `#AND#` save as values, and so do formulas naming a sheet that doesn't exist (their `#REF!`; Excel would refuse the reference), and pivot tables: Excel gets the results, not a pivot. The download's result counts the formulas saved as values, with an example |22+| Excel `.xlsx` | Every sheet, opening on the one Excel showed: values, formulas (references between sheets too), workbook named ranges, number formats, bold, italic, underline, strikethrough, alignment, column widths, column and row styles, frozen panes, filters (see [Filters in XLSX](#filters-in-xlsx)), notes (Excel's notes, its legacy comments; threaded comments aren't read), shared formulas, dates in the 1904 system; sheets Excel hid stay hidden (unless it's the one Excel showed). Formulas 012 can't read (unknown functions) keep their values; Excel pivot tables come in as the values they showed. A sheet Excel protects comes in unprotected, with a note saying so, since Excel's protection locks cells where 012's only warns. Files past the reader's limits (a zip bomb, 1 GB in one part, 2 GB in all, cells past XFD1048576) are refused with a message saying which | Every sheet, the same, with formulas in Excel's syntax and their results cached, column and row formats as column and row styles, frozen rows and columns as frozen panes, a filter as Excel's with the rows it hides hidden, and notes as Excel's notes (which Sheets reads as notes). Protected ranges aren't written. A sheet whose name Excel can't take as is (spaces at its ends, or the same as another's but for them and case) gets one it can (without the spaces, with a number when two would clash, e.g. `Plan (2)`), and the formulas and named ranges naming it name that. JEV functions and `#AND#` save as values, and so do formulas naming a sheet that doesn't exist (their `#REF!`; Excel would refuse the reference), and pivot tables: Excel gets the results, not a pivot. The download's result counts the formulas saved as values, with an example |2323 | SQLite | Pick a table or view, or type a query; a header row names the columns | The sheet shown or the selection as a table, first row as column names; a table of that name is replaced |2424 | Parquet | Every column, with dates and timestamps; lists joined with commas | |2525 | Lotus 1-2-3 `.wk1`, `.wks` | Numbers, labels with their alignment, formats, column widths, formulas translated (references, operators, `@SUM`, `@AVG`, `@IF`, `@ROUND`, `@PMT` and 60 more) or kept as values | |@@ -70,7 +70,10 @@ small object. Version 3 adds named ranges, frozen panes and a filter, and is
7070 only written when a sheet uses one of them, so older builds of 012 can open7171 everything else (version 4 adds several sheets and version 5 pivot tables,7272 below). Charts are an optional `charts` field that older builds73-ignore. Saves are atomic: 012 writes a temporary file and renames it. Saving over73+ignore, and so are a cell's `note` (the cell is then an object, e.g.74+`{"input":"1450","note":"Due on the 1st"}`) and a sheet's `protected`75+list of protected ranges (`{"range":"B2:C9","description":"Totals"}`, or76+`{"sheet":true}`); none of them raises the version. Saves are atomic: 012 writes a temporary file and renames it. Saving over7477 the open file when something else wrote it since it was opened or last7578 saved (another program, or another session of [012 serve](ssh.md)) asks7679 first: Enter overwrites, S saves under another name, Esc cancels. Save@@ -34,6 +34,8 @@ the app uses, so it never drifts from what the keys do.
3434 | Typing a function, range or sheet name | Suggestions drop down: Up/Down pick, Tab or Enter insert (a sheet as `Summary!`, then arrows point into it), Esc hides them; inside a function's parentheses the context line shows its arguments with the current one marked |3535 | Alt+, / Alt+. | Trace precedents / dependents: highlight the cells a formula reads, or the formulas that read the cell, and jump to the first; press again for the next, Esc to go back (Excel's Ctrl+[ and Ctrl+], which terminals send as Esc) |3636 | Data > Named ranges | Name ranges for formulas (`=SUM(Sales)`): Enter goes to one, F2 renames or repoints it, Ctrl+D deletes it; Data > Define named range names the selection |37+| Shift+F2, Insert > Note | Add or edit the active cell's note on the context line (Alt+Enter or Shift+Enter starts a new line); see [data.md](data.md#notes) |38+| Data > Protect sheets and ranges | Protect a range or the sheet so edits to it ask first; Enter goes to a protection, Ctrl+D removes it; see [data.md](data.md#protected-sheets-and-ranges) |3739 | Ctrl+Shift+1 ... 6 | Number, time, date, currency, percent, scientific format |3840 | Ctrl+B, Ctrl+I, Ctrl+U, Alt+Shift+5 | Bold, italic, underline, strikethrough |3941 | Ctrl+Shift+L / E / R | Align left, center, right |