Someone hands you a CSV file and asks "what's in here?" The honest answer usually takes longer to produce than it should: open it in a spreadsheet, guess at column types, write some throwaway charts, maybe spin up a notebook. CSV2Dashboard exists to skip that ritual — one command, and you have an interactive dashboard or a shareable report instead.
The problem
Data scientists and analysts explore tabular files constantly, and most of that exploration is repetitive: figure out column types, build a few standard chart types, maybe filter by a date range or a category. Doing this from scratch every time — or standing up a custom web app just to look at one spreadsheet — is disproportionate to the task. The goal was a zero-setup tool: no registration, no cloud service, nothing beyond a single command against a file already on disk.
How it's built
CSV2Dashboard is a Python package with a clear division of responsibility:
- Loading — reads CSV, CSV.GZ, or Excel files via pandas, auto-detecting delimiters and inferring column types (numeric, categorical, datetime, text).
- Filtering — multi-dimensional filters: text search, numeric ranges, date ranges, and categorical multi-select.
- Analysis — automatically generates histograms, bar charts, or time-series plots depending on each column's inferred type, using Plotly.
- Two output modes — either a live, filterable dashboard served through Gradio, or a self-contained, offline HTML report you can send to someone without them needing to install anything.
It's packaged properly — pip install -e . gives you a csv2dashboard
console command, with a smoke-test suite and example data included — designed to handle datasets
up to roughly 500,000 rows.
Why the two-mode design matters
The dashboard mode is for exploring data yourself, interactively. The standalone HTML export mode is for a completely different audience: someone who just needs to see the result, doesn't have Python installed, and shouldn't have to. Building both from the same underlying analysis code (rather than maintaining two separate charting implementations) means whatever chart logic gets improved benefits both output paths at once.
Try it
The code is on GitHub, with a sample dataset included so you can see the output before pointing it at your own files.