Spreadsheet
A lightweight, client-only spreadsheet web application. All data persists in the URL hash for instant sharing, No backend required. Optional AES-GCM password protection keeps shared links locked without a server
Install / Use
/learn @supunlakmal/SpreadsheetREADME
Spreadsheet

A lightweight, client-only spreadsheet web application. All data persists in the URL hash for instant sharing—no backend required. Optional AES-GCM password protection keeps shared links locked without a server.
Demo Links
- Open example
- Encrypted example
- Password:
A2P7peq8aVixgB2
- Password:
Screenshots
| Default grid | Password prompt |
| ------------------------------------------------ | ------------------------------------------------------ |
|
|
|
| Unlock encrypted link | Raw JSON modal |
| ------------------------------ | ------------------------------ |
|
|
|
| Embed generator | QR handoff |
| ------------------------------- | ------------------------ |
|
|
|
| Menu | Template gallery |
| --------------------------- | ------------------------------------------------ |
|
|
|
| JSON Hash Tool | Formula dependencies |
| ---------------------------------------------- | ---------------------------------------------- |
|
|
|
| Live Collaboration | |
| ------------------------------------ | --- |
|
| |
Features
Core Functionality
- Client-only - All state saved in URL hash; no backend required
- Compressed URL State - LZ-String compression keeps share links short
- Instant Sharing - Copy URL to share your spreadsheet with anyone
- Dynamic Grid - Expandable grid; add as many rows/columns as you need
- Arrow Key Navigation - Move the active cell with arrow keys; Shift+Arrow expands selection
- Persistent History - Browser back/forward buttons restore previous states
Text & Cell Styling
- Bold (Ctrl+B) - Apply bold formatting to selected text
- Italic (Ctrl+I) - Apply italic formatting to selected text
- Underline (Ctrl+U) - Apply underline formatting to selected text
- Alignment - Left/center/right alignment per cell or selection
- Font Size - Quick size buttons (Auto, 10-24px)
- Cell Colors - Background and text color pickers
- Style Persistence - Alignment, colors, and sizes saved in the URL
- Sanitized formatting preserved in cell content (B/I/U/STRONG/EM/SPAN with safe styles)
Multi-Cell Selection (Google Sheets Style)
- Click & Drag - Select rectangular ranges by dragging
- Shift+Click - Extend selection from anchor point
- Shift+Arrow - Extend selection with the keyboard
- Visual Feedback - Selected cells highlighted with blue background
- Border Outline - Blue border around selection edges
- Header Highlighting - Row/column headers highlight for selected range
- Hover Highlighting - Row/column hover highlights for quick scanning
- Escape to Clear - Press Escape to deselect
- Selection Stats - Status bar shows count, sum, and average for numeric ranges
Grid Management
- Add Row - Expand grid rows as needed
- Add Column - Expand grid columns as needed
- Row/Column Menus - Header menus for quick insert/delete actions
- Resize Rows/Columns - Drag header handles to adjust sizes
- Clear Spreadsheet - Reset to empty 10x10 grid with confirmation
- Live Grid Size - Display shows current dimensions
Data Import/Export
- CSV Import - Load .csv files from the toolbar
- CSV Export - Download the current grid as
spreadsheet.csv - Excel Export - Download as
.xlsxwith formulas and basic formatting - Formula-aware Import - SUM/AVG formulas are preserved; unsupported formulas are imported as text
Tools Menu
- Centralized Actions - Access templates, import/export, sharing, presentation, and collaboration in one place
- Grouped Categories - View, Data & File, Share & Embed, and Advanced sections
Templates Gallery
- Searchable Gallery - Browse built-in templates loaded from
templates.json - One-click Launch - "Use Template" opens a new tab with the template prefilled
- Pre-built Examples - Todo lists, budgets, calculators, and trackers
Presentation Mode
- Row-based Slides - Each non-empty row becomes a slide; first cell is the title
- Keyboard Navigation - Arrow/Page/Space/Home/End keys move between slides
- Quick Exit - Escape closes the presentation overlay
- Visual Formula Widgets -
=PROGRESS(),=TAG(), and=RATING()render as visuals
Sharing & Access Control
- Copy Link - One click to copy the compressed URL hash
- Read-only Toggle - Share view-only links that disable editing
- Embed Mode - Generate a read-only iframe snippet with a dedicated
embedflag in the URL - QR Handoff - Show a QR code to continue editing on mobile; warns if the URL is too long
- URL Length Indicator - Live character count with warning/caution/critical thresholds
Live Collaboration (Beta)
- Peer-to-peer via PeerJS - Browser-to-browser sync using WebRTC data channels
- TURN Server Support - Metered.ca TURN servers for NAT traversal; credentials fetched securely via Netlify Function
- 1-to-1 only - One host and one joiner at a time (extra peers are rejected)
- Real-time Sync - Cell edits, formulas, and cursor positions broadcast instantly
- Initial State Transfer - Host sends complete spreadsheet state when joiner connects
- Remote Cursor Presence - See where the other user is editing in real-time
- Automatic Fallback - Falls back to STUN-only if TURN unavailable (~80% success rate)
- Formula Commit Sync - Computed values broadcast when formulas are confirmed
- CSP/network requirement - Allow
unpkg.com,*.peerjs.com, and*.metered.live
Password Protection
- One-click lock - Set a password from the toolbar lock button; password never leaves the browser
- AES-GCM 256 + PBKDF2 - 100k iterations with random salt/IV, stored as URL-safe Base64
- ENC-prefixed URLs - Encrypted hashes use
ENC:; recipients must unlock via modal - Optional - Unencrypted links continue to work exactly as before
AI Bridge (Raw JSON)
- Raw Data Modal - View and copy the minified spreadsheet state as JSON for AI edits
- Clipboard Ready - Copy button for quick transfer to ChatGPT/Claude
- Safe Export - Uses sanitized/minified state (only non-default values) for shorter prompts
- JSON Hash Tool - Convert AI-edited JSON into a shareable URL hash, or decode a hash back to JSON
Formula Support
- SUM / AVG Functions - Calculate totals or averages with
=SUM(A1:B5)/=AVG(A1:B5) - Formula Autocomplete - Dropdown suggestions appear when typing
= - Range Selection - Click/drag cells while editing to insert range references
- Live Evaluation - Formulas evaluate on Enter or when leaving the cell
- Recalculation - Dependent formulas update when referenced cells change
- Error Handling - Shows
#REF!for invalid ranges,#ERROR!for unknown formulas - Shareable Formulas - Formulas preserved in URL for sharing
Visual Formula Dependency Tracer
- Trace Logic Overlay - Click the diagram button to draw SVG curves from sources to formulas
- Range Awareness - Ranges render from the center of the referenced block
- Auto Redraw - Updates on edits, scroll, resize, and grid changes
Theme Support
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
