File Exchange

image thumbnail


version (2.34 KB) by Jeff Evans
Writes a data structure in MATLAB to an excel file.


Updated 22 Dec 2008

View License

Modified from Francisco de Castro's code, struc2xls lets you save data structures containing a mix of numeric and non-numeric data to an Excel file. This version runs faster than the original and has several extra output options.

STRUC2XLS (FILE,S) writes the data structure S to an Excel workbook named FILE in the current directory. Data fields can be numeric, non-numeric, or mixed. Output can be oriented vertically (field names in first column, data in rows) or horizontally (field names in first row, data in columns). I'm sure there's room for improvement here. Let me know...

Create a sample structure 's' with two fields:

Basic output to file 'demo.xls' in current directory:

Output beginning in cell D4 of Excel file:

Output to specified worksheet 'Students':

Output horizontal data (header row, data in columns):

Output to alternate directory

Cite As

Jeff Evans (2021). struc2xls (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (7)

Shubo Wu

Undefined function 'struct2cell' for input arguments of type 'char'.
Error in struc2xls (line 83)

Alex Coningham

Hi, Haven't got it to work, it seems to not like empty entries in structures (e.g. data.x=[])

??? Error using ==> xlswrite at 154
Input array is empty.

Error in ==> struct2xls at 55

Jaivik Kachhia

working with your example :)


but not working with my file...

Input data must be a numeric, cell, or logical array.

Error in ==> struct2xls at 55


Hi, in my case I had the same

??? Error using ==> ctranspose
Transpose on ND array is not defined.
Error in ==> struc2xls at 91

And I solved it by squeezing c in line 83 as:

%Transform to cell
c= squeeze(struct2cell(s));

Hope it helps!

Sulaiman Khalid

seems to work fine with me....


Strange : Program does not seem to work with your example

>> s=struct('Name',{'Jon','Jonathan','Johnny'},'Score',[85,100,75]);
>> struc2xls('demo',s)
??? Error using ==> ctranspose
Transpose on ND array is not defined.

Error in ==> struc2xls at 91

Ofek Shilon

Nice effort - but i'd given it 5 if it only handled nested structs.

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

Inspired by: struc2xls

Community Treasure Hunt

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

Start Hunting!