The idea came from a modified version of the xlswrite.m (the xlswrite1.m) posted by Matt Swartz in this fle exchange area on March 21, 2006. This version of xlsread.m was easily accomplished by removing all instances of server open/close functions within the original file, as it was done with xlswrite1.m. Should one use xlswrite1.m in conjunction with the xlsread.m, the data transfer process still takes too long, in addition to yielding undesirable results due to the persistent server open/close.
In order to use it, one must place the following code within the program, as given by Matt Swartz. It opens/closes the activex server, load an add-in if any (by default when Excel opens as a COM server it does NOT load add-ins), and checks to see if the file already exists:
Excel = actxserver ('Excel.Application');
ExcelWorkbook = Excel.Workbooks.Add;
Use xlsread1.m as needed. Then run the following code to close the activex server:
The result was that processing speed of xlsread.m increased dramatically.
Antonio (2021). Function for faster data transfer Matlab <--> Excel (https://www.mathworks.com/matlabcentral/fileexchange/22365-function-for-faster-data-transfer-matlab-excel), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: xlswrite1
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!