2011-11-30 53 views
0

我有4個文件夾,每個文件夾包含幾個(> 10)excel電子表格。如何將每個電子表格的最後一個工作表提取到matlab中?因此,在matlab中,數據將是一個單元格將代表一個文件夾,並在該單元格中,你將擁有每個文件夾的內容,即每個電子表格的最後一個工作表的數據?matlab幾個excel文件

歡呼

回答

2

使用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