Csv Exorcist
Under maintenancePricing
from $0.03 / file cleaned
Csv Exorcist
Under maintenancePricing
from $0.03 / file cleaned
Rating
0.0
(0)
Developer
Sindy Dill
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
CSV Exorcist turns a messy spreadsheet dump into a clean UTF-8 CSV and a short JSON report of what it fixed.
Upload a .csv, .tsv, .txt, or .xlsx, or paste CSV text. The Actor detects encoding and delimiter, trims cells, drops empty rows, drops exact duplicate rows, and writes two files you can download from the run storage.
It is a deterministic file cleaner, not an AI, not a scraper, and not a data-quality auditor. It will not invent columns, guess business meaning, or “fix” bad numbers.
What it does
- Accepts a file upload, a public file URL, or pasted CSV text
- Reads CSV / TSV / TXT (encoding + delimiter sniffed) or XLSX (first sheet, or a named sheet)
- Normalizes blank /
Unnamedheaders - Optionally strips cell whitespace
- Optionally drops rows that are empty in every cell
- Optionally drops exact duplicate rows
- Writes
CLEAN.csvandREPORT.jsonto the run key-value store - Pushes the same report to the default dataset
Runs with limited permissions. It only needs the file or text you give it.
How to use it
- Open the Actor and go to the Input tab.
- Either drop a file (CSV / TSV / TXT / XLSX) or paste CSV text.
- If you paste, press Enter between rows. Do not type the characters
\n. - For Excel, set Excel sheet name only if you need a sheet other than the first.
- Leave the three cleanup checkboxes on unless you want the raw grid preserved.
- Click Start. When the run succeeds, open Storage → key-value store and download
CLEAN.csv.
If both a file and pasted text are provided, the file wins.
Input fields
| Field | Required | Notes |
|---|---|---|
| File | No* | Use Upload new file, or a URL that downloads the file bytes. Drive/Dropbox view pages do not count. |
| Or paste CSV text | No* | Real line breaks. Ignored if a file is set |
| Excel sheet name | No | XLSX only |
| Drop duplicate rows | No | Default on |
| Drop empty rows | No | Default on |
| Strip cell whitespace | No | Default on |
* Provide one of file or paste.
Output
Key-value store
CLEAN.csv— cleaned table, UTF-8, comma-separated, header rowREPORT.json— machine-readable summary
Dataset — one item, same shape as REPORT.json:
{"ok": true,"source": "fileUrl","filename": "export.csv","kind": "csv","detectedEncoding": "utf-8","detectedDelimiter": ",","sheetName": null,"rowsIn": 481,"rowsOut": 460,"columnsIn": ["Name", " Amount", "Date"],"columnsOut": ["Name", "Amount", "Date"],"emptyRowsDropped": 4,"duplicateRowsDropped": 17}
Download the dataset as JSON, CSV, or Excel from the run page.
Pricing
Priced per cleaned file on the pay-per-event plan (file-cleaned). See the Pricing tab for the live rate.
There is no extra charge for empty-row / duplicate-row work inside that file. Very large files cost the same event; they just use more run time. Current cap is 40 MB per file.
Limits and non-goals
- Max file size: 40 MB
- One file (or one paste) per run
- XLSX: one sheet per run
- Does not parse
.xls(legacy Excel 97–2003) - Does not unsmerge cells, follow formulas, or keep Excel formatting
- Does not validate emails, tax IDs, or accounting mappings
- Thousands separators inside a field (e.g.
1,000) stay as text unless you quoted them in the source file - Password-protected workbooks are not supported
FAQ
Paste produced one giant row with \n in the cells.
The textarea received the two characters \ and n instead of a line break. Paste again and press Enter between rows, or upload a file.
File upload failed with 401/403.
Use a current build of this Actor. Uploads go through Apify storage and need the run token. Public https:// URLs also work.
Why did two rows that “look the same” both survive?
Duplicates must match on every column after trim. A trailing space that you turned off in Strip cell whitespace, or a hidden character, keeps both rows.
Can I paste a Google Drive link?
A /view or “share” page is HTML, not the file. Preferred: Upload new file. If you must use Drive, the file must be shared with “anyone with the link,” and even then Google may show a confirm page the Actor cannot click through.
Can I point this at Google Sheets?
A spreadsheet /edit URL is a webpage. Export CSV/XLSX and upload, or use a Sheets export URL (.../export?format=csv) on a sheet shared with anyone who has the link.
Changelog
- 0.1 — File or paste in; encoding/delimiter sniff; empty-row and duplicate-row cleanup;
CLEAN.csv+REPORT.json; limited permissions.