Gearyforgemore tools
Tidyrow

Turn a pasted bank statement into a clean CSV

Copy the rows out of your bank statement, paste them below, and get a tidy table you can download.

Your text never leaves this browser. There is no server and nothing is uploaded.

Best guess: Comma. Pick one above if that's wrong.

Nothing pasted yet. Paste some rows above and the table appears here.

Copy the rows of a bank statement out of a PDF or web page, paste them into the box, and the tool turns them into a tidy table. Dates line up, amounts become numbers, repeated lines disappear, and the result downloads as a CSV or Excel file.

From pasted text to a table

Statements copied from PDFs rarely arrive neat. Lines pick up stray spaces, columns drift apart, and blank gaps appear where pages break. Paste the whole block of text and the parser splits it into lines, works out which character separates the columns, and builds a square table. The first line becomes the header row, and every value after that lands in its own cell.

Dates and amounts, cleaned

Date columns copied from statements often carry padding spaces, and amounts arrive with trailing characters that stop a spreadsheet reading them as numbers. With the default fixes on, each cell is trimmed, date values are recognised and stored in a consistent year-month-day form, and numeric values are cast so sorting and filtering behave. You can switch the day-month or month-day reading to match your statement.

Blank lines and repeats removed

Page breaks and copy artefacts leave empty lines in the middle of a statement, and selecting text twice can duplicate whole rows. Both problems are handled before you see the table: blank rows are dropped, and identical rows are removed so a transaction appears once. The counter under the preview shows how many lines were cleared, so nothing vanishes without a visible trace.

Download the cleaned table

Once the preview looks right, download the result as a CSV file that any spreadsheet opens directly, or as an Excel workbook with the date column formatted properly. The file name includes the date it was created, so successive attempts stay separate in your downloads folder. Nothing is written back to your bank or any other service; the file lands in your browser downloads.

Private by design

The whole tool runs in your browser. There is no upload step, no account, and no server holding your text, so a statement pasted here never travels anywhere. Close the tab and the pasted text is gone unless you choose to keep your fix settings, which are stored locally and contain no row data. That makes it practical for statements you would rather not share.

Questions

Which statements can this handle?

Any statement you can select and copy as text. The tool reads the characters you paste, so it does not matter which bank produced the file, as long as the rows are line-separated and the columns are separated by a consistent character such as a comma, tab or pipe.

Do I need to install anything?

No. The converter runs entirely in the browser tab you already have open. There is nothing to download and install, no account to create, and no plugin. Paste, adjust the fixes if you want, and download the cleaned file straight from the page.

What happens to the text I paste?

It stays on your device. The parsing, cleaning and file building all happen in local JavaScript, and nothing is sent to a server. When you close or refresh the tab the pasted statement is discarded, and only your fix preferences, if you keep them, persist locally.

Can I change how dates are read?

Yes. A control above the table switches between day-month-year and month-day-year, so a date like 03/04/2026 can be read either way. Pick the order your statement uses and every date cell is reinterpreted, then stored consistently in the downloaded file so sorting works as expected.

What if the columns come out wrong?

Switch the delimiter. The tool usually detects the separator on its own, but you can force a comma, tab, semicolon, pipe or runs of spaces from the picker above the preview. Changing it rebuilds the table immediately, so you can compare and keep whichever split matches your statement.