First, figure out what kind of PDF you have
There are two broad types. A text-based PDF has selectable text: you can click and drag to highlight a transaction line. A scanned or image-based PDF is a picture of a page, so highlighting selects nothing.
Test it quickly. Open the file and try to select a single amount with your cursor. If the text highlights, extraction will be more reliable because the characters already exist in the file. If nothing highlights, you have an image and you will need optical character recognition (OCR) to read the numbers.
This matters because it sets your expectations. Text-based files extract cleanly. Scanned files can still work, but OCR can misread a 5 as an S or drop a decimal, so you will need to check totals afterward.
Ways to get the data out
Manual copy-paste is fine for a handful of lines. Select the transaction block, paste into a spreadsheet, then split it into columns. The problem is that PDFs often paste everything into one cell or scramble column order, so it breaks down over many pages.
Spreadsheet import can help. Some versions of Excel and Google Sheets let you import from a PDF or use text-to-columns to split a pasted block on spaces or tabs. This works best on simple, single-column layouts with consistent spacing.
Conversion tools are built for this job. You upload the statement, the tool detects the transaction table, and it returns structured rows as CSV or Excel. Statement to Sheets does this and can also export formats accounting software understands, such as OFX, QFX, QBO, and QIF. Whichever route you pick, the goal is the same: one row per transaction with separate columns for date, description, and amount.
Clean and verify the extracted data
Extraction is only half the work. Start with dates. Statements mix formats, and a value like 03/04 can be March 4 or April 3. Convert everything to one consistent format and confirm the year, since statements often print only the month and day.
Next, handle amounts. Decide whether debits and credits sit in one signed column or two separate columns, and remove currency symbols, commas, and stray spaces so the numbers calculate. Watch for negative values shown in parentheses, which spreadsheets may not read as negative.
Finally, verify with the balance. Take the opening balance, apply each transaction in order, and confirm you land on the closing balance printed on the statement. If it matches, your extraction is complete and correctly signed. If it is off, the difference often points to a missing row, a duplicated line, or a debit recorded as a credit.
Import into your accounting software
Once the data is clean, most tools accept a CSV upload where you map columns to date, description, and amount. QuickBooks Online, Xero, and Wave all support this general flow: upload the file, match your columns to their fields, then review before posting.
If a CSV mapping gives you trouble, a bank-native format is often smoother. OFX, QFX, and QBO files carry transaction structure the software already expects, which reduces mapping errors. QIF is an older format still accepted by some programs. Banks and larger systems may also use MT940, BAI2, or CAMT.
Before you import a large batch, run one statement end to end as a test. Confirm the dates, amounts, and signs land correctly, check for duplicates against transactions already in your books, and only then process the rest.