Emits Excel 2003 SpreadsheetML - an XML dialect Excel and LibreOffice open
natively - written to a .xls file, rather than a real OOXML .xlsx, which
would mean adding a dependency such as exceljs or hand-rolling a ZIP writer.
Known consequence: because the content is SpreadsheetML and the extension is
.xls, Excel 2016 and later show "The file format and extension don't
match" on open. The file is intact and opens correctly once confirmed. The
format is named excel rather than xlsx so the API does not claim
otherwise.
Export data as an Excel-compatible spreadsheet.
Emits Excel 2003 SpreadsheetML - an XML dialect Excel and LibreOffice open natively - written to a
.xlsfile, rather than a real OOXML.xlsx, which would mean adding a dependency such as exceljs or hand-rolling a ZIP writer.Known consequence: because the content is SpreadsheetML and the extension is
.xls, Excel 2016 and later show "The file format and extension don't match" on open. The file is intact and opens correctly once confirmed. The format is namedexcelrather thanxlsxso the API does not claim otherwise.