Matlab все листы собираются - PullRequest
0 голосов
/ 16 июля 2011

У меня есть много файлов Excel в одном каталоге ... каждый файл Excel имеет несколько листов внутри ...

Могу ли я узнать, как собрать все листы из всех файлов Excel в новый файл Excel?

names=dir('*.xls');
names={names.name};
output='out.xls';
for i=1:length(names)
  z = xlsread(names{i});
xlswrite(output,z);
end

продолжайте ошибаться .. кто-нибудь может помочь?!

1 Ответ

0 голосов
/ 19 июля 2011

Вот одна из возможных реализаций:

%# get all XLS files in source directory
dirName = '.\in';
files = dir( fullfile(dirName,'*.xls') );
files = {files.name}';                      %'

%# for each input file
for i=1:numel(files)
    fname = fullfile(dirName, files{i});    %# absolute-path filename
    [~,f] = fileparts(fname);               %# used to name sheets in output

    %# loop over each sheet in input file
    [~,sheets] = xlsfinfo(fname);
    for s=1:numel(sheets)
        %# read content
        [~,~,rawData] = xlsread(fname, sheets{s});

        %# write to output file as new sheet
        xlswrite('out.xls', rawData, [f '_' sheets{s}]);
    end
end
...