Documents & spreadsheets
Right-click → Office → Document drops a rich-text document, and → Office → Spreadsheet drops a spreadsheet. Both come with a full editing UI — toolbar, formula bar, and the rest — mounted right on the canvas.
On the board
Each editor is wrapped in the same chrome as code cells:
- A draggable header (the title bar), a bottom-right resize grip, and an × to remove it.
- It pans and zooms with the canvas like every other overlay.
- Edits save automatically through the same as-you-go mechanism as everything else — there’s no manual save. The content is stored as the editor’s own snapshot in the board, and restored by rebuilding the workbook or document from it. See Persistence.
Import and export
Both kinds import and export entirely client-side — there’s no server involved. Each editor’s header has ⭱ import and ⭳ export buttons:
- Spreadsheets ↔
.xlsx— import replaces the sheet’s contents; export downloads an.xlsx. - Documents ↔
.docx— round-trips basic formatting: bold, italic, underline, strikethrough, headings (h1–h6), and bullet / ordered lists. Tables, images, colors, and fine spacing don’t survive the round-trip.
Spreadsheets as code-cell data
Every spreadsheet has its own orange +. Click it to spawn a
code cell that already reads the
sheet, or drag from it onto an existing cell to link the sheet in as a data
source. Linked sheets are handed to Python through an auto-injected SHEETS dict,
re-materialized on every run so the kernel always sees the current contents.