XLSX is the default spreadsheet file format of Microsoft Excel since Excel 2007 and a widely supported interchange format among office applications. An XLSX file is a ZIP package of XML documents that store worksheets, cell values, formulas, formatting and charts according to the Office Open XML specification.
The format is standardized as ECMA-376 and ISO/IEC 29500, where its spreadsheet vocabulary is called SpreadsheetML. It belongs to the same family as DOCX for text documents and PPTX for presentations, and it competes with the ODF spreadsheet format used natively by LibreOffice.
How an XLSX file is structured
An XLSX file is a container rather than a single document. Renaming it to a ZIP archive and opening it reveals a folder tree of XML parts linked together by relationship files, an arrangement defined by the Open Packaging Conventions.
The separation into parts keeps files compact and lets software read only what it needs. Repeated text is stored once in a shared strings table, and cells refer to it by index, which saves considerable space in sheets with many identical labels.
| Part | Location in the package | Content |
|---|---|---|
| Content types | [Content_Types].xml | Media type of every part |
| Workbook | xl/workbook.xml | Sheet list, defined names, calculation settings |
| Worksheets | xl/worksheets/sheet1.xml and so on | Cell values, formulas, merged ranges |
| Shared strings | xl/sharedStrings.xml | Deduplicated text used by cells |
| Styles | xl/styles.xml | Number formats, fonts, fills, borders |
| Relationships | _rels and xl/_rels folders | Links between parts |
Formulas are stored as text, such as SUM(B2:B10), together with a cached result. Applications that do not calculate formulas can still display the last computed values, which matters when other programs read the file.
Capacity limits and data representation
The XLSX format raised the grid size dramatically compared with the older binary XLS format, which made it practical for larger data sets. Many limits are defined by the application rather than the file format, but Excel’s limits act as the practical ceiling for compatibility.
| Property | Limit | Practical note |
|---|---|---|
| Rows per worksheet | 1,048,576 | Larger data needs a database or splitting |
| Columns per worksheet | 16,384 (A to XFD) | Wide tables are better transposed |
| Characters per cell | 32,767 | Only about 1,024 display in the cell itself |
| Numeric precision | 15 significant digits | Long identifiers lose trailing digits |
| Formula length | 8,192 characters | Very long formulas hurt readability first |
Dates are not stored as dates. They are serial numbers counted from a base date, with times as fractions of a day, and the cell style decides how they appear. The default 1900 date system also treats 1900 as a leap year for historical compatibility, which shifts calculations for dates before March 1900 by one day.
XLSX compared with other spreadsheet formats
XLSX is one of several spreadsheet formats, each with a different balance of features, size and openness. The right choice depends on whether the file carries macros, how large it is and which applications must read it.
| Format | Encoding | Macros | Typical use |
|---|---|---|---|
| XLSX | Zipped XML | Not allowed | Default exchange format |
| XLSM | Zipped XML | Allowed (VBA) | Workbooks with automation |
| XLSB | Zipped binary | Allowed | Very large workbooks, faster loading |
| XLS | Binary BIFF8 | Allowed | Legacy files, 65,536 rows maximum |
| ODS | Zipped XML (ODF) | Allowed | LibreOffice and open-standard mandates |
| CSV | Plain text | Not applicable | Raw data exchange, one sheet, no formatting |
The macro restriction is a deliberate security feature: a file with the .xlsx extension cannot contain VBA code, so recipients can open it with less risk. Saving a workbook with macros forces the XLSM extension, which signals that executable content is present.
Working with XLSX outside spreadsheet applications
Because XLSX is an open, documented format, it can be generated and read without any office application installed. Reporting systems, data pipelines and web applications routinely produce XLSX exports with programming libraries in Python, Java, JavaScript and other languages.
This independence comes with important caveats. Most libraries read cached formula results but do not recalculate them, and many skip charts, pivot tables or conditional formats they do not understand. For predictable results, generated files should be tested by opening them in the applications that recipients actually use.
The standard also has two conformance classes, Transitional and Strict. Transitional keeps legacy features for compatibility and is what applications save by default, while Strict removes them; some older tools cannot open Strict files at all.
Size and performance deserve attention in automated exports. Loading a whole workbook into memory can require many times the file size in RAM, because compressed XML expands considerably when parsed. For exports with hundreds of thousands of rows, streaming writers and readers that process one row at a time keep memory use stable and avoid timeouts on servers.
Common pitfalls with XLSX files
Most XLSX problems arise from automatic type conversion and from treating a spreadsheet as a database. The following issues account for a large share of data errors in practice.
- Automatic conversion turns gene names, product codes or fractions into dates when data is typed or imported without text formatting.
- Leading zeros disappear from postal codes and account numbers stored as numbers.
- Long numeric identifiers beyond 15 digits are silently rounded, so card-like or tracking numbers must be stored as text.
- Hidden sheets, rows and comments can expose confidential data when a file is shared externally.
- External links to other workbooks break when files are moved and trigger update prompts.
- Renaming the extension does not convert a file; an XLSM renamed to XLSX is rejected or opened with errors because the package content no longer matches the declared type.
Explained without jargon
An XLSX file is the usual way to save a spreadsheet: the grid of rows, columns, numbers and formulas that people use for budgets, lists and reports. When someone emails an Excel file today, it is almost always an XLSX file.
Inside, the file is like a neatly labeled folder packed into one envelope. One sheet of paper lists the tabs, another holds the numbers, another the colors and fonts. Because the labels follow a public standard, many different programs can open the envelope and understand what is inside.
A typical use case
The finance team of a mid-sized manufacturer receives monthly sales figures from an internal order system as an automatically generated XLSX export. Each file contains about 120,000 rows, one worksheet per region and a summary sheet with formulas.
During the first months, analysts notice that customer numbers starting with zeros arrive shortened and that 18-digit order references end in zeros. The developers change the export so that both columns are written as text cells rather than numbers and confirm that the summary formulas recalculate correctly in the office suite. The next export opens with every identifier intact, and reconciliation with the accounting system no longer requires manual corrections.