-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparseXlsReadInput.m
46 lines (41 loc) · 1.23 KB
/
parseXlsReadInput.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function [sheet,x1Range,processFcn,basic] = parseXlsReadInput(varargin)
% Parse the input of the xlread function to obtain all relevant outputs for
% the input of an xls/xlsx file (independent on matlab implementations).
sheet = 1;
x1Range = '';
processFcn = [];
basic = 0;
if numel(varargin) == 0
return;
end
sheetDone = false;
rangeDone = false;
basicDone = false;
varargpos = 1;
while varargpos <= numel(varargin)
carg = varargin{varargpos};
if basicDone %Now, we have to be in the last element, which is the process function
processFcn = carg;
return;
end
if ~sheetDone
if isnumeric(carg) || ischar(carg) && numel(strsplit(carg,':')) < 2
sheet = carg;
sheetDone = true;
else %its not numeric, and looks like a x1Range
x1Range = carg;
%We did not yet parse the sheet, but got a range -> only range
%provided.
break;
end
else %if sheet is done, we got a second argument, which has to be range.
if ~rangeDone
x1Range = carg;
rangeDone = true;
else
basic = strcmp('basic',carg);
basicDone = true;
end
end
varargpos = varargpos + 1;
end