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');
Excel.Workbooks.Open('C:\YourAddInFolder\AddInNameWithExtension');
Excel.Workbooks.Item('AddInNameWithExtension').RunAutoMacros(1);
File='C:\YourFileFolder\FileName';
if ~exist(File,'file')
ExcelWorkbook = Excel.Workbooks.Add;
ExcelWorkbook.SaveAs(File,1);
ExcelWorkbook.Close(false);
end
Excel.Workbooks.Open(File);
Use xlsread1.m as needed. Then run the following code to close the activex server:
Excel.ActiveWorkbook.Save;
Excel.Quit
Excel.delete
clear Excel
The result was that processing speed of xlsread.m increased dramatically.
引用格式
Antonio (2024). 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. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- MATLAB > Data Import and Analysis > Data Import and Export > Standard File Formats > Spreadsheets >
- MATLAB > External Language Interfaces > COM with MATLAB > Use COM Objects in MATLAB > ActiveX >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.3.0.0 | Made changes in the file description. |
||
1.2.0.0 | Title updated to avoid possible overwriting of built-in xlsread.m. Thanks to Image Analyst's comment. |
||
1.1.0.0 | Two additional lines were included to allow add-ins to be installed since by default when Excel opens as a COM server it does NOT load add-ins. |
||
1.0.0.0 |