6.3 KiB
title: SheetAble created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, spreadsheet, typescript, nodejs, excel, csv] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/SheetAble/SheetAble, https://sheetable.net/]
SheetAble 📊
Gestionnaire de feuilles de calcul (Excel/CSV/ODS) auto-hébergeable : déposez vos fichiers, SheetAble les rend lisibles dans le navigateur via un tableur web, sans Excel ni LibreOffice local.
| Métadonnée | Valeur |
|---|---|
| Site web | https://sheetable.net/ |
| GitHub | https://github.com/SheetAble/SheetAble |
| License | AGPL-3.0 |
| Langage | TypeScript / Node.js (frontend Vue.js) |
| Étoiles | ⭐91 |
| Dernière MAJ | 2026-04-15 |
| Catégorie | cat-document-management |
Description
SheetAble est un tableur web léger et self-hosted, conçu pour visualiser et éditer des fichiers .xlsx, .xlsm, .csv, .ods depuis n'importe quel navigateur, sans dépendre d'Excel ou de LibreOffice. Le moteur de rendu est Univer (fork communautaire de Luckysheet, basé sur Canvas), offrant une expérience proche d'Excel : formules, multi-feuilles, mise en forme conditionnelle, charts, frozen rows/columns, etc.
L'architecture est simple : un backend Node.js (Fastify) qui parse les fichiers avec SheetJS (xlsx), un frontend Vue.js + Univer, et un système de fichiers plat pour le stockage. Pas de base de données externe (SQLite pour les métadonnées seulement). L'auth est basique (email/password local, pas de SSO natif), avec partage de fichiers par lien.
L'usage typique est un partage familial ou associatif d'un classeur comptable, d'un tableau de bord, d'un budget mensuel, d'un inventaire, etc. SheetAble n'est pas un concurrent de Google Sheets (pas de collaboration temps réel), mais c'est un excellent visualiseur/éditeur solo auto-hébergé pour qui veut éviter Google Drive. Léger (peut tourner sur Raspberry Pi 4), simple à déployer, et l'UI est jolie et moderne (sombre/clair).
Installation
Via Docker Compose (recommandé)
# docker-compose.yml
services:
sheetable:
image: ghcr.io/sheetable/sheetable:latest
container_name: sheetable
restart: unless-stopped
ports:
- "8083:80"
environment:
- JWT_SECRET=ChangeMeWithOpensslRandHex50
- DATABASE_URL=file:/data/sheetable.db
- STORAGE_PATH=/data/uploads
- MAX_UPLOAD_SIZE_MB=50
- APP_URL=https://sheets.example.com
volumes:
- sheetable-data:/data
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3
volumes:
sheetable-data:
Note
: l'image officielle est
ghcr.io/sheetable/sheetable(à vérifier — peut êtresheetable/sheetablesur Docker Hub).
Installation manuelle
- Pré-requis : Node.js 18+, npm 9+, SQLite (inclus).
- Clone & install :
git clone https://github.com/SheetAble/SheetAble && cd SheetAble && npm install. - Build :
npm run build(build frontend Vue + backend Fastify). - Config : copier
.env.examplevers.envet renseignerJWT_SECRET,STORAGE_PATH. - Lancer :
npm start(port 80 par défaut ouPORT=8083 npm start). - Premier admin : créer via l'UI au premier lancement (signup ouvert désactivable).
Configuration
- Premier user : créer le compte admin via l'UI (Settings → Users), puis désactiver l'inscription ouverte (
ALLOW_SIGNUP=false). - Storage : filesystem local par défaut, S3-compatible possible en v2+.
- Formats supportés :
.xlsx,.xlsm,.csv,.ods,.xls(ancien format) — import et export. - Thème : clair/sombre, persistant par user.
- HTTPS : obligatoire via reverse proxy.
- Backups : copier
/data(DB SQLite + fichiers uploadés). - Reverse proxy :
client_max_body_sizeà 100M pour les gros classeurs. - Performance : gros classeurs (>10 Mo) peuvent ramer dans le navigateur, limiter la taille d'upload.
Alternatives
Open Source
- app-pdfding — gestionnaire PDF léger (même esprit « viewer web »)
- app-papra — GED minimaliste TypeScript
- app-stirling-pdf — boîte à outils PDF (complémentaire)
- Grist — tableur hybride Excel/Airtable (Python) — bien plus puissant
- NocoDB — Airtable-like (Node.js) — pas vraiment tableur
- Baserow — Airtable-like (Python) — pas vraiment tableur
- EtherCalc — tableur collaboratif temps réel (Node.js, vieux)
- OnlyOffice — suite office complète (beaucoup plus lourd)
- Collabora Online — LibreOffice en mode serveur (lourd)
Propriétaires
- Microsoft Excel Online — gratuit avec compte Microsoft, freemium
- Google Sheets — référence, gratuit, collaboratif temps réel
- Apple Numbers — iCloud, freemium
- Zoho Sheet — freemium, Zoho Office
- Airtable — pas vraiment tableur mais cousin (freemium)
- WPS Office — suite office freemium
Sécurité
- HTTPS obligatoire + HSTS via reverse proxy.
- JWT :
JWT_SECRETdoit être long et aléatoire (openssl rand -hex 64). - Pas de 2FA natif : compter sur Authelia/Authentik via reverse proxy.
- Permissions : isolation par utilisateur (un user ne voit pas les classeurs d'un autre).
- Partage par lien : tokens signés avec expiration, révocables.
- Mises à jour : suivre les releases GitHub, Univer/SheetJS sont à jour régulièrement.
- CSP : configurer les Content-Security-Policy headers via reverse proxy (Univer charge des libs tierces).
- Backups : tester la restauration (DB + fichiers).
- Isolation : ne pas exposer SheetAble en direct, passer par reverse proxy authentifié.
Ressources
- Site officiel : https://sheetable.net/
- Documentation : https://docs.sheetable.net/
- GitHub : https://github.com/SheetAble/SheetAble
- Discord communautaire : https://discord.gg/sheetable (à confirmer)
- selfh.st : https://selfh.st/apps/?tag=document-management
Pages Liées
- cat-document-management — catégorie parente
- app-pdfding — cousin « viewer web » pour PDF
- app-papra — GED TS minimaliste
- recettes-docker-compose — templates de déploiement
- securisation-home-lab — bonnes pratiques sécurité