A lightweight, fast CSV file viewer with sorting, filtering, and statistics. Set it as your default .csv handler for instant data inspection.
- 🚀 Instant loading - Offline-first PWA with service worker caching
- 📂 File handler - Set as default app for
.csv,.tsvfiles (Chromium browsers) - 🔍 Search/Filter - Full-text search across all columns
↕️ Sortable columns - Click headers to sort (numbers and text)- 📊 Column statistics - Min, max, avg, median, sum, top values
- 💾 Export filtered - Save your filtered/sorted results
- 🎨 Dark/Light mode - Toggle between themes
- 🔄 Reset All - Clear search, sort, and filters in one click
- 📄 Pagination - Handle large files efficiently (configurable rows per page)
- 📱 Responsive - Works great on desktop and mobile
Visit the GitHub Pages deployment linked on this repo — no install needed.
cd csv-viewer
python3 -m http.server 8000Then visit: http://localhost:8000
- Open the app in Chrome/Edge/Brave
- Look for the install icon in the address bar
- Click to install
After installing:
- Right-click any
.csvfile - Choose "Open with" → "Choose another app"
- Select "CSV Viewer" from the list
- Check "Always use this app"
Now every CSV file opens instantly with sorting and filtering!
Click any column header to sort. Click again to reverse direction. Works intelligently:
- Detects numbers and sorts numerically (handles comma-formatted numbers)
- Falls back to alphabetical for text
- Shows sort indicator (↑/↓)
- Sorting and search compose — filtering keeps your sort, sorting keeps your filter
Type in the search box to filter rows. Searches across ALL columns. Great for finding specific values quickly.
Click the 📊 button on any column header to see:
- Total/unique/empty values
- For numbers: sum, average, median, min, max
- Top 10 most common values with percentages
After filtering/sorting, click "Export Filtered" to download a CSV with just the rows you're viewing.
Ctrl/Cmd + O- Open fileCtrl/Cmd + F- Focus searchCtrl/Cmd + D- Toggle dark/light mode
.csv- Comma-separated values.tsv- Tab-separated values.txt- Generic delimited text (auto-detects delimiter)
Uses PapaParse for robust CSV parsing - handles quoted fields, embedded commas, and edge cases correctly.
Handles large files well:
- Pagination keeps UI fast (50/100/250/500 rows per page)
- Loading spinner for large file parsing
- Efficient filtering and sorting
- Tested with files up to several MB
- ✅ Chrome/Edge/Brave (full support including file handler)
- ✅ Firefox (works, but no file handler API yet)
- ✅ Safari (works, but no file handler API yet)
Files:
index.html- App shellapp.js- Main logic (parsing, sorting, stats)styles.css- Table stylingmanifest.json- PWA configurationservice-worker.js- Offline caching
- PapaParse - CSV parsing
- Service Worker API - Offline support
- File Handling API - Default file handler
Opening CSV files shouldn't require:
- Starting Excel (heavy, slow)
- Opening Google Sheets (requires upload, internet)
- Using a text editor (no structure)
This gives you instant, beautiful CSV inspection with sorting and stats. Double-click → done.
MIT - do whatever you want with it
Built for instant CSV inspection without the bloat 📊