File Exchange

image thumbnail


version (5.19 KB) by Travis
This greatly speeds up xlswrite when you are using it multiple times.

1 Download

Updated 11 Sep 2009

View License

%This code increases the speed of the xlswrite and works with Excel 2007
%function when used in loops or multiple times. The problem with the original function
%is that it opens and closes the Excel server every time the function is used.
%To increase the speed I have just edited the original function by removing the
%server open and close function from the xlswrite function and moved them outside
%of the function. To use this first run the following code which opens the activex
%server and checks to see if the file already exists (creates if it doesnt):

% Excel = actxserver('Excel.Application');
% File = 'C:\Folder\File'; %Make sure you put the whole path
% if ~exist(File,'file')
% ExcelWorkbook = Excel.workbooks.Add;
% ExcelWorkbook.SaveAs(File)
% ExcelWorkbook.Close(false);
% end
% ExcelWorkbook = Excel.workbooks.Open(File);

%Then run the new xlswrite2007 function as many times as needed
%or in a loop (for example xlswrite2007(File,data,location).
%Then run the following code to close the activex server:

% ExcelWorkbook.Save
% ExcelWorkbook.Close(false) % Close Excel workbook.
% Excel.Quit;
% delete(Excel);

% This is a modern version of xlswrite1 posted by Matt Swartz in 2006, and
% as such most of these comments are copied from his original post

Cite As

Travis (2021). xlswrite2007 (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (3)


Anthony Santago

I'm running Matlab 7.12.0 with Windows 7 and Excel 2007 and I have tried both
Excel = evalin('base','Excel');

Excel = evalin('caller', 'Excel');
and they are both throwing the error
??? Error using ==> evalin
Undefined function or variable 'Excel'.

Do you mind shedding some light on the issue for me?


I had to change the line Excel=evalin('base','Excel');
Excel = evalin('caller', 'Excel');
to get it to work on my machine.

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

Inspired by: xlswrite1

Community Treasure Hunt

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

Start Hunting!