CSVHorse is een standalone, single-file applicatie waarin je een CSV opent, filtert, queryt met SQL, cellen bewerkt en op-maakt, en weer exporteert — alles in één HTML-bestand in elke moderne browser. Geen server, geen account, geen netwerk. Geen npm, geen build, geen install. Drop-and-open.
Open de tool meteen: cpaglebbeek.github.io/CSVHorse. Source en architectuur-documentatie zijn publiek onder AGPL-3.0 (zie onderaan).
Voor wie?
CSVHorse is voor iedereen die regelmatig CSV-bestanden bekijkt of bewerkt en daarbij telkens tegen dezelfde frustraties aanloopt:
- Excel die getallen automatisch interpreteert en kapot maakt (postcodes, telefoonnummers, ID's).
- Browser-tooltjes die je data naar een server sturen om het te "analyseren".
- SQL-clients die een database-import vereisen voordat je één kolom kunt filteren.
- Het ontbreken van een snelle manier om opmaak (kleur, bold) te bewaren tussen sessies zonder XLSX te gebruiken.
CSVHorse is geen vervanger van Excel of een DBMS. Het is een werkbank: snel openen, manipuleren, exporteren, doorgeven. Niet meer, niet minder.
Wat zit erin?
📁 Import & lege start
Drag-and-drop een .csv op de pagina (dialect-auto-detect: komma, puntkomma, TAB, pipe) — of begin met een lege CSV via "Nieuw"-dialog (kolom- + rij-aantal).
✏ Bewerken & undo
Klik = selecteer cel. Dubbelklik (of Enter/F2) = bewerken. Onbeperkte undo/redo per cel-edit. Toetsenbord-navigatie met Arrow/Home/End/Tab. Header-namen ook bewerkbaar via dubbelklik.
⋲ UI-filter
Kolom × operator × waarde via dropdowns. Acht operators (bevat, =, !=, begint met, eindigt met, is leeg, ...). Live highlight in tabel.
≡ SQL-paneel
Volledige SQL over je data via AlaSQL: SELECT/WHERE/GROUP BY/ORDER BY/aggregates. Met visuele query-builder (klik je query bij elkaar via dropdowns) én vrije textarea. Ctrl/Cmd+Enter = Run.
B I U Opmaak
Bold, italic, underline, strike, tekstkleur, achtergrond, font-size, alignment — per cel. Native color-pickers. Visueel direct zichtbaar, undo-baar.
🔍 Zoek & vervang
Regex of plain. Case-toggle. Scope: alle cellen, huidige kolom of selectie. Vorige/volgende, vervang één, of vervang alle als één atomic undo-step.
💾 Autosave
Throttled snapshot naar localStorage. AAN/UIT-toggle in toolbar. Bij heropenen: restore-banner met laatste sessie. Uitzetten wist ook de snapshot — consistent gedrag.
⬇ Export met opmaak
Exporteer als CSV mét je opmaak: extra __style_*-kolommen bewaren bold/kleur/etc. Bij heropenen: opmaak automatisch hersteld. Round-trip getest 100% identiek.
Architectuur
CSVHorse is bewust simpel ontworpen: één HTML-bestand met inline vanilla JavaScript (geen framework). Vendored libraries (PapaParse voor CSV-parsing, AlaSQL voor SQL) zitten inline opgenomen met SHA-256-hash gepind. Alles draait client-side: er is geen backend, geen analytics, geen telemetry.
Voor het volledige architectuurmodel (ArchiMate-stijl, 9 views inclusief componenten, data-flow, roadmap-plateaus en de ecosysteem-branch-split met SheetHorse) zie de CSVHorse architectuurviewer. Deze is interactief en deterministisch — zelfde model levert byte-identieke SVG-export. Importeren in Archi-tool kan via de meegeleverde .archimate-export.
Technische specificaties
| Single-file deliverable | één index.html (~660 KB minified, inclusief alle vendored libraries) |
| Bundle | Vanilla JavaScript (geen framework) · PapaParse 5.4.1 (MIT) · AlaSQL 4.17.3 (MIT) |
| Browser-target | Chrome / Firefox / Safari / Edge laatste 2 versies |
| Schaal | ~5 000 rijen comfortabel (virtual scrolling voor 100k+ in SheetHorse) |
| Privacy | 100% client-side — geen netwerk-calls, geen tracking, geen accounts |
| Storage | Browser localStorage (max ~5 MB) — alleen als autosave aan staat |
| Licentie | AGPL-3.0 (publiek open-source) |
| Codenaam-thema | Paardenrassen (huidige stable release: v0.2.0.3-Mustang) |
localStorage. CSVHorse zelf bevat geen analytics, cookies of telemetry. De hosting (GitHub Pages, later icthorse.nl/csvhorse) serveert alleen statische HTML.
Wanneer kies je SheetHorse in plaats?
- Excel-bestanden (
.xlsx) wil openen én schrijven, mét cell-opmaak round-trip naar native Excel-styles; - met meerdere tabbladen wil werken (tab-strip onderaan, per-sheet state);
- relaties tussen tabellen wil definiëren en SQL-joins wil draaien over meerdere sheets (gepland in v0.3.0/v0.4.0);
- multi-tabel data in één CSV wil opslaan via een metadata-conventie (gepland in v0.5.0).
Achterliggende keuze: één codebase, twee branches
CSVHorse en SheetHorse delen dezelfde codebase in één GitHub-repository (cpaglebbeek/CSVHorse) op twee branches: main voor de light variant (CSVHorse, stabiel eindpunt), sheethorse voor de full variant (actieve ontwikkeling). Bug-fixes die in beide branches relevant zijn, worden naar beide gemerged. De deployment werkt via een gecombineerde GitHub Actions Pages-workflow: je vindt beide LIVE op cpaglebbeek.github.io/CSVHorse (light) en /sheethorse/ (full).
Voor wie de codebase wil inzien of bijdragen: zowel de architectuur-documenten als de viewer met 9 ArchiMate-views zijn publiek. De vendor-libraries (PapaParse, AlaSQL, xlsx-populate in SheetHorse) zijn inline met SHA-256-hash gepind — dezelfde build geeft dezelfde bytes.
Aan de slag
Open CSVHorse → Architectuurviewer SheetHorse-lancering