xlwrite: Generate XLS(X) files without Excel on Mac/Linux/Win

Generates ‘.xls’ & '.xlsx' files on Mac/Linux/Win without Excel, using same syntax as xlswrite.
14.3K Downloads
Updated 27 Feb 2013

View License

xlwrite allows to generate '.xls' & '.xlsx' files easily without having Excel installed or using COM-objects. It generates Excel files by using the Apache POI java library. This way Excel files can be generated on any platform supporting Java, including Linux & mac.

xlwrite uses the same syntax as xlswrite, making it easy to integrate in current applications.

xlwrite supports following datatypes:
- string
- numerical
- logical/boolean
The type of data is kept in Excel: for example boolean data in matlab will be saved as boolean in Excel.

xlwrite also supports a combination of above datatypes in a cell array like for example:
xlsData = {1 true 'text' false; 10 -12.5 6 false};

To generate the Excel file without too much overhead, xlwrite interacts directly with the Apache POI library.

The original idea of this script is based on the xlwrite function written by Marin Deresco, however due to some limitations we had to write an improved version.

Although created under Matlab 2012a, xlwrite should also work for earlier versions of Matlab.

UPDATE: if you find any bugs, please contact me directly.

Cite As

Alec de Zegher (2024). xlwrite: Generate XLS(X) files without Excel on Mac/Linux/Win (https://www.mathworks.com/matlabcentral/fileexchange/38591-xlwrite-generate-xls-x-files-without-excel-on-mac-linux-win), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.9.0.0

20130227 - Fixed bug when no sheet number given & added Stax to java load. Thanks to Thierry

1.8.0.0

20130125 - Fixed bug & documentation. Incorrect working of NaN. Thanks Klaus

1.7.0.0

Fixed bug: use existing cell if present, instead of overwriting. This way original XLS formatting is kept & not overwritten.

1.6.0.0

Bugfix: if a numeric sheet was given & didn't exist an error was returned instead of creating the sheet. Thanks to Marianna

1.5.0.0

Fixed bug: use existing rows if present, instead of overwrite rows by default. Thanks to Dan & Jason.

1.2.0.0

Fixed bug: use existing rows if present, instead of overwrite rows by default. Thanks to Jason.

1.1.0.0

The new version of xlwrite uses the Apache POI library, instead of JExcelApi. The Apache POI library has some advantages over JExcelApi library:
- It can create XLSX files
- xlsread supports xls files generated by POI lib.

1.0.0.0