Reading Multiple excel files with different file names

I have this bit of code where i'm indexing the location of places of interest in every country in the world:
[~, ~, raw] = xlsread('C:\Users\paroo\Desktop\Filtered\Afganistan.xlsx','Sheet1','A2:P69');
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''};
stringVectors = string(raw(:,[1,2,3,4,5,6,7,9,10,13,14,15,16]));
stringVectors(ismissing(stringVectors)) = '';
raw = raw(:,[8,11,12]);
R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),raw); % Find non-numeric cells
raw(R) = {NaN}; % Replace non-numeric cells
Afganistan.point = stringVectors(:,8);
Now i have a directory with multiple excel file (200) named by country. Can matlab load each filename separately ? been trying this so far (doesnt work) (sourced from MATLAB answers):
D = dir(['C:\Users\paroo\Desktop\Filtered', '\*.xlsx']);
filenames = {D(:).name}.';
data = cell(length(D),1);
for ii = length(D):-1:1
% Create the full file name and partial filename
fullname = ['C:\Users\paroo\Desktop\Filtered' D(ii).name];
% Read in the data
data{ii} = xlsread(fullname);
end

 Réponse acceptée

D = dir(['C:\Users\paroo\Desktop\Filtered', '\*.xlsx']);
filenames = {D(:).name}.';
data = cell(length(D),1);
for ii = length(D):-1:1
% Create the full file name and partial filename
fullname = ['C:\Users\paroo\Desktop\Filtered\' D(ii).name];
% Read in the data
data{ii} = xlsread(fullname);
end
Don't forget the filesep between the folder and the name.

6 commentaires

Stephen23
Stephen23 le 12 Déc 2017
Modifié(e) : Stephen23 le 12 Déc 2017
"Don't forget the filesep between the folder and the name."
That is why we recommend using fullfile.
Rik
Rik le 14 Déc 2017
If you found this answer useful, please mark it as accepted answer. It will give me reputation points and will make it easier for other people with the same question to find an answer. If not, please comment with what problems you are still having.
@Rik The script is works. Thanks Rik. If there is a case I would like to read sheet2 and sheet4 and etc in an excel sheet, what is the command that I should add it in? I am only able to read the sheet1 of the excel sheet from the above command.
Rik
Rik le 29 Oct 2018
If you read the xlsread doc you can see the syntax with which you can specify the sheet (you can even use the sheet number, though the sheet name is safer).
Kah Boon Ho
Kah Boon Ho le 31 Oct 2018
Modifié(e) : Rik le 31 Oct 2018
Thanks Rik. After try it, the comment stated 'Conversion to cell from double is not possible.' Therefore unable to read the sheet 2 and so on. Anything I do wrongly here? My script as below:
data{ii} = xlsread(fullname,'Sheet 2');
The previous script I follow as per your original script
Rik
Rik le 31 Oct 2018
I can't reproduce this error. Are you sure the sheet name has a space?
What is the full error (all red text)? I don't really see what cell would be converted to a double in this code.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Question posée :

Paj
le 12 Déc 2017

Commenté :

Rik
le 31 Oct 2018

Community Treasure Hunt

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

Start Hunting!

Translated by