0
我有4个文件夹,每个文件夹包含几个(> 10)excel电子表格。如何将每个电子表格的最后一个工作表提取到matlab中?因此,在matlab中,数据将是一个单元格将代表一个文件夹,并在该单元格中,你将拥有每个文件夹的内容,即每个电子表格的最后一个工作表的数据?matlab几个excel文件
欢呼
我有4个文件夹,每个文件夹包含几个(> 10)excel电子表格。如何将每个电子表格的最后一个工作表提取到matlab中?因此,在matlab中,数据将是一个单元格将代表一个文件夹,并在该单元格中,你将拥有每个文件夹的内容,即每个电子表格的最后一个工作表的数据?matlab几个excel文件
欢呼
使用XLSFINFO功能。它确定该文件是Excel电子表格,会给你所有工作表的列表,并且还可以检测到excel文件格式。
[status,sheets,format] = xlsfinfo(filename);
if ~isempty(status)
lastsheet = sheets{end};
end
一旦你知道最后一个工作表名称,你可以使用XLSREAD从中获取数据。
[num,txt,raw] = xlsread(filename,lastsheet);
使用DIR来收集文件夹中的文件名。
UPDATE
入住此脚本:
folders = {'test1','test2'};
DATA = cell(numel(folders),1);
for fo = 1:numel(folders)
files = dir(folders{fo}); %# get array fo all files in a folder
files([files(:).isdir]) = []; %# remove directories from the structure array
DATA{fo} = cell(numel(files),1);
for fi = 1:numel(files)
filename = fullfile(folders{fo},files(fi).name);
disp(filename)
[status,sheets] = xlsfinfo(filename);
if ~isempty(status)
lastsheet = sheets{end};
[num,txt,raw] = xlsread(filename,lastsheet);
DATA{fo}{fi} = num; %# or txt, or raw
end
end
end