Main Content

Write Spreadsheet Data Using Excel as Automation Server

This example shows how to write a MATLAB® matrix to an Excel® spreadsheet. For alternatives to exporting MATLAB data to a Microsoft® Excel spreadsheet, see the functions and examples in Spreadsheets.

Create an Excel object.

e = actxserver('Excel.Application');

Add a workbook.

eWorkbook = e.Workbooks.Add;
e.Visible = 1;

Make the first sheet active.

eSheets = e.ActiveWorkbook.Sheets;
eSheet1 = eSheets.get('Item',1);
eSheet1.Activate

Put MATLAB data into the worksheet.

A = [1 2; 3 4];
eActivesheetRange = get(e.Activesheet,'Range','A1:B2');
eActivesheetRange.Value = A;

Read the data back into MATLAB, where array B is a cell array.

eRange = get(e.Activesheet,'Range','A1:B2');
B = eRange.Value;

Convert the data to a double matrix. Use the following command if the cell array contains only scalar values.

B = reshape([B{:}],size(B));

Save the workbook in a file.

SaveAs(eWorkbook,'myfile.xlsx')

If the Excel program displays a dialog box about saving the file, select the appropriate response to continue.

If you saved the file, then close the workbook.

eWorkbook.Saved = 1;
Close(eWorkbook)

Quit the Excel program and delete the server object.

Quit(e)
delete(e)

Note

Make sure that you close workbook objects you create to prevent potential memory leaks.

See Also

Related Topics

Go to top of page