SkillAgentSearch skills...

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/Spreadsheet
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Spreadsheet

Spreadsheet logo

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.

License Vanilla JS No Build Tools Netlify Status

Demo Links

Screenshots

| Default grid | Password prompt | | ------------------------------------------------ | ------------------------------------------------------ | | Default spreadsheet grid | Password modal before encryption |

| Unlock encrypted link | Raw JSON modal | | ------------------------------ | ------------------------------ | | Unlock modal | Raw JSON modal |

| Embed generator | QR handoff | | ------------------------------- | ------------------------ | | Embed modal | QR modal |

| Menu | Template gallery | | --------------------------- | ------------------------------------------------ | | Main menu | Template gallery |

| JSON Hash Tool | Formula dependencies | | ---------------------------------------------- | ---------------------------------------------- | | JSON Hash Tool | Formula dependencies |

| Live Collaboration | | | ------------------------------------ | --- | | 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 .xlsx with 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 embed flag 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

View on GitHub
GitHub Stars41
CategoryDevelopment
Updated1mo ago
Forks6

Languages

JavaScript

Security Score

90/100

Audited on Feb 8, 2026

No findings