CSV Operations Query Tool Online: Filter, Dedupe, Compare CSV and Excel
Use Spoold's free CSV Operations tool to query CSV, TSV, and Excel .xlsx files online. Filter rows, select columns, find unique values and duplicates, dedupe CSV data, compare columns, count by category, sort rows, and run numeric summaries in your browser.
Query CSV and Excel files online without writing a script
Spoold's CSV Operations tool turns pasted CSV, TSV, or uploaded Excel .xlsx data into a queryable table in your browser. Use simple commands to filter CSV rows, select columns, dedupe CSV data, find unique values, find duplicates, compare two columns, group counts, sort rows, and run quick numeric summaries. Nothing is uploaded, and large files wait for an explicit Run click so the page does not execute expensive queries while you are still editing.
What is a CSV operations tool?
A CSV operations tool is a lightweight query surface for spreadsheet-like data. Instead of opening Excel, writing SQL, or creating a one-off Python script, you paste a CSV file and run commands such as where(status == "active"), unique(email), countBy(category), or compare(source_id, target_id). It is useful when the file is structured enough to query but not important enough to build a whole import pipeline.
Data cleanup
Remove duplicate rows, isolate blank fields, and check which values are repeated before importing a file.
API and database exports
Inspect CSV or TSV exports from services, dashboards, and databases without leaving the browser.
Excel and spreadsheet checks
Upload an .xlsx sheet, query the first worksheet, and compare columns without writing formulas.
Fast support debugging
Paste a customer export and answer one question: which rows match, which IDs are missing, or which values changed?
How to use CSV Operations
Open the CSV Operations tool
Go to CSV Operations. Paste CSV or TSV data, or upload a .csv, .tsv, or .xlsx file.
Check delimiter and header settings
Leave delimiter on Auto for most files. Switch to comma, tab, semicolon, or pipe if the columns do not line up. Keep Header enabled when the first row contains field names.
Write or pick a query
Use the operation editor, quick suggestions, and completions to build commands such as columns(), head(20), select(name, email), or countBy(status).
Run and inspect results
Small files run automatically. Large CSV or Excel-derived sources show a Run query button so you control when expensive parsing and operations happen.
CSV query examples
The CSV query language is intentionally small. It focuses on everyday data cleanup tasks, not full SQL. These commands cover most CSV and Excel analysis workflows.
| Task | Query | What it does |
|---|---|---|
| List columns | columns() | Show detected column names, types, filled counts, empty counts, and examples. |
| Preview rows | head(20) | Show the first 20 rows without rendering the full table. |
| Select columns | select(name, email, status) | Return only the columns you care about. |
| Filter rows | where(status == "active") | Keep rows where a condition matches. |
| Search cells | search(error) | Find rows containing a term anywhere in the row. |
| Unique values | unique(email) | Return distinct non-empty values from one column. |
| Find duplicates | duplicates(email) | Find values that appear more than once. |
| Count by group | countBy(category) | Group values and count frequency. |
| Dedupe rows | dedupe(email) | Keep the first row for each unique email. |
| Compare columns | compare(source_id, target_id) | See shared, left-only, and right-only values. |
| Sort rows | sortBy(amount desc) | Sort by a numeric or text column. |
| Numeric summary | sum(amount) | Calculate sum, avg, min, or max for numeric values. |
Filter CSV online
Filtering is the fastest way to turn a large export into a short answer. Use where() for column comparisons and search() for a broad text search. For example:
where(status == "active")
where(amount > 100)
where(owner contains "platform")
search(invoice)This is useful for support exports, billing files, operational reports, and one-off investigations where opening a full spreadsheet is slower than asking a direct question.
Dedupe CSV and find duplicates
Duplicate values are common in email lists, customer exports, inventory feeds, and database snapshots. CSV Operations gives you three related commands:
unique(email)returns distinct values.duplicates(email)shows repeated values and counts.dedupe(email)keeps one row per unique value.
Compare CSV columns
Comparing columns is helpful when you have two ID lists in the same file: imported IDs vs exported IDs, source vs target, allowlist vs observed values, or previous vs current identifiers. Use compare(left_id, right_id) to return each value with a status: both, left-only, or right-only.
both
Value appears in both columns.
left-only
Value appears only in the first column.
right-only
Value appears only in the second column.
Run formulas and numeric summaries
For quick math, use summary functions such as sum(cost), avg(cost), min(cost), and max(cost). You can also run row-wise formulas over numeric columns, for example price * quantity or subtotal + tax. This is not a full spreadsheet engine, but it is enough for quick totals, validation, and sanity checks.
CSV Operations vs CSV Preview
Spoold has two CSV-focused tools because the workflows are different.
Use CSV Operations when you need to query
Choose CSV Operations for filtering, extracting columns, finding unique values, deduping rows, comparing columns, sorting, counting groups, and running formulas.
Use CSV Preview when you need conversion
Choose CSV Preview for table view, CSV to JSON conversion, JSON to CSV conversion, export formats, and integrated JSON Operations for converted JSON.
Large CSV and Excel files
Large CSV files can lock up a browser if every edit triggers parsing, type analysis, suggestions, and query execution. CSV Operations avoids that by using a manual Run query flow for large inputs. The input can still be pasted or uploaded, but expensive operations wait until you click Run. For very large data sets, start with columns() or head(20)before running broad queries such as rows(), sortBy(), orsimilar().
Tip for big files
Prefer narrow operations first: select(), head(), countBy(), and unique(). Avoid rendering every row unless you really need the full table.
Privacy: client-side CSV analysis
CSV Operations runs in your browser. Pasted data and uploaded files are processed locally by the page, which makes it practical for quick investigations where you do not want to send a spreadsheet to a server. If your organization has strict data-handling rules, still follow those policies, but the tool itself is designed as a client-side utility.
FAQ
Can I query Excel files online?
Yes. Upload a .xlsx file and CSV Operations reads the first worksheet, converts it to CSV internally, and lets you query the rows.
Is CSV Operations the same as SQL?
No. It is a small CSV query language for common browser-side data tasks. Use SQL for database joins and complex relational queries.
Can I filter CSV rows online?
Yes. Use where() for column conditions and search() for broad text matching across cells.
Can I dedupe CSV data?
Yes. Use dedupe(column) to keep the first row per unique column value, or duplicates(column) to inspect repeated values first.
Does the CSV query tool upload my file?
No. The tool is designed to run client-side in your browser.
Related tools
For conversion and exports, open CSV Preview. For operations on converted JSON, use JSON Operations. For pretty-printing JSON output, use the JSON Formatter. For a deeper conversion walkthrough, read the CSV to JSON conversion guide.
Query CSV, TSV, and Excel files now
Open the free CSV Operations tool, paste or upload data, and run filters, dedupe, comparisons, and summaries in your browser.
Open CSV OperationsRelated Tools
Related Articles
curl Compare Tool Online: Side-by-Side curl Comparator, Diff Two curl Commands
Free online curl comparator and curl diff tool. Paste two curl commands, compare method, URL, headers, query params, auth, cookies, and body with Monaco diff and structured tables. Client-side, no upload — learn workflows, examples, and FAQs.
JSON Diff Online — Compare Two JSON Files, Deep Compare & Visual Diff (Monaco)
Free online JSON diff and JSON compare tool. Paste original and modified JSON, see added/removed/changed paths with semantic deep compare, Monaco DiffEditor, Report/Side/Unified views, export JSON/CSV/TXT, save/share links — ignores object key order, runs entirely client-side with no upload.
OpenAPI Viewer & curl Generator — Browse Swagger / OAS 3 Specs and Copy curl Commands Online
Free online OpenAPI viewer and Swagger viewer with a built-in curl generator. Paste OpenAPI 3.x or Swagger 2.0 JSON/YAML, browse operations by tag, pick a server, and copy a ready-to-run curl command per endpoint. Learn how base URLs, path parameters, query strings, request bodies, and security placeholders are built into each curl command — all client-side, no upload.