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