Bank statement into a spreadsheet, without typing it out again

Start in online banking, not in Excel. Almost every bank has a download option for transactions, usually labelled Download, Export or Statement, and it will offer CSV or sometimes Excel directly. Take that. Then, and this is the part that saves the afternoon, do not double-click the CSV. Open it through Excel's Data tab instead, with the date column set to Text or to the locale the file came from, because Excel left to itself will rewrite dates, drop leading zeros and turn long account numbers into scientific notation, all without saying anything. If your bank only gives PDFs, there are free routes for that too, and they work on real PDFs and not on scans.

Updated 12 September 2026 · 7 min read

Look for the export before you look for a converter

People land on converter sites for statements their bank would have given them as CSV for nothing. The option is there in most online banking, and it is badly signposted.

Where it hides: a small download icon beside the transaction list rather than a menu item, a format dropdown that only appears once you choose a date range, or a statements page holding the PDFs and a different page holding the transactions. Phone apps often leave it out when the desktop site has it, so try a real browser.

Formats, best first for this job: Excel or CSV, then OFX or QIF, then PDF. Take the widest date range the bank allows in one go, since several cap how far back a single export reaches.

Open the CSV the careful way

A CSV is a text file. Double-clicking it hands Excel full discretion over what every value means, and Excel exercises it.

The modern route, on Windows and Mac:

  1. Open a blank workbook. Data, then From Text/CSV.
  2. Pick the file. Excel shows a preview and a proposed set of column types.
  3. Click Transform Data rather than Load, which opens Power Query.
  4. Right-click the date column, choose Change Type, then Using Locale, and pick the locale the file was written in. English (United States) for month-first dates, your own for day-first.
  5. Set any reference, account or cheque number column to Text.
  6. Close and Load.

The locale step is the one worth learning. Microsoft documents three places a locale can come from, resolved in this order: the Change Type setting, Power Query itself, then the operating system. Which is a precise way of saying that if you do not set it, your machine's regional settings decide how your bank's dates are read, and your bank does not know what those are.

The old wizard still exists. File, Options, Data, tick From Text (Legacy), then Data, Get Data, Legacy Wizards, From Text (Legacy). Step three lets you set each column's type, with the date order spelled out.

What Excel changes when you let it decide

Three conversions, all silent, all bad for bank data:

  • Leading zeros. A sort code, branch number or reference written as 00451 becomes 451.
  • Long numbers. A card or account number longer than 15 digits is truncated to 15 digits of precision and shown in scientific notation. The original digits are gone, not hidden.
  • Anything date-shaped. Text that resembles a date is converted using your regional preference, which is how 03/04 becomes the 4th of March on one machine and the 3rd of April on another.

Newer Excel builds let you control this. Look in Excel Options for an Automatic Data Conversion section, which has switches for leading zeros and the 15-digit truncation, and an option to be told when Excel is about to convert something as it loads a file.

If all you have is OFX or QIF

Both are text, so both can be read without buying anything, and neither is pleasant by hand.

An OFX file is tagged, a bit like HTML. Each transaction is a block, and the fields you want are the date, the amount and the description. Its dates are written year first, as 20240131, so there is nothing to guess. Turning a few hundred tagged blocks into rows means a careful find-and-replace or a script.

A QIF is flatter: one line per field with single-letter codes, D for date, T for amount, P for payee. Easier to eyeball, and its dates are ambiguous, since nothing in the file records which convention was used.

If your bank only gives PDFs

First, find out which kind of PDF you have. Open it and try to select a line of text with the cursor. If the text highlights, it was generated digitally and the text is really in there. If nothing highlights, it is an image of a page and nothing will help until it has been through OCR.

For a real text PDF, two free routes:

  • Tabula. Free, open source, runs on Mac, Windows and Linux. You draw a box around the table and it extracts to CSV or Excel. Its own documentation says it only works on text-based PDFs, and it runs locally, so the file never leaves your machine.
  • Excel's PDF connector. Data, Get Data, From File, From PDF. It lists the tables it finds and you pick one. Available in Excel for Microsoft 365 on Windows, not in Excel 2019 or 2021 standalone, and limited or missing on Mac depending on the build.

Both struggle with the same thing: a statement where a description wraps onto a second line gives you a row with no date and no amount, which you have to join back to the row above. Checking for those is the manual part of the PDF route.

Google Sheets, if you do not have Excel

Sheets will open a CSV through File, Import, and it makes the same guesses Excel does. The difference is that it asks. There is a tick box during import for converting text to numbers, dates and formulas. Untick it and the data arrives as text, intact, for you to convert deliberately. Sheets has no per-column locale setting, so for day-first dates the safe habit is to import as text and split the date column on the slash.

Check it before you build anything on it

Four checks, five minutes, and they catch nearly everything.

  1. Count the rows against the statement, not against a feeling. A truncated import looks perfect at the top.
  2. Sum the amounts. If you are out by a factor of a thousand, the decimal separator was read wrong.
  3. Sort the date column and look at the extremes. If the earliest and latest dates are not the period you asked for, the dates were read in the wrong order.
  4. Open one long reference number. If it shows as 4.51E+15, the digits are already lost and you need to import again as text.

Do it now. Every one of these errors survives into whatever you build next.

Where the free route genuinely runs out

For one month of one account, the steps above are the whole job and there is no reason to pay anyone.

It stops being free-shaped when you have a year or more and the dates need checking on every row, when the export mixes thousands separators and decimal commas so a careless read is out by a factor of a thousand, and when the result has to be properly typed so sorting and subtotalling work. That last one is the most common reason a converted statement turns out useless. It looks right and behaves like text.

If the manual route is more evening than you have, this takes a bank CSV, QIF or OFX and writes an xlsx with the dates as real dates and the amounts as real numbers, plus a clean CSV. The free preview states how it read your dates and decimal point. It reads real columns, not PDFs.

Open Statement to Excel →

Questions, answered.

Why do my dates sort alphabetically instead of by date?
Because they are text that looks like dates, and Excel sorts text as text. Reimport with the date column typed as a date and the right locale, or use Data, Text to Columns, where the last step lets you declare the date order.
My bank gives an .xls file that Excel warns about. Is it safe?
That warning usually means the file is really a CSV or HTML table with an .xls extension, which some banking systems still do. Opening it is generally fine, and the reliable move is to rename it to .csv and open it through the Data tab.
Can I convert a scanned statement?
Not without OCR first, because a scan is a photograph of text. Then check every number by eye, since OCR confuses 8 with 3 and loses minus signs. For anything that has to reconcile, a bank CSV is worth a phone call.
Is it safe to upload a bank statement to a converter site?
A real question to ask, and the answers you want are specific: who can see the file, how long it is kept, and whether it is used for anything else. Here the uploaded file and the finished one are deleted within 7 days, and nobody reads them.
How do I combine twelve monthly CSVs into one sheet?
Put them in one folder, then use Data, Get Data, From File, From Folder. Power Query combines files with matching columns into one table and refreshes when you add a month. Check the headers match exactly first.
Why are some amounts negative and some in a separate column?
Banks do both. Some use one signed Amount column, others separate Debit and Credit columns. If you are converting between the two, check that debits came through as negatives rather than as tidy-looking positives.