What goes wrong with a plain paste
Select a table in ChatGPT, copy, click into Google Sheets, paste: each row lands in a single cell, pipes included, and the dashes row sits under the header like a line of rubble. ChatGPT writes tables as markdown text, and Sheets, given text, puts one line in one cell. The copy button under the answer sometimes pastes as a grid, because it also places a rich version on the clipboard, but the cells arrive with stray spaces and non-breaking spaces attached, which is why the numbers then refuse to add up.
Sheets has two built-in repairs. Data → Split text to columns with a custom | separator breaks each row apart, after which you trim the spaces, delete the empty first and last columns the outer pipes created, remove the dashes row and convert the number-shaped text. Or you leave the pasted text in column A and write =SPLIT(A2, "|") beside it, which gives you a second copy of the table built from formulas. Both work; both take longer than the table did to generate. This page does the splitting and cleaning on paste and gives Sheets the table in the form it reads best.
Copy for Sheets: how the paste works
When you click Copy for Sheets / Excel, the clipboard receives two versions of the table at once. The first is an HTML table, which Sheets reads directly into a block of cells — the same mechanism that lets you copy a table from Wikipedia into a sheet. The second is the tab-separated text, which any destination that cannot read HTML falls back to. In Sheets, the HTML version wins: click a cell, paste, and the header is on that row with the data below it. Sheets then runs its own recognition over the cell text, so 12,400 becomes a number, 8.5% becomes a percentage and 2024-03-01 becomes a date in your sheet’s locale.
Because the cells were cleaned before the copy — hidden characters removed, markdown bold stripped, <br> turned into real line breaks — that recognition works the first time. The usual culprit when it does not is a non-breaking space stuck to a number, and that is gone before the clipboard sees it.
Download .xlsx: several tables, several tabs
Sheets opens Excel workbooks natively, which makes the .xlsx route the best way to move more than one table. Paste the whole ChatGPT answer; every table in it is detected and listed above the preview. Click Download .xlsx and you get one workbook with one sheet per table. In Google Sheets, File → Import → Upload, pick the file, and choose whether to create a new spreadsheet, insert new sheets into the current one, or replace the current sheet. Each table arrives as its own tab, with the header row bold and frozen, numbers typed, and currency and percentage formats already applied. The workbook is built in your browser; the only thing uploaded is the file you choose to import.
Locale, numbers and dates
Google Sheets reads numbers according to the spreadsheet’s locale, set under File → Settings. In a United States or United Kingdom sheet, 12,400 is twelve thousand four hundred; in a German or French one, the comma is a decimal point and the same text may be read as 12.4 or left as text. The tables ChatGPT writes almost always use the 1,234.56 convention, so if your sheet is set to a comma decimal, the .xlsx route is safer: the tool types the numbers itself from that convention and Sheets does not have to guess.
Dates follow the same logic. 2024-03-01 is unambiguous and recognised everywhere; 03/01/2024 is March in one locale and January in another. The .xlsx download keeps dates as text for exactly that reason and lets Sheets convert them once you have confirmed the format with Format → Number → Date. Percentages are stored as fractions (0.085) and formatted as percentages, which is how Sheets expects them; currency keeps its symbol as a format rather than as text, so the column sums.
Where this fits with Gemini and Sheets’ own AI
Gemini offers an “Export to Sheets” button under a table it generates, and Gemini inside Google Sheets can build a table in place. ChatGPT has no equivalent, and neither do Claude, Copilot or Perplexity; this page is the missing button for all of them. It is also the route for a table that already exists as text somewhere — a CSV attachment, a tab-separated log, a table on a web page — when what you want is a clean grid in a sheet rather than a formula exercise.
Related tools
Private and free
Parsing, copying and building the .xlsx all happen in your browser with client-side JavaScript. Your table is never sent to a server, stored or logged. No account, no limits, no watermark.