The spreadsheet market has three major players: Microsoft Excel (desktop and web), Google Sheets (web-only), and LibreOffice Calc (desktop, open source). All three can open XLSX files. None of them render them identically. A workbook that looks perfect in Excel might have broken charts in Google Sheets, missing conditional formatting in LibreOffice, and crashed macros in both.
This isn't a bug — it's a consequence of three independent implementations of an enormously complex specification. ECMA-376 (the Office Open XML standard that defines XLSX) is over 6,000 pages long, and each application interprets gray areas differently. Add proprietary extensions (Excel's dynamic arrays, Google's QUERY function, LibreOffice's DataPilot) and the compatibility gap widens further.
This guide maps the compatibility landscape: what works everywhere, what breaks where, and how to build spreadsheets that survive cross-platform sharing.
Feature Support Matrix
| Feature | Excel (Desktop) | Excel (Web) | Google Sheets | LibreOffice Calc |
|---|---|---|---|---|
| Max rows | 1,048,576 | 1,048,576 | ~10M cells total | 1,048,576 |
| Max columns | 16,384 | 16,384 | 18,278 | 16,384 |
| Core formulas (SUM, IF, VLOOKUP) | Full | Full | Full | Full |
| XLOOKUP | 365 only | Yes | Yes | No |
| Dynamic arrays (SORT, FILTER, UNIQUE) | 365 only | Yes | Partial (different behavior) | Partial |
| LET, LAMBDA | 365 only | Yes | LAMBDA: yes, LET: yes | No |
| QUERY function | No | No | Yes (Google-only) | No |
| Conditional formatting | Full (icon sets, data bars, formulas) | Partial (no icon sets) | Partial (color scales, formulas) | Good (no icon sets, limited data bars) |
| Charts | Full (40+ types) | Partial (~15 types) | Good (~20 types) | Good (~15 types) |
| Pivot tables | Full (calculated fields, slicers, timelines) | Partial (basic only) | Good (slicers, limited calculated fields) | Basic (DataPilot) |
| Macros (VBA) | Full | No | No (Apps Script instead) | Basic (different language) |
| Data validation | Full | Partial | Good | Good |
| Sparklines | Yes | No | Yes (SPARKLINE function) | No |
| Real-time collaboration | Via OneDrive/SharePoint | Native | Native | No (file-based) |
| Comments/threading | Threaded comments | Basic comments | Comments + suggestions | Notes (no threading) |
| Power Query / data models | Yes | No | No | No |
Formula Compatibility Deep Dive
The core formula set — the functions that most people use 95% of the time — works identically across all three platforms. If your workbook only uses SUM, AVERAGE, COUNT, COUNTIF, SUMIF, SUMIFS, IF, AND, OR, NOT, VLOOKUP, HLOOKUP, INDEX, MATCH, LEFT, RIGHT, MID, LEN, TRIM, CONCATENATE, DATE, TODAY, NOW, YEAR, MONTH, DAY, ROUND, ABS, MAX, MIN, and TEXT — it will work everywhere.
The divergence begins with newer functions:
Modern Functions: The Compatibility Minefield
XLOOKUP: Works in Excel 365, Excel Web, and Google Sheets. Does not work in LibreOffice (returns #NAME?). The safe alternative: INDEX(MATCH()) which works in every spreadsheet application ever made.
Dynamic array functions (SORT, FILTER, UNIQUE, SEQUENCE, RANDARRAY): Excel 365 introduced these with spill behavior — one formula produces multiple output cells. Google Sheets has SORT, FILTER, and UNIQUE but with different behavior (requires ARRAYFORMULA wrapper in some cases). LibreOffice has partial implementations that behave differently. Dynamic arrays are the biggest cross-platform hazard in modern spreadsheets.
LET and LAMBDA: Excel 365 and Google Sheets support both. LibreOffice does not. LET defines named variables within a formula; LAMBDA creates reusable custom functions. Both are powerful but non-portable to LibreOffice.
TEXTJOIN, CONCAT, IFS, SWITCH, MAXIFS, MINIFS: These were added in Excel 2019. Google Sheets supports all of them. LibreOffice supports them from version 6.0-6.2 onward. If your audience might use LibreOffice 5.x or earlier, avoid these.
Google-only functions: QUERY, IMPORTRANGE, IMPORTDATA, IMPORTHTML, IMPORTXML, GOOGLEFINANCE, GOOGLETRANSLATE, SPARKLINE, IMAGE, DETECTLANGUAGE. None of these work in Excel or LibreOffice. They become static values when exporting to XLSX.
Chart Compatibility: The Biggest Visual Gap
Charts are where cross-platform compatibility falls apart most visibly. The same data produces visually different charts in each application because they use different rendering engines, default color palettes, and layout algorithms.
Chart types that work across all three: Bar/column, line, scatter, pie, area. These basic types render in all applications, though colors, fonts, spacing, and legend placement may differ.
Chart types with compatibility issues:
- Treemaps, sunbursts, waterfall, funnel: Excel 2016+ only. Not supported in Google Sheets or LibreOffice. Opening an XLSX with a treemap in Google Sheets produces nothing or a placeholder.
- Combo charts: Excel supports complex combinations (bar + line on different axes). Google Sheets supports basic combos. LibreOffice supports some but may rearrange data series.
- 3D charts: Rendering varies dramatically. Excel's 3D engine produces different perspectives than LibreOffice's. Google Sheets has limited 3D support.
- Stock charts: Excel has dedicated OHLC (Open-High-Low-Close) chart types. Google Sheets has candlestick charts. LibreOffice has basic stock charts but formatting differs.
The safe approach: Stick to 2D bar, line, scatter, and pie charts. Format explicitly (don't rely on defaults). Test in all target applications. If chart fidelity is critical, export the chart as an image and embed that instead of the live chart.
Conditional Formatting Across Platforms
Conditional formatting rules are a frequent source of cross-platform breakage because each application supports a different subset:
- Color scales (2-color, 3-color): Work in all three applications. Colors may shift slightly due to different interpolation algorithms.
- Data bars: Work in Excel (full control over bar direction, color, borders). Limited support in Google Sheets and LibreOffice (basic bars only, no gradient fill).
- Icon sets: Excel only. The traffic lights, arrows, stars, and other icon sets have no equivalent in Google Sheets or LibreOffice. Opening an XLSX with icon set rules in Google Sheets shows no icons — the cells display the raw numbers.
- Formula-based rules: Work in all three applications, but formula compatibility applies. A conditional formatting rule using XLOOKUP will break in LibreOffice.
- Multiple rules per cell: Excel supports unlimited rules with priority ordering. Google Sheets applies all matching rules. LibreOffice supports multiple rules but may apply them in a different priority order.
When creating cross-platform documents, limit conditional formatting to color scales and simple value-based rules. These are the most reliably rendered across applications.
Macros and Automation: Three Incompatible Worlds
Each platform has its own automation language, and none are compatible:
- Excel: VBA (Visual Basic for Applications). Full access to the Windows API (on Windows), COM automation, UserForms, custom ribbon UI. VBA is the most powerful spreadsheet automation language and the least portable. It doesn't run in Excel for Web, Google Sheets, or LibreOffice (though LibreOffice has limited VBA compatibility mode).
- Google Sheets: Apps Script (JavaScript-based). Runs server-side on Google's infrastructure. Access to Google APIs (Gmail, Drive, Calendar), web service calls, custom functions, sidebar UIs, triggers (time-based and event-based). Apps Script is powerful within Google's ecosystem but has no equivalent in Excel or LibreOffice.
- LibreOffice: LibreOffice Basic (similar to VBA but different). Similar syntax to VBA but different object model. Also supports Python, JavaScript, and BeanShell as macro languages. LibreOffice has a VBA compatibility mode that runs some simple VBA macros, but complex VBA (API calls, ActiveX, UserForms) will fail.
The bottom line: if your workbook depends on macros, it's locked to one platform. There's no reliable way to automatically translate VBA to Apps Script or LibreOffice Basic. Cross-platform macro conversion is always a manual rewrite.
Rendering Differences: When the Same File Looks Different
Even when features are "supported," visual rendering differs:
- Font substitution. Excel uses Calibri by default. Google Sheets uses Arial. LibreOffice uses Liberation Sans. If you specify a font that isn't available on the viewer's system, the application substitutes a similar font — and "similar" is subjective. Column widths change because different fonts have different character widths, causing text to overflow or cells to appear too wide.
- Column widths and row heights. Excel and LibreOffice use the same measurement system (points), but rendering engines differ. A column that fits its content perfectly in Excel may truncate in LibreOffice or show extra whitespace in Google Sheets.
- Print layouts. Page breaks, headers/footers, margins, and print areas are specific to the authoring application. A workbook formatted for letter paper in Excel may not paginate correctly in LibreOffice. Google Sheets handles print layout entirely differently (File > Print generates its own layout).
- Theme colors. Excel's theme system (color palettes, font schemes) has no direct equivalent in Google Sheets. Theme-dependent colors may render as the specific RGB value rather than adapting to a different theme.
Building Cross-Platform Spreadsheets: A Practical Strategy
If your spreadsheets need to work across Excel, Google Sheets, and LibreOffice, follow these rules:
- Use the shared formula set. Stick to functions available in all three: SUM, IF, VLOOKUP, INDEX/MATCH, COUNTIF, SUMIF, DATE functions, TEXT functions. Avoid XLOOKUP, dynamic arrays, LET, LAMBDA, QUERY, and IMPORTRANGE.
- Keep charts simple. 2D bar, line, scatter, and pie charts only. No treemaps, waterfalls, or 3D effects. Format explicitly — set colors, labels, and axes rather than relying on defaults.
- Limit conditional formatting. Color scales and simple value-based rules. No icon sets, no complex formula-based rules with platform-specific functions.
- Avoid macros. If automation is needed, use platform-neutral approaches: Python scripts that read/write XLSX (via openpyxl), or SQL queries against a database. Keep the spreadsheet as a presentation layer, not a logic layer.
- Use web-safe fonts. Arial, Times New Roman, Courier New, Verdana. These are available on virtually all systems and won't trigger font substitution.
- Test in all target applications. Before distributing, open the file in Excel, upload to Google Sheets, and open in LibreOffice. Check formulas, charts, formatting, and conditional formatting. This 5-minute test prevents hours of downstream troubleshooting.
- Consider the audience. If 90% of recipients use Excel, optimize for Excel and accept minor issues in other platforms. If the audience is mixed, stick strictly to the shared feature set.
Conversion Paths Between Platforms
When you need to move a spreadsheet between platforms:
- Excel to Google Sheets: Upload the XLSX to Google Drive, open with Google Sheets. Most features survive. VBA macros are stripped. Some charts may render differently. Dynamic arrays may behave differently.
- Google Sheets to Excel: File > Download > XLSX. QUERY and IMPORTRANGE become static values. Apps Script is stripped. Most formatting survives. Charts may look different.
- Excel to LibreOffice: Open the XLSX directly in LibreOffice Calc. Most features survive. VBA macros need compatibility mode (may still fail). Some charts render differently. Dynamic arrays may not work.
- LibreOffice to Excel: Save As XLSX from LibreOffice. Most features survive. LibreOffice-specific functions become errors. Charts may look different. Macros are stripped.
For clean cross-platform transfers, consider exporting to a neutral format: XLSX to CSV for data only, XLSX to PDF for visual preservation, or XLSX to JSON for structured data interchange.
Full spreadsheet compatibility across Excel, Google Sheets, and LibreOffice is a myth. The three applications share a common subset of features — core formulas, basic formatting, simple charts — but diverge on everything advanced: dynamic arrays, macros, complex charts, icon sets, and pivot table features. Building cross-platform documents means voluntarily limiting yourself to the shared subset, which is still powerful enough for most business and data work.
The pragmatic approach: know your audience's primary application, optimize for that, and test in the others. If cross-platform fidelity is more important than feature richness, consider whether a spreadsheet is the right deliverable at all. A PDF preserves visual appearance perfectly. A CSV preserves data perfectly. A web dashboard (Streamlit, Retool, or even a static HTML table) provides interactivity without platform dependency. The spreadsheet is one option among many, and sometimes it's not the best one.