# Convert PDF to QBO Manually with a Spreadsheet

- Author: SimpleBankConvert (https://www.simplebankconvert.com)
- Published: 2026-03-23
- Updated: 2026-03-23
- Category: PDF bank statements
- Canonical: https://www.simplebankconvert.com/blog/convert-pdf-to-qbo-manually

> How to convert PDF to QBO manually: copy the statement into a spreadsheet, clean it up, save it as CSV and build a QBO file, with the checks that catch errors.
To convert PDF to QBO manually, copy the statement's transaction lines into a spreadsheet, clean them into three columns of date, description and signed amount, and save the sheet as CSV. Then write those rows into a QBO file, or upload the CSV itself if you use QuickBooks Online. Prove the result against the statement's balances first.

## Copying a PDF statement into a spreadsheet without breaking rows

Copying from a PDF rarely lands neatly in a spreadsheet. A digital statement pastes as text, but the columns often collapse into one cell per line, or every field lands on its own row. Copy one page at a time, paste into a blank sheet, and expect a tidy-up step before the data is usable.

The work goes faster if you pick the copy method to suit the statement:

1. **Copy a whole page** when the statement is simple. Select from the first transaction to the last on the page, copy, and paste into column A of a scratch sheet. Each printed line usually becomes one cell of text.
2. **Copy one column at a time** when whole-page pastes come out jumbled. On a Mac, Apple's guide to [selecting text in a PDF with Preview](https://support.apple.com/guide/preview/prvw1020/mac) says holding the Option key while you select lets you copy a column of a table. Paste dates, descriptions and amounts into separate columns side by side.
3. **Type it in** when the statement is short or the copy turns to nonsense. Twenty lines take less time to type than to repair.

Use your spreadsheet's split tool on whole-page pastes. Most have a text-to-columns feature that splits a cell at spaces or another character. Split the date off the front and the amounts off the end, and leave the description in the middle as one piece.

A scanned statement will not copy at all, because the page is a picture rather than text. Paper statements and scans need recognition first, and [the guide to scanning bank statements into QuickBooks](/blog/scan-bank-statements-into-quickbooks) covers what to check when you go that way.

## Spreadsheet clean-up before you save the statement as CSV

The goal of the clean-up is three columns with one transaction per row: a full date, a description and one signed amount. Delete everything else on the sheet. Balance rows, subtotals, page headers and blank lines all have to go, because the CSV and the QBO file treat every remaining row as a transaction.

Here is an example of a pasted page before and after the clean-up. The payees and figures are made up for illustration, from an April statement.

Before, as pasted:

| A | B | C | D |
| --- | --- | --- | --- |
| Date | Description | Withdrawals | Deposits |
| 04/02 | Beginning balance | | |
| 04/03 | LAKESIDE PRINTING CO | 148.60 | |
| | INV 3307 | | |
| 04/09 | ACH DEPOSIT NORTHGATE | | 2,250.00 |
| 04/15 | SERVICE CHARGE | 10.00 | |
| | Page 1 of 3 | | |

After:

| Date | Description | Amount |
| --- | --- | ---: |
| 2026-04-03 | LAKESIDE PRINTING CO INV 3307 | -148.60 |
| 2026-04-09 | ACH DEPOSIT NORTHGATE | 2250.00 |
| 2026-04-15 | SERVICE CHARGE | -10.00 |

### The fixes, in order

- **Remove non-transactions.** The column heading row, the beginning balance and the page footer went. None of them is money moving.
- **Join wrapped descriptions.** "INV 3307" sat on its own row with no date and no amount. It belongs to the printing line above.
- **Add the year.** The statement printed month and day only. The statement period supplies the year.
- **Merge the money columns.** Withdrawals became negative, deposits stayed positive, and the extra column went.
- **Strip formatting.** No dollar signs, no thousands separators, no text in the amount column.

A formula column helps with the merge. Put the deposit minus the withdrawal into a new column, then copy it and paste it back as plain values before you delete the originals. A CSV saves what a cell shows, so a formula that still points at deleted columns turns into errors.

Intuit's page on [manually uploading transactions to QuickBooks Online](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-transactions/manually-upload-transactions-quickbooks-online/L0rE9OXBz_US_en_US) lists some of the same rules for its CSV upload: one date format on every row, blank cells instead of zero amounts, and no numbers in the description column. By that rule, the "INV 3307" in the example above would come out of the description before a CSV upload.

## Saving the statement spreadsheet as a CSV file

Save the cleaned sheet with your spreadsheet's CSV option, and keep only the one sheet you mean to import. A CSV holds plain values, one row per line and commas between fields, with no formatting, formulas or second tabs. Reopen the saved file and check the dates and amounts before going further.

Spreadsheets like to reformat things on the way out and on the way back in. Watch for three changes:

- **Dates turned into a different format.** A date shown as 2026-04-03 can save as 4/3/2026, depending on your settings. Pick one format and make sure every row uses it.
- **Amounts losing their minus sign** or gaining brackets when the cell format is set to accounting style. Set the column to a plain number format before saving.
- **Long reference numbers turned into scientific notation.** A long reference can come back as 4.5E+11. Keep such numbers out of the description, or format the column as text.

Name the file after the account and the period, for example "checking-4417-2026-04.csv". When you come back in a year to check something, the name tells you what is inside without opening it. File the original PDF next to it. [Keeping PDF bank statements after importing](/blog/keep-pdf-bank-statements-after-importing) explains why the statement stays useful long after the upload.

For QuickBooks Online, this CSV is already enough. Upload it on the bank transactions screen and match the columns. The QBO step that follows is for QuickBooks Desktop, which takes Web Connect files for bank accounts, or for when you want a file that needs no column matching.

## Can you write the QBO file by hand from the CSV?

You can write a QBO file by hand, because it is a plain text file you can open in any text editor. It holds a header naming the institution and account, then one block per transaction, then the closing balance. Your CSV supplies each block's date, amount and description; you make up a unique ID for each.

The easiest route is to start from a real QBO file, such as one downloaded from any bank, and replace its transactions with yours. That way the header lines are already in the form QuickBooks expects. Building a header from nothing is where most hand-made files fail.

Each transaction block looks like this. The values are examples taken from the cleaned sheet above, and the full layout of the file, header and all, is laid out in [what is inside a QBO file](/blog/qbo-files-explained#whats-inside-a-qbo-file):

```
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260403
<TRNAMT>-148.60
<FITID>2026040301
<NAME>LAKESIDE PRINTING CO INV 3307
</STMTTRN>
```

Work through the CSV one row at a time:

1. **TRNTYPE** is DEBIT for a negative amount and CREDIT for a positive one.
2. **DTPOSTED** is the date written as year, month and day with no separators.
3. **TRNAMT** is the signed amount from your CSV, with the same minus sign.
4. **FITID** is a unique ID. A date plus a running number works, as long as no two lines share one and you never reuse it for another line.
5. **NAME** is the description, copied from the cleaned sheet.

After the last block, the file closes the transaction list and states a balance, which should be the closing balance printed on the statement. If you update the account number or the statement dates in the header, keep them the same each month for the same account.

Writing blocks by hand is fine for a dozen lines. For more, a spreadsheet formula can build each block from a row, joining the fixed tags and the cell values into one text cell. Copy the results into the text file between the header and the closing lines.

## Which checks catch errors in a hand-built QBO file?

Three checks catch nearly every error in a hand-built QBO file: the row count, the balance and a test import. Count the transactions on the PDF and the blocks in the file. Add the amounts and confirm the opening balance plus that total equals the closing balance. Then import into a test or backed-up company file first.

Do the balance check in the spreadsheet, before the QBO step, where it is easiest to fix. Using the cleaned April sheet above as an example: if the opening balance on the statement was 3,904.25, then 3,904.25 minus 148.60, plus 2,250.00, minus 10.00 gives 5,995.65. That figure must match the statement's closing balance. If it does not, find the gap before writing any blocks.

The checks for the file itself are about structure:

- **Every block opens and closes.** A missing closing tag can stop the import or merge two transactions.
- **Every FITID is different.** Sort the IDs in the spreadsheet and look for repeats.
- **Every date is eight digits** in the right order, and every amount has a decimal point and no commas.

Then import. In QuickBooks Desktop, back up the company file first, so a bad file costs you a restore rather than a clean-up. In QuickBooks Online, upload and look through the review list before accepting anything. Once lines arrive in Desktop, how they display depends on your bank feed settings, and [Express mode versus Classic mode in QuickBooks Desktop](/blog/quickbooks-desktop-express-mode-vs-classic-mode) describes both.

## When converting PDF to QBO by hand isn't worth the time

Converting by hand suits a short statement or a one-off gap in your records. It stops making sense when the stack is long, the statements are scanned, or you would repeat the job every month. At that point, a CSV upload, a bank download or a converter saves hours and removes most of the room for error.

Some situations where the manual route is a poor fit:

- **A year of statements for a busy account.** Hundreds of lines a month means hundreds of chances to drop a row or flip a sign.
- **Scanned or photographed statements.** There is no text to copy, so you would be typing every line.
- **QuickBooks Online users.** The CSV from the earlier step already uploads. Writing the QBO file adds work without adding anything you need.

And one case where the manual route is often the only one: an account that is already closed. Online banking access may be gone, so downloads are not available, and the PDFs you can get from the bank are all there is. The post on [bringing closed bank account statements into QuickBooks](/blog/closed-bank-account-statements-into-quickbooks) covers requesting them and what to do after the import.

SimpleBankConvert is being built to take a digital PDF statement and produce a CSV or QBO file with the dates standardised and the money in one column, which are the slowest steps of the manual route. It is in early access, and you can [ask on the get started page](/get-started) to be told when it opens.
