Extract ¨multiple .xls file from a folder?

1 次查看(过去 30 天)
Hello,
I am looking to extract 215 .xls files from a folder. I want to also extract specific columns from these files. The colums in all these files are same. I am using the follwing code to extract one file. Is there any way to extract all the files from this folder?
opts = detectImportOptions('1.xls', 'Sheet','cycle', 'Range', 'A1:C21', 'PreserveVariableNames', true);
opts.SelectedVariableNames = opts.SelectedVariableNames([1, 2, 3]);
Table_2 = readtable('1.xls', opts);
--
Thank you.
  1 个评论
Mathieu NOE
Mathieu NOE 2021-1-12
hello
simple suggestion below. of course you can use readtable instead of the (older) xlsread - but chek speed if it's important to you; xlsread still ok for simple tasks.
also check if files are sorted according to your wishes - you may have to sort them if you have file names ending like file_1, file_10 etc...
range = 'C2:D10'; % Read a specific range of data:
file_list = dir('*.xlsx'); % list all xlsx files in current directory
for i = 1:length(file_list)
filename = file_list(i).name;
data_in{i} = xlsread(filename,range); % stores the filename data in array of cells
% insert your code here
end

请先登录,再进行评论。

采纳的回答

Ive J
Ive J 2021-1-12
If you want to extract the content of all your .xls files within a certain directory at once, you can do it as:
% assuming you're already in the target directory
ds = spreadsheetDatastore(pwd, 'Sheets', 'cycle', 'Range', 'A1:C25', 'FileExtensions', '.xls', 'ReadVariableNames', true);
ds = readall(ds); % aggregates all contents as a single table

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by