CSV and spreadsheet statement converter
Real exports are messy. This is what Karchu does about delimiters, encodings, header noise and multi sheet workbooks.
A CSV should be the easy case. In practice bank and accounting exports are where most import tools fall over, because almost nothing about the format is standard: the separator is not always a comma, the encoding is not always UTF-8, the first row is not always the header, and the last row is often a total pretending to be a transaction. Karchu handles all of that before it ever tries to read a number.
What Karchu works out for itself
| Problem | How it is handled |
|---|---|
| Delimiter | Comma, semicolon, tab or pipe, detected from the file rather than assumed |
| Encoding | UTF-8, UTF-16 and common Windows code pages, with byte order marks stripped |
| Quoted fields | Quotes containing the delimiter, and quoted fields that wrap across newlines |
| Preamble rows | Bank name, account details, period and blank rows above the real header are skipped |
| Footer rows | Totals, closing balances, footnotes and page markers are trimmed |
| Column vocabulary | Date, value date, description, narration, particulars, withdrawal, deposit, debit, credit, amount, balance and their equivalents in several languages |
| Amount styles | Separate debit and credit columns, one signed column, Dr and Cr suffixes, brackets for negatives |
| Number formats | Lakh and crore grouping, European decimal commas, thousands separated by spaces |
| Missing balance | Inferred where the data supports it, and labelled as derived |
| Multi sheet workbooks | Each transaction sheet becomes its own document |
Spreadsheets: XLS, XLSX and ODS
Spreadsheet exports go through the same column matching as delimited files, with two differences. Sheets are examined individually, so a workbook holding a separate sheet per account or per month produces a document per sheet. And a password protected workbook cannot be opened in the browser, so Karchu asks for an unprotected copy rather than failing quietly. Protected PDFs are different: those can be unlocked with a password, as the locked statement page explains.
Preparing an export that imports cleanly
- Export the full period rather than a filtered view, so the balance can be checked end to end.
- Leave the header row in place, even if it looks redundant.
- Do not delete rows in the middle to tidy the file, since gaps break the running balance check.
- Avoid re saving through a tool that reformats dates into a locale you did not intend.
- If you have overlapping exports, upload them anyway. Duplicates are detected rather than silently merged.
When CSV is not the right input
If your bank only offers a PDF, use the PDF statement converter instead of copying and pasting into a spreadsheet, which loses column boundaries. If you need a file your accounting software can import, look at the CSV to QBO converter.
Related pages
- Business document analyzer
- Accounting export analyzer
- Why CSV statement imports fail
- Accuracy benchmarks by format
Frequently asked questions
- Which spreadsheet and text formats are supported?
- CSV, TSV, TXT, XLS, XLSX and ODS. Delimited files can use commas, semicolons, tabs or pipes, and Karchu works out which one the file uses rather than assuming a comma.
- My export opens as gibberish in Excel. Will it still work?
- Usually yes. Garbled characters normally mean the file is UTF-16 or a Windows code page rather than UTF-8. Karchu detects the encoding and strips byte order marks, so accented names and currency symbols survive.
- My file has a title and blank rows before the real headers.
- That is handled. Karchu scans down for the row that actually looks like a header, and trims totals, footnotes and page markers below the data so a total line is never counted as a transaction.
- What if there is no balance column?
- Karchu infers a running balance when the file gives it enough to do so, and labels the result as derived. When coverage is incomplete it leaves the balance empty rather than inventing one.
- Can one workbook contain several accounts?
- Yes. Each sheet that looks like a transaction table is processed as its own document, so a workbook with one sheet per account produces one document per account.
- Why does it say no date or amount column was found?
- The file has no column Karchu can read as a date, or none it can read as an amount. The message names the columns it did find, which usually shows the export dropped a header row or split the amount across columns it could not pair up.