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)
BundleVanilla JavaScript (geen framework) · PapaParse 5.4.1 (MIT) · AlaSQL 4.17.3 (MIT)
Browser-targetChrome / Firefox / Safari / Edge laatste 2 versies
Schaal~5 000 rijen comfortabel (virtual scrolling voor 100k+ in SheetHorse)
Privacy100% client-side — geen netwerk-calls, geen tracking, geen accounts
StorageBrowser localStorage (max ~5 MB) — alleen als autosave aan staat
LicentieAGPL-3.0 (publiek open-source)
Codenaam-themaPaardenrassen (huidige stable release: v0.2.0.3-Mustang)
🔒 Privacy-by-design. Je data verlaat je apparaat nooit. Alle parsing, queries en opmaak gebeuren in de browser. Autosave gebruikt je eigen 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?

SheetHorse is de full variant van CSVHorse en leeft op een aparte branch. Kies SheetHorse als je:
  • 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).
Lees de SheetHorse-lancering: de full versie als virtuele relationele DB →

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


#CSV #OpenSource #DataTools #BrowserNative #ClientSide #SQL #AGPL #SingleFile #PrivacyByDesign #iCtHorse #DataAnalyse #NoServer