Convert a PDF Table to Google Sheets

Extract the table in your browser, copy it, paste it into a blank Sheet. No account connection, no upload, and it lands in cells rather than in a single column.

Quick answer:

Open the PDF table extractor, press Extract tables, then press 📋 Copy for Google Sheets and paste into a blank Sheet — there is a link beside the button that opens one. The clipboard carries an HTML table and tab-separated text, which is why the columns are already columns when you paste; a CSV would arrive in one column. The PDF is read on your device and never uploaded, and no Google account connection is asked for.

Can I open a PDF directly in Google Sheets?
No. Sheets has no PDF import; uploading one to Drive and opening it gives a Google Doc of paragraphs, not a table. Something has to read the table structure out first.
Why does a pasted PDF table land in one column?
Because it was copied as comma-separated text, which Sheets only splits if you run Data → Split text to columns. This puts tab-separated text and an HTML table on the clipboard, so it arrives in cells.
Is my PDF uploaded?
No. It is read and converted in your browser, and only the table goes on your clipboard. Be clear about the limit, though: once you paste, the table is on Google’s servers, because that is what a Sheet is.
Do I need to connect my Google account?
No. There is no sign-in and no Drive permission — no Google API script on the page at all. One-click export would require granting a web page access to your Drive.
Is it free?
Yes — no account, no page limit, no watermark. There is nothing to meter because the conversion runs on your own machine.
📊 Open the PDF table extractor

Runs in your browser. No account, no upload, no Drive permission.

The three-step version

  1. Extract the table. Drop the PDF into the table extractor and press Extract tables. It reads the columns from the table's own ruling lines where it has them and from the spacing where it does not, and it shows you every page before you commit to anything.
  2. Press 📋 Copy for Google Sheets. The button names the table it is about to copy, so it cannot disagree with what is on screen.
  3. Open a blank Sheet and paste. There is a link next to the button that opens one. Ctrl+V, or +V on a Mac.

The table arrives as cells. No Split text to columns, no import dialog, no upload.

Why a pasted PDF table usually lands in one column

This is the single most common complaint about getting a PDF into Google Sheets, and it has one cause: the data was copied as comma-separated text. Sheets does not split a pasted CSV into cells on its own — you have to go and run Data → Split text to columns afterwards, and then fix everything that had a comma inside it.

Spreadsheets do not talk to each other in CSV. They exchange tabular data as tab-separated text, and they read an HTML table in preference to either. Our copy button puts both on the clipboard in one write, so Sheets takes the HTML table and gets the structure exactly, while a plain text editor takes the tab-separated version.

Why both, and not just the tab-separated text

Because tab-separated text has no quoting convention that survives a paste. If any cell contains a tab or a line break — and an OCR read of a scan can easily produce one — that cell silently destroys the row it is in.

We measured it rather than assuming it. A 7-row, 3-column table with one tab and one line break in it, parsed back from tab-separated text, comes out as 8 rows, every one of them four columns wide. Nothing errors. You would find out when a total came out wrong. The HTML flavour has no such failure mode, because its cell boundaries are tags rather than characters.

The cells Google Sheets would turn into formulas

A cell whose text begins with =, +, - or @ is the start of a formula to every spreadsheet there is. Paste a supplier's phone number written +44 20 7946 0958 and Sheets tries to evaluate it. Paste a +4 from a Change column and it quietly becomes the number 4, losing the sign the document actually printed. A cell reading =SUM(...) — which a badly extracted formula-looking string can be — becomes a live formula in your sheet.

So those cells get a leading apostrophe, which is the universal spreadsheet marker for keep this as text, and the count is reported next to the button rather than done quietly.

The guard is narrow on purpose, and the narrowness is what makes it safe. A cell the extractor turned into a real number is never touched, so a negative figure keeps its minus sign and stays a number you can sum.

Across every test document in this projectCount
Cells extracted1,866
Cells beginning = + - @26
…of those, text — protected with an apostrophe20
…of those, genuine negative numbers — left alone6
Cells containing a tab or a line break0

The last row is worth being straight about: none of our fixtures contains a tab or a line break in a cell. The two-flavour clipboard is an invariant rather than a fix for a bug we hit — but the measurement above shows exactly what it costs when it does happen, and hand-edited or OCR'd cells are where it will come from.

The reason for the whole guard is that the paste and the download have to agree. +4 is a text cell in the .xlsx, so it has to be a text cell in the Sheet too. If they differed you would have no way of knowing which was right.

Paste, or import the file?

Both work and they are good at different things.

Copy and pasteDownload .xlsx, then File → Import
SpeedTwo clicksDownload, upload, choose options
Column widthsSheets picks its ownComes with the sheet
Several tablesOne at a time, whichever you are previewingAll of them, one sheet each
Very large tablesClipboard can struggleFine
Goes through Google DriveNoYes — the file is uploaded to import it

If the PDF holds several tables — a statement with a summary page, an annual report — the .xlsx route is usually less work, because the extractor already groups pages into tables and gives each one its own sheet.

Once it is in Sheets: the three things worth doing first

A statement that has just arrived is a rectangle of text. Three moves turn it into something you can interrogate, and none of them needs a plugin or a script.

Freeze the heading and switch on a filter. View → Freeze → 1 row keeps the labels visible while you scroll; Data → Create a filter puts a dropdown on each heading so you can isolate one payee, or every transaction above a threshold, without dragging a selection across hundreds of lines.

Ask a question with QUERY instead of building formulas. Sheets carries a small SQL dialect no desktop spreadsheet has: =QUERY(A1:E200,"select B, sum(D) where D is not null group by B order by sum(D) desc") gives you a ranked total per payee from a bank statement in one cell, and it recalculates as you correct things. SUMIF and a pivot table both work too; QUERY is simply less scaffolding for a question you ask once.

Let the revision history do your backups. File → Version history keeps every state of the document with a name against each edit, so correcting a misread figure is never destructive and you can see what you changed and when. That is genuinely better than a folder of files named statement-final-v3, and it is the strongest practical argument for putting the data here rather than leaving it in a workbook on a disk.

Two habits that save grief later. Give each imported sheet the period it covers as its tab name, because Sheet1 stops meaning anything by the third import. And if you are going to share the document, use Share → Restricted and add people individually rather than switching on link access — a financial document with a public link is one forwarded message away from being genuinely public, and the link never expires on its own.

Formatting: which route keeps it, and which throws it away

This is the one real difference between pasting and importing, and it is worth knowing before you pick.

Pasting carries the values, not the design. The clipboard hands over an HTML table and tab-separated text; Google Sheets reads the cell structure and applies its own default look. Bold survives from the HTML, but the typeface, the shading behind a header row, the ruled borders and the column widths measured off the original page do not travel.

Importing an .xlsx does keep them. Set Output to Preserve appearance in the extractor, download the workbook, then use File → Import → Upload. Sheets reads the fonts, the background shading, the borders, the alignment and the column widths out of the file. A typeface it cannot find it will swap for something near, which is what any spreadsheet does with any workbook.

So the choice is simple. Copy and paste when the figures are the point and you are going to sort, filter or chart them. Download and import when somebody is going to read the sheet and you want it to still look like the statement it came from.

One consequence worth spelling out: importing uploads the workbook to Google Drive, because that is what an import is. Pasting does not. If the document is sensitive enough that you chose a browser-based converter for it, that difference may matter more than the shading does.

Why there is no "connect your Google account" button

Because one-click export means granting a web page access to your Google Drive. Every converter that offers it has to: it signs you in, takes a Drive permission, and creates the file from its own servers — which means your table goes through those servers too.

It is worth being precise about what the clipboard does and does not buy you, because plenty of pages are vague here. Once your table is in a Google Sheet it is on Google's servers. That is what a Sheet is. What changes is that you choose the moment, it is only the table and never the PDF, and this site never holds a token to your account — there is no sign-in on the page and no Google API script in it.

The PDF itself never leaves your device either way. It is read in your browser, and so is the OCR if the pages are scans. If you would rather not involve Google at all, download the .xlsx and open it in Excel, Numbers or LibreOffice.

Checking, inside the Sheet, that the numbers came through

Extraction is inference, so the useful habit is a thirty-second sanity check once the table has landed. Three tells, in order of how quickly they catch something:

If a whole column came through as text, select it and use Format → Number, or Data → Split text to columns if two columns ended up sharing one. A single cell is faster to retype. And if a cell shows an apostrophe you did not expect, that is the guard above doing its job — the value beneath it is the one the document printed.

Two housekeeping moves worth making straight away on a long statement: View → Freeze → 1 row so the headings stay put while you scroll, and a filter over the header row so you can sort by date or by amount without dragging a selection across several hundred lines.

If your Sheet is set to a European locale

This one catches people out and has nothing to do with the extraction. A spreadsheet decides what counts as a decimal point from its locale, not from the file. In the United Kingdom and the United States 1,250.00 is one thousand two hundred and fifty; in Germany, France, Spain, Italy and much of the rest of Europe that same string means something else entirely, because there the comma is the decimal separator and the full stop is the thousands separator.

So a statement printed in one convention, pasted into a Sheet configured for the other, can land as text rather than as money — and the right-alignment tell above is exactly how you spot it. The fix is not to retype the column. It is File → Settings → Locale, set to match the document, and then paste again.

The same applies in reverse to dates. 03/04/2026 is the third of April to a British reader and the fourth of March to an American one, and your Sheet will pick whichever its locale says without mentioning the ambiguity. A document that writes dates as 2026-04-03 avoids the problem outright; if yours does not, decide which convention it uses before you sort by that column.

When this is the wrong route

Worth knowing before you spend time on it, because none of these is a failure you can extract your way out of:

For the first three the honest answer is that the document has to change, not the converter.

Scanned PDFs

A scan holds a picture of a table, not a table, so there are no characters to copy. Tick Read scanned pages (OCR) before extracting and the text is recognised in your browser, after a one-off download of about 6 MB. Every other tool that serves this query uploads your document to do the same job.

The honest part: the structure survives far better than the characters. All five columns of a five-column statement came back at every scan quality we tried, down to 56 dpi — but on a rough scan some figures were misread. The extractor marks cells that cannot be what their column is, and you can correct them in the preview before you copy. Check the figures against the original.

Where to go next

Frequently Asked Questions

Open the PDF table extractor, press Extract tables, then press Copy for Google Sheets and paste into a blank Sheet — there is a link beside the button that opens one. The table arrives in cells rather than in a single column. Everything happens in your browser: the PDF is never uploaded and no Google account connection is needed.
Because it was copied as comma-separated text. Google Sheets only splits a pasted CSV into cells if you then run Data → Split text to columns. Spreadsheets exchange tabular data as tab-separated text, and prefer an HTML table to either — this tool puts both on the clipboard, so the columns are already columns when you paste.
No. Google Sheets will not open a PDF. Uploading one to Drive and opening it converts it to a Google Doc, which gives you paragraphs of text rather than a table. You need something that reads the table structure out of the PDF first, which is what this extractor does.
This one. The PDF is read in your browser and the table is put on your clipboard; nothing is sent to a server, and there is no sign-in and no Drive permission. Once you paste into a Sheet the table is on Google's servers, because that is what a Sheet is — but you choose that moment, and the PDF itself never leaves your device.
Because its text begins with =, +, - or @, which every spreadsheet reads as the start of a formula. A phone number written +44 20 7946 0958 would come out as an error, and a +4 would silently become the number 4. The apostrophe is the standard marker for keep this as text. Cells that are genuine numbers are never touched: of 1,866 cells across our test documents, 26 began with one of those characters, and only the 20 that were text were protected — the 6 negative numbers were left alone.
Tick Read scanned pages (OCR) before extracting. The recognition runs in your browser after a one-off download of about 6 MB, so the document still does not leave your device. The columns come back reliably even from a poor scan; individual figures may not, so check them against the original — the preview marks cells that cannot be what their column is.
Paste for one table you can see — it is two clicks and does not go through Drive. Download and import for a big table, or for a PDF holding several tables, because the .xlsx carries the column widths and puts each table on its own sheet. Importing uploads the file to Google Drive; pasting does not.
No. Google Sheets has no PDF import at all: File then Import accepts spreadsheets and CSVs, and uploading a PDF to Drive and opening it converts it to a Google Doc, which gives you paragraphs of text rather than a table. Something has to read the table structure out of the PDF first, which is the step this does.
Several exist, and they work the same way as the online converters: the add-on sends your document to the vendor's servers and writes the result back into your sheet. That also means granting the add-on access to your Drive. The clipboard route here needs neither — no sign-in, no Drive permission, and the PDF never leaves your device.
No. Both fetch from a public web address, and neither reads a PDF — IMPORTDATA expects CSV or TSV and IMPORTHTML expects an HTML table. There is also no live link of any kind here, so a statement that arrives monthly means repeating these steps monthly.
The extraction does, and the copy button uses the same clipboard API. Pasting into the Google Sheets mobile app is the part that varies by device and app version, and we have not verified it. If it will not paste, download the .xlsx and use File then Import in Sheets instead, which works everywhere.
Yes — no account, no page limit and no watermark. There is nothing to meter because the conversion runs on your own machine rather than on a server, which is also why there is no free-tier cap of the kind most converters apply.

Related Tools