Matlab несколько файлов Excel - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть 4 папки, каждая из которых состоит из нескольких (> 10) таблиц Excel.Как можно извлечь последний рабочий лист каждой электронной таблицы в Matlab.Так что в matlab данные будут такими, что ячейка будет представлять папку, и внутри этой ячейки у вас будет содержимое каждой папки, то есть данные из последней таблицы каждой электронной таблицы?

cheers

1 Ответ

2 голосов
/ 30 ноября 2011

Используйте функцию 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...