Please... I want to import several excel files at once. used for_fuction

1 view (last 30 days)
I want to import several excel files at once. used for_fuction
I used this code.
source_dir = 'C:/Users/Cju/Documents/MATLAB/a/' ;
dest_dir = '/C:/Users/Cju/Documents/MATLAB/a' ;
source_files = dir(fullfile(source_dir, '*.xlsx'));
for i = 1:length(source_files)
data = xlsread(fullfile(source_dir, source_files(i).name));
In 'a'folder, there are 5 excel files.
But, Imported just first file.
Is there '*.xlsx' problem?
What is wrong?
This problem is very important for me.
Please.. Answer

Answers (2)

CS Researcher
CS Researcher on 2 May 2016
Edited: CS Researcher on 2 May 2016
You can try this:
oldfolder = cd(source_dir);
xlfiles = dir('*.xlsx');
nfiles = length(xlfiles);
for i = 1:nfiles
% Access files by xlfiles(i).name (No need to use fullfile here)

Sign in to comment.

Image Analyst
Image Analyst on 2 May 2016
See the FAQ: for reading in a sequence of xlsx files.
If you want to save all the arrays, then you will have to index data and make it a cell array (in case all workbooks don't have the same size matrices in them), so in your loop:
fullFileName = fullfile(source_dir, source_files(i).name);
data{i} = xlsread(fullFileName); % Save in one cell of a cell array.
See thet FAQ on cell arrays if you don't feel completely comfortable with them.


Find more on Data Import from MATLAB in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by