XLS 和 XLSX 格式(Excel)
XLS/XLSX 是 Microsoft Excel 的工作簿格式。XLS 是早期的二进制 BIFF/OLE 复合文件(Excel 97-2003),XLSX 是 2007 年起的 Office Open XML(OOXML)基于 ZIP 的开放标准(ISO/IEC 29500)。另外,XLSM 是包含宏的 XLSX 格式,XLSB 是 Excel 二进制工作簿格式。
简单来说,XLS 兼容老旧系统,XLSX 体积更小、可扩展性更好,XLSM 支持宏功能,XLSB 加载速度更快。
格式简介
- XLS:二进制 BIFF 记录存储于 OLE 复合文档,扩展名
.xls,MIMEapplication/vnd.ms-excel - XLSX:OOXML 标准,基于 ZIP 打包 XML 与资源,扩展名
.xlsx,MIMEapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet - XLSM:包含宏的 XLSX 格式,扩展名
.xlsm,MIMEapplication/vnd.ms-excel.sheet.macroEnabled.12 - XLSB:Excel 二进制工作簿格式,基于 BIFF12 二进制格式,扩展名
.xlsb,MIMEapplication/vnd.ms-excel.sheet.binary.macroEnabled.12
技术特点
XLS(BIFF/OLE)
- OLE 复合文档,包含多流(Workbook、SummaryInfo 等)
- BIFF 记录顺序存储单元格、格式、公式
- 兼容性好,结构封闭、扩展性弱
XLSX(OOXML/ZIP)
- 基于 OPC(Open Packaging Convention),ZIP 打包 XML
- 清晰的部件:
xl/workbook.xml、xl/worksheets/*.xml、xl/sharedStrings.xml、xl/styles.xml - 体积更小,支持共享字符串、样式分离,易于解析与扩展
XLSM(宏启用工作簿)
- 与 XLSX 结构相同,但包含
xl/vbaProject.bin宏项目文件 - 支持 VBA 宏和 ActiveX 控件
- 安全考虑:打开时可能提示启用宏
XLSB(二进制工作簿)
- 基于 BIFF12 二进制格式,而非 XML
- 使用 ZIP 打包二进制流文件(
.bin) - 加载和保存速度更快,文件体积通常更小
- 适合处理大量数据的工作簿
文件结构
XLS(简化示例)
[OLE Header]
├── Workbook # BIFF 记录流(单元格/公式/格式)
├── SummaryInformation
└── DocumentSummaryInformation