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

 채택된 답변

Rik
Rik 2017년 12월 12일
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

Stephen23
Stephen23 2017년 12월 12일
편집: Stephen23 2017년 12월 12일
"Don't forget the filesep between the folder and the name."
That is why we recommend using fullfile.
Rik
Rik 2017년 12월 14일
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 2018년 10월 29일
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 2018년 10월 31일
편집: Rik 2018년 10월 31일
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 2018년 10월 31일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

질문:

Paj
2017년 12월 12일

댓글:

Rik
2018년 10월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by