Code covered by the BSD License  

Highlights from
xlwrite : Export Data to Excel from Matlab on Mac/Win

3.0 | 1 rating Rate this file 159 Downloads (last 30 days) File Size: 665 KB File ID: #37560
image thumbnail

xlwrite : Export Data to Excel from Matlab on Mac/Win



19 Jul 2012 (Updated )

xlwrite allows you to export data (2d/3d arrays of double/cell) to Excel from Matlab (Mac/Win)

| Watch this File

File Information

The function xlwrite has similar syntax and inputs as MatLAB's xlswrite.
It also can write 3-d arrays (xlswrite can't), of cell and double type. To simplify the idea : we forward Matlab data to be exported to a Java function which in turn writes the data to excel.

Note that data to be exported is converted to cell then to java String array.

This workaround is a real working solution, it may need further refinements :
- manage Java heap space, as Java heap memory saturates for large arrays exported many times.
- format dates and strings, as all numbers appear as text in Excel.

Matlab's decimal separator is '.' : in order to be able to work with exported data, users of this solution will have to change Mac preferences regarding the decimal separator (should be ".").
To do so you need to go to System Preferences > International > Formats and click on Customize button in number zone, then type '.' in the field required.
This solution works under Windows.

Test_xlwrite.m contains an example.


This file inspired Xlwrite: Generate Xls(X) Files Without Excel On Mac/Linux/Win, Csvexport(Filename,Cell Vals), and Csvimport(Filename).

MATLAB release MATLAB 7.10 (R2010a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (9)
08 Feb 2015 Guillaume Felter

Like Joachim Seel, but I got a similar error while using xlwrite :
Undefined function 'WriteXL' for input arguments of type 'java.lang.String'.

Error in xlwrite (line 108)
In the folder Archive, there is
Cell2JavaString.m xlwrite.m
MXL.jar cell2char.m
Test_xlwrite.m jxl.jar,
but no WriteXL.m :(
How can I fix this ? I'm a beginner using additional tools like this.

Comment only
29 Oct 2014 samar

samar (view profile)

Hi, could I write on specific cells with xlwrite?
If the answer is yes please tell me how!

Comment only
24 Feb 2014 Joachim Seel

Hi, I have downloaded the xlwrite file but run into this error when trying to run the script below: Any suggestions how to correct this error? Thanks!

Undefined function 'WriteXL' for input arguments of type 'java.lang.String'.

Error in xlwrite (line 68)

This is the script.

%define variables

% read in dynamic load

%pre-allocate for speed

% loop through each row of dynamic_load_matrix and append to
% dynamic_load_vector
for i=1:365









Comment only
28 Jul 2013 Edward Byers

Complicated to get started with the java files etc and no very good instructions on this. See the example however.
Doesn't support specifying to a range.
However - support multi-dimensional variables which is a great bonus.

17 Oct 2012 Marin Deresco

@ the cyclist:
check the following submission:

Comment only
20 Aug 2012 Marin Deresco

@ Paul Shoemaker :
Will try to test a quick solution for xlsread soon (1-2 months).


Comment only
06 Aug 2012 Paul Shoemaker

Very neat! Any chance we might see an xlread variant that is similarly cross-platform?

Comment only
03 Aug 2012 Marin Deresco

@ the cyclist :
Hope xlwrite will help you. Thank you for the remark about the specific cells export. I didn't focus on this point yet. The idea behind xlwrite was to export Matlab 3d arrays of doubles or cells to excel.
If time permits, my next submission will contain currently missing xlswrite features.

Comment only
02 Aug 2012 the cyclist

This is an exciting submission, as it is an ongoing frustration that xlswrite doesn't function fully on a Mac.

xlwrite doesn't seem to have the ability to write to specific cells on a worksheet, as xlswrite does. Is that something you are planning to add, or is there some fundamental impediment to doing that? It would be a powerful addition.

Comment only
24 Jul 2012

updated the summary

03 Aug 2012

According to a user remark, I've updated the description of xlwrite : I've replaced 'same syntax' into 'similar syntax'.

Contact us