.XLSX Microsoft Excel Spreadsheet (Open XML)
.xlsx

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.

Document structure
Header version
Body content tree
Index references
SpreadsheetOOXMLISO/IEC 295002007ZIP Container
By FileDex
Not convertible

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

.XLSX compared to alternative formats
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 04 ZIP archive containing xl/ directory with worksheets.
Developer
Microsoft / Ecma International
Year Introduced
2007
Open Standard
Yes
00000000504B0304 PK..

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/.

OffsetLengthFieldExampleDescription
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.
2006ECMA-376 (Office Open XML) approved by Ecma International, defining SpreadsheetML2007Office 2007 launches with XLSX as the default Excel format, replacing binary .xls2008ISO/IEC 29500 approved; XLSX gains international standardization2010Excel 2010 adds Power Pivot (xDAX) and Sparklines, extending SpreadsheetML capabilities2013Power Query and data model integration added, enabling external data connections in XLSX workbooks2018Dynamic arrays (SORT, FILTER, UNIQUE) introduced in Office 365, changing formula spill behavior in SpreadsheetML
Convert XLSX to CSV via LibreOffice headless other
libreoffice --headless --convert-to csv input.xlsx

--headless runs LibreOffice without a GUI for server-side use. Exports the first sheet to CSV with comma delimiter and UTF-8 encoding. Multi-sheet workbooks export only the active sheet.

Convert XLSX to PDF preserving print layout other
libreoffice --headless --convert-to pdf input.xlsx

Renders the spreadsheet to PDF with page breaks, headers/footers, and conditional formatting preserved. Output reflects the Print Preview layout.

Extract sheet data with Python openpyxl other
python3 -c "from openpyxl import load_workbook; wb = load_workbook('input.xlsx'); ws = wb.active; [print(','.join(str(c.value or '') for c in row)) for row in ws.iter_rows()]"

Reads the active sheet from an XLSX file and prints each row as comma-separated values. openpyxl parses the SpreadsheetML XML directly without requiring Excel.

List all sheet names in an XLSX file other
unzip -p input.xlsx xl/workbook.xml | xmllint --xpath '//*[local-name()="sheet"]/@name' -

Extracts the workbook.xml from the ZIP archive and uses XPath to list all sheet name attributes. Useful for identifying sheet structure before programmatic processing.

XLSX CSV export lossy CSV is the universal data interchange format readable by every programming language, database, and spreadsheet tool. Exporting XLSX to CSV strips formatting, formulas, and multi-sheet structure to produce plain delimited text for data processing pipelines.
XLSX PDF render near-lossless PDF output preserves the exact print layout — column widths, headers, footers, and conditional formatting — ensuring the spreadsheet appears identical on any device. Standard workflow for sharing financial reports and dashboards as read-only documents.
XLSX ODS export near-lossless ODS (Open Document Spreadsheet, ISO 26300) is the native format for LibreOffice Calc and the required format for government document submissions in several EU countries. Conversion preserves most formulas, styles, and chart definitions.
XLSX JSON export lossy JSON export enables direct consumption of spreadsheet data by web APIs, frontend applications, and data analysis scripts. Each row becomes an object with column headers as keys.
MEDIUM

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.

Primary XLSX editor with full formula, chart, and pivot table support
Google Sheets service
Free web-based spreadsheet with XLSX import/export
Free spreadsheet application with strong XLSX compatibility
openpyxl library
Python library for reading and writing XLSX files programmatically
SheetJS (xlsx) library
Browser and Node.js parser/writer for XLSX and other spreadsheet formats
Apache POI library
Java API for Microsoft Office formats including XLSX (XSSF)