Microsoft Excel Spreadsheet (Open XML)
XLSX is Microsoft Excel's default spreadsheet format since Office 2007, storing worksheets as compressed XML inside a ZIP container (SpreadsheetML, ISO/IEC 29500). Convert XLSX to CSV or PDF using LibreOffice headless mode, or process programmatically with openpyxl or SheetJS.
Office Open XML spreadsheets require a calculation engine for formulas and pivot tables not available in browser WASM.
Common questions
How do I convert XLSX to CSV without Excel?
Install LibreOffice and run: libreoffice --headless --convert-to csv input.xlsx. This exports the active sheet as comma-delimited text with UTF-8 encoding. For Python scripts, use openpyxl or the pandas library with pd.read_excel() and df.to_csv().
Why does my XLSX show different numbers in LibreOffice vs Excel?
Number format strings in xl/styles.xml use locale-specific codes that LibreOffice may interpret differently. Date serial numbers can also differ — Excel 1900 date system has a known leap year bug for February 29, 1900 (which did not exist). Verify with the raw cell value in the XML.
Can I read XLSX files with JavaScript in the browser?
SheetJS (xlsx) parses XLSX files entirely in the browser without a server. Load the file via drag-and-drop or file input, call XLSX.read(data, {type: 'array'}), and access sheet data as JSON objects.
What is the maximum number of rows in an XLSX file?
Each worksheet supports 1,048,576 rows and 16,384 columns (column XFD). The legacy XLS format was limited to 65,536 rows and 256 columns. For datasets exceeding XLSX limits, use a database or Parquet files.
What makes .XLSX special
What is an XLSX file?
XLSX is the default spreadsheet format for Microsoft Excel since Office 2007. Like DOCX, it uses the Office Open XML (OOXML) standard, storing worksheets and data as compressed XML files inside a ZIP container. It supports up to 1 million rows per sheet.
Continue reading — full technical deep dive
How to open XLSX files
- Microsoft Excel (Windows, macOS, Web) — Full editing
- Google Sheets (Web) — Free, online editing
- LibreOffice Calc (Windows, macOS, Linux) — Free
- Apple Numbers (macOS, iOS) — Free
- OnlyOffice (Windows, macOS, Linux) — Free
Technical specifications
| Property | Value |
|---|---|
| Format | Office Open XML (OOXML) |
| Container | ZIP archive |
| Max Rows | 1,048,576 |
| Max Columns | 16,384 (XFD) |
| Standard | ISO/IEC 29500 |
| Macros | .xlsm extension for macro-enabled |
Programs that open XLSX files
- Microsoft Excel — Native editor
- Google Sheets — Free online editing
- LibreOffice Calc — Free office suite
- WPS Spreadsheets — Free alternative
- OnlyOffice — Open-source office
Common use cases
- Business analytics: Data analysis and reporting
- Financial modeling: Budgets, forecasts, P&L
- Data management: Inventory, contacts, tracking
- Scientific data: Research data organization
.XLSX compared to alternatives
| Formats | Criteria | Winner |
|---|---|---|
| .XLSX vs .XLS | Row/column limits XLSX supports 1,048,576 rows and 16,384 columns per sheet. XLS (BIFF8) is limited to 65,536 rows and 256 columns. XLSX is the only viable format for modern data volumes. | XLSX wins |
| .XLSX vs .CSV | Data fidelity XLSX preserves data types, formulas, formatting, charts, multiple sheets, and named ranges. CSV stores only raw text values with no type information — numbers, dates, and text are all treated as strings, and multi-sheet workbooks are lost. | XLSX wins |
| .XLSX vs .ODS | Application support XLSX has native support in Microsoft Excel, Google Sheets, Apple Numbers, and all major business tools. ODS has primary support in LibreOffice and limited compatibility in Excel (formula differences, conditional formatting loss). | XLSX wins |
| .XLSX vs .GOOGLE SHEETS | Offline editing XLSX is a local file format that works offline in any spreadsheet application. Google Sheets requires a browser and internet connection for full functionality (offline mode has limited features). | XLSX wins |
Technical reference
- MIME Type
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet- Magic Bytes
50 4B 03 04ZIP archive containing xl/ directory with worksheets.- Developer
- Microsoft / Ecma International
- Year Introduced
- 2007
- Open Standard
- Yes
ZIP archive containing xl/ directory with worksheets.
Binary Structure
An XLSX file is a ZIP archive with the standard PK signature (50 4B 03 04). The root [Content_Types].xml declares MIME types for all parts. The _rels/.rels file maps top-level relationships. The workbook definition lives in xl/workbook.xml, listing all sheet names and their relationship IDs. Individual worksheets are stored in xl/worksheets/sheet1.xml, sheet2.xml, etc. — each containing a <sheetData> element with rows (<row>) and cells (<c>) using column references like A1, B2. String values are not stored inline by default; cells reference indices into xl/sharedStrings.xml, which deduplicates repeated text values across the workbook. Styles (fonts, fills, borders, number formats) are defined in xl/styles.xml and referenced by zero-based index in each cell's s attribute. Chart definitions live in xl/charts/, pivot table caches in xl/pivotCache/, and embedded images in xl/media/.
| Offset | Length | Field | Example | Description |
|---|---|---|---|---|
0x00 | 4 bytes | ZIP Signature | 50 4B 03 04 (PK) | Standard ZIP local file header. Identical to DOCX and PPTX — differentiated by internal [Content_Types].xml declaring SpreadsheetML types. |
0x04 | 2 bytes | Version needed | 14 00 (v2.0) | Minimum ZIP version required for extraction. |
0x1A | 2 bytes | Filename length | 13 00 | Length of the first archived filename, typically [Content_Types].xml. |
Attack Vectors
- Macro-enabled XLSM files can execute VBA code that downloads and runs malicious payloads; renaming .xlsm to .xlsx does not remove the macro but may bypass extension-based filters
- External data connections defined in xl/connections.xml can fetch data from attacker-controlled URLs when the workbook is opened and connections are refreshed
- DDE (Dynamic Data Exchange) fields in cells can execute system commands via =cmd|'/C calc.exe'!A0 syntax in older Office versions without Protected View
- Embedded OLE objects and ActiveX controls can execute arbitrary code when macros are enabled
Mitigation: FileDex does not execute XLSX files. The format page is reference-only. Open untrusted XLSX files in Protected View (Office) or upload to Google Sheets, which strips all macros, DDE fields, and external connections.