XLSX vs Google Sheets: What the File Format Actually Changes
- An
.xlsxis a ZIP archive of XML documents on a disk. Rename one to.zipand look inside — the format is open, standardised as ECMA-376 and ISO/IEC 29500. - A Google Sheet is not a file. It is structured data in Google's storage, addressed by a URL. The
.xlsxyou download is manufactured at that moment and is a snapshot, not the document. - That is the whole difference, and everything else follows from it: one thing can be copied, hashed and attached to a contract; the other cannot fork, which is what makes live co-editing possible.
- "Sharing a spreadsheet" means three different things. An emailed attachment forks immediately. An
.xlsxin OneDrive or SharePoint genuinely co-authors. A Google Sheet has nothing to fork. The deciding factor in the first two is where the file lives, not its format. - Every conversion is a translation between two different data models, so losses compound. Convert once, deliberately, then commit.
The short answer
An .xlsx and a Google Sheet are not two formats for the same thing — they are two different kinds of object. The .xlsx is a self-contained file you possess: a zipped bundle of XML that any tool can read, copy, email, checksum or archive. A Google Sheet is a live record on a server that you reach through a URL, and downloading it produces an .xlsx that did not exist a second earlier. Once you see them as a file versus a service, the practical consequences stop being surprising: files fork and can be signed, services stay singular and can be co-edited, and converting between them costs something every time because each side holds concepts the other has no home for.
This article is about the artefact. If you are choosing which product a team should use, Excel vs Google Sheets covers pricing, scale limits, automation and AI features, and is the better starting point.
What is actually inside an .xlsx
Try this now, because it takes fifteen seconds and permanently changes how you think about spreadsheets. Take any .xlsx, make a copy, rename the copy's extension to .zip, and open it.
It is a folder. Inside:
| Part | What it holds |
|---|---|
[Content_Types].xml | A manifest declaring what type each other part is |
xl/workbook.xml | The list of worksheets, defined names, and workbook-level settings |
xl/worksheets/sheet1.xml | One file per worksheet: the actual cells, their formulas and their values |
xl/sharedStrings.xml | Every distinct piece of text in the workbook, stored once, referenced by index |
xl/styles.xml | Fonts, fills, borders, number formats — all formatting, separated from content |
xl/calcChain.xml | The order Excel last calculated the formulas in |
_rels/ folders | How the parts reference each other |
Open a worksheet XML and a cell looks roughly like this:
<c r="B7"><f>SUM(B2:B6)</f><v>55</v></c>
Read that carefully, because it explains a behaviour that confuses people. Cell B7 stores two things: the formula as text, and 55 as the last value it computed. The file caches results. That is why a tool that cannot evaluate formulas — a Python script, a preview pane, an import routine — can still show you numbers, and why those numbers are whatever they were when the file was last saved by something that did calculate. A stale cached value in a file nobody has recalculated is a real failure mode, not a theoretical one.
The sharedStrings design is worth noticing too. Text is stored once and referenced, so a column of 100,000 rows containing one of five category names stores five strings and 100,000 short references. It is why .xlsx files are often far smaller than people expect, and why a workbook of unique text is far larger than a workbook of repeated text at the same row count.
The other Excel extensions, briefly
| Extension | What it is | Worth knowing |
|---|---|---|
.xlsx | Office Open XML, zipped XML, since Excel 2007 | The default. No macros allowed, which is a security feature, not a limitation |
.xlsm | The same, plus a VBA macro project | The only way to ship macros in the modern format |
.xlsb | The same structure, saved as binary instead of XML | Noticeably smaller and faster to open on large workbooks. Less readable by non-Excel tools |
.xls | The pre-2007 binary format (BIFF) | Caps at 65,536 rows and 256 columns, and drops anything beyond that silently |
.csv | Plain text, one line per row | No formulas, no formatting, no multiple sheets, no cell types. Universally readable and lossy by design |
.ods | OpenDocument Spreadsheet, the ISO standard used by LibreOffice | Also zipped XML. Google Sheets exports it; round trips to Excel lose more than .xlsx does |
That .xls row is not a historical footnote. In 2020, Public Health England lost 15,841 positive COVID-19 test results because results were collated into templates saved in .xls, and rows past the 65,536 ceiling were dropped without a warning — a case covered in the costliest spreadsheet errors ever made. Truncation is the most dangerous kind of failure, because the output still looks complete.
A Google Sheet has no file
This is the part that makes the comparison click, and most explanations skip it.
When you create a Google Sheet, no spreadsheet file is written anywhere you can reach. The content lives as structured data in Google's storage, and what you are given is a URL. There is no .gsheet document containing your data — the thing that appears in Google Drive is a pointer to a record held server-side.
So when you choose File → Download → Microsoft Excel (.xlsx), Google does not hand you a stored file. It builds one, right then, by translating its internal representation into the Office Open XML structure described above. Download the same Sheet twice and you get two separate files, each a snapshot of a different instant, neither of which is the document.
Three consequences follow directly, and they are the answers to most questions in this area:
- A Sheet cannot fork. There is one authoritative copy, so there is never a "which version is current" question. An
.xlsxforks the moment it is copied, and email makes copying the default action. - A Sheet has no fixed identity. You cannot hash it, sign it, or attach it to anything — only a snapshot of it. If someone edits the Sheet after you cite it, your citation now points at different content, silently. For an audit pack or a contract schedule, that is disqualifying.
- A Sheet needs the network and the service. The
.xlsxon your disk will open in fifteen years in any tool that can read a ZIP, because the format is a published standard. That is a real durability difference, whatever you think of either company's longevity.
Three things people mean by "sharing a spreadsheet"
The question "how does real-time collaboration work in a cloud tool versus a shared Excel file?" has a confusing answer because "a shared Excel file" describes two completely different situations. There are three cases, not two.
| Emailed .xlsx | .xlsx in OneDrive / SharePoint | Google Sheet | |
|---|---|---|---|
| How many copies exist | One per recipient, immediately | One, opened by everyone | One, by construction |
| Simultaneous editing | No. Everyone edits their own copy | Yes — genuine co-authoring | Yes |
| Seeing others type | No | Yes, with presence and selection indicators | Yes |
| Conflict resolution | Manual. You reconcile by hand, later | Handled by the service as edits arrive | Handled by the service as edits arrive |
| History | Whatever the filenames tell you | Version history in OneDrive / SharePoint | Continuous edit log, attributed per change |
| Works offline | Completely | Yes, and syncs on reconnect | Only with offline mode enabled beforehand |
| Fails by | Silent divergence | Feature-related lock-outs | Needing the service to be reachable |
The middle column is the one people underestimate, usually because they last tried it years ago. Excel co-authoring is real: per Microsoft's own documentation, it requires the workbook to be stored in OneDrive, OneDrive for Business or SharePoint Online, in .xlsx, .xlsm or .xlsb format, with AutoSave keeping changes flowing. Note two exclusions in that list: the Strict Open XML variant is not supported, and SharePoint sites hosted on-premises rather than by Microsoft do not support co-authoring at all.
The thing to take from that table: what decides whether two people can edit a spreadsheet at once is where it lives, not what format it is in. The same .xlsx is a collaboration disaster as an attachment and a genuine co-authoring document in OneDrive. Most "Excel can't collaborate" complaints are really "we email attachments" complaints, and that is a workflow choice rather than a format limitation.
Where the file model still gives ground is the shape of the history. OneDrive versioning keeps a series of saved states, so you can go back to 4:15pm. A Sheet's history is a continuous stream of individual attributed edits, so you can ask who changed this cell and when. For anything where accountability per value matters — the exact question behind pay-review controls — that is a materially different capability, not a nicer interface.
Why each round trip costs something
Converting is not copying. Excel and Google Sheets hold different sets of concepts, so a conversion is a translation, and anything with no equivalent on the far side gets approximated or dropped. Nothing restores what a previous translation removed, which is why losses compound rather than repeat.
| Travels cleanly | Degrades | Does not survive |
|---|---|---|
| Cell values and data types | Custom number formats | VBA macros |
| Standard formulas | Complex conditional formatting | Power Query steps |
| Ordinary pivot tables | Slicers and timelines | Power Pivot data models |
| Standard charts | Chart styling and some chart types | Apps Script (going the other way) |
| Data validation | Embedded objects and shapes | QUERY, IMPORTRANGE, GOOGLEFINANCE (going the other way) |
| Named ranges | Comments and threaded notes | Form links, protected-range rules |
The rule of thumb that predicts almost all of this: anything typed into a cell probably survives, anything configured in a dialog probably does not, and anything written in code definitely does not.
Two asymmetries are worth knowing. Excel to Sheets loses more, because Excel simply has more machinery that Sheets has no home for. And in the other direction the casualties are specifically the Google-only functions — every QUERY, IMPORTRANGE, GOOGLEFINANCE and ARRAYFORMULA arrives in Excel as an error with no automatic substitute. A Sheet built without those exports to .xlsx with mostly cosmetic differences.
The practical damage is rarely the first conversion. It is the file that bounces — exported to Excel for a board pack, re-uploaded for the team to update, exported again next quarter. Each pass sheds a little, nobody is watching, and the loss surfaces as a wrong number rather than as an error. Convert once, deliberately, then commit to a side.
Doing each conversion with the least loss
Excel to Google Sheets. Upload to Drive, then File → Save as Google Sheets rather than working on the uploaded file in Office compatibility mode, which is a half-state that pleases nobody. Before you do: note every macro and Power Query step somewhere outside the file, because they will be gone and you will not be told. After: check any date column, spot-check totals against the original, and look specifically at conditional formatting rules.
Google Sheets to Excel. File → Download → Microsoft Excel (.xlsx). Before you do: search the Sheet for IMPORTRANGE, QUERY, GOOGLEFINANCE and IMPORTHTML, and convert those results to static values if the Excel version needs to work. After: check for #NAME? errors, which is how Excel reports a function it has never heard of.
When you only need the numbers. Export CSV and accept the loss on purpose. A deliberate, complete loss of formatting and formulas is far easier to reason about than a partial, silent one — and if something downstream only wants values, the fidelity question disappears entirely.
Rebuilding a formula that did not survive the conversion?
Describe what the original did in plain English and XLsheetAI writes the Excel equivalent, explains each argument, and lets you practise it — including the Google-only functions like QUERY and ARRAYFORMULA that arrive as errors.
Different ceilings, counted differently
The limits are not comparable units, which causes a specific and avoidable surprise.
Excel gives every worksheet 1,048,576 rows and 16,384 columns, fixed since the .xlsx format arrived. Google caps a whole spreadsheet at 10 million cells or 18,278 columns.
Per sheet versus across the file is the trap. A 20-column table in Sheets runs out at roughly 500,000 rows. A 40-column export dies around 250,000. Teams who read "10 million" as "10 million rows" discover this on their first real dataset, usually mid-migration. And both slow down long before their ceilings — Sheets in a browser, where you cannot add hardware, and Excel on a machine you can upgrade.
Choosing which one is the artefact of record
This is the decision that actually matters, and it is not about which product is better. It is about what the thing has to be.
The .xlsx should be authoritative when something other than a person consumes it — an upload endpoint, an import routine, a payroll system. When the artefact itself must be fixed, hashable and archivable: regulatory filings, audit packs, contract schedules. When it depends on VBA, Power Query or Power Pivot. When it has to work with no network. Or when you need to hand someone a spreadsheet that will still open in a decade.
The Sheet should be authoritative when several people update it routinely, when you need per-cell attribution of who changed what, when the readers are outside your organisation and you do not want to manage attachments, or when most editing happens on phones.
The failure to avoid is treating both as authoritative at once. A Sheet the team edits and an .xlsx that finance updates guarantees divergence, and the divergence is discovered late and by accident. Pick one as the source of truth and make the other an explicitly disposable export — regenerated, never edited, ideally with a generated-on date written into cell A1 so nobody mistakes a stale snapshot for the live record.
For the product-level decision, see Excel vs Google Sheets. If a converted file has left you with broken formulas or misread dates, cleaning messy data covers fixing a column at a time, and dynamic arrays covers the modern Excel functions that replace many Google-only ones.
FAQ
What is the difference between an XLSX file and a Google Sheet?
They are not the same kind of thing. An .xlsx is a file: a ZIP archive of XML documents sitting on a disk, which you can copy, email, hash or attach to a contract. A Google Sheet is not a file at all. It is structured data held in Google's storage and addressed by a URL, and the .xlsx you download from it is generated at the moment you ask for it. That is why you can have two different .xlsx files of the same workbook but only ever one live Google Sheet.
What is actually inside an .xlsx file?
A ZIP archive of XML files. Rename any .xlsx to .zip and open it, and you will find xl/workbook.xml listing the sheets, one XML file per worksheet under xl/worksheets, xl/sharedStrings.xml holding every distinct piece of text once, and xl/styles.xml holding the formatting. The format is Office Open XML, standardised as ECMA-376 and ISO/IEC 29500. Nothing is hidden or proprietary about the container itself.
How does real-time collaboration differ from sharing an Excel file?
There are three distinct situations people all call sharing. An emailed .xlsx attachment gives every recipient their own separate copy, so the versions fork immediately and merging them is manual. An .xlsx stored in OneDrive or SharePoint supports genuine co-authoring, because everyone is opening one file through a service that reconciles edits. A Google Sheet has no file to fork, so every edit is applied to the single authoritative copy as it is typed. The middle case is the one people underestimate, and the difference between it and the first case is where the file lives, not what format it is.
Does converting XLSX to Google Sheets lose data?
Values and ordinary formulas survive. What does not survive is anything that was not typed into a cell: VBA macros are dropped, Power Query steps and Power Pivot data models do not come across, and slicers, custom number formats and complex conditional formatting often degrade. The useful rule of thumb is that anything typed into a cell probably survives, anything configured in a dialog probably does not, and anything written in code definitely does not.
Why does a spreadsheet get worse every time it is converted?
Because each conversion is a translation between two different data models, not a copy. Excel and Google Sheets do not hold the same set of concepts, so anything with no equivalent on the other side is approximated or dropped, and a translation never restores what a previous one removed. Two round trips therefore do not return the original workbook, and the losses are usually cosmetic at first and structural by the third pass. Convert once, deliberately, then commit to whichever side you landed on.
When do you actually need an .xlsx rather than a Google Sheet?
Whenever something other than a person has to consume it, or when the artefact itself matters rather than its current contents. Systems that ingest uploads want a file. Regulatory filings, audit packs and contract schedules need a fixed artefact that can be hashed, signed and archived unchanged. Anything depending on VBA, Power Query or Power Pivot needs Excel. And anything that has to work with no network needs a local file.
XLsheetAI