time | Calls | line |
---|
| | 312 | function dataRange = getDataRange(sheet,dataloc,numVars,usedRange,rowsToRequest)
|
< 0.001 | 2 | 313 | if isempty(usedRange)
|
| | 314 | usedRange = [1 1 0 0];
|
< 0.001 | 2 | 315 | end
|
| | 316 |
|
< 0.001 | 2 | 317 | if isempty(dataloc)
|
| | 318 | dataRange = [1 1 0 0];
|
< 0.001 | 2 | 319 | else
|
< 0.001 | 2 | 320 | if isnumeric(dataloc) && isscalar(dataloc)
|
| | 321 | % dataloc = Row/Column number
|
| | 322 | usedRange(1) = dataloc; % first row
|
| | 323 | dataRange = matlab.io.spreadsheet.internal.subRange(usedRange,[1 numVars]);
|
| 2 | 324 | else
|
< 0.001 | 2 | 325 | if usedRange(3) < rowsToRequest
|
| | 326 | % get more rows
|
| | 327 | usedRange(3) = usedRange(1) + rowsToRequest - 1;
|
| 2 | 328 | end
|
< 0.001 | 2 | 329 | [dataRange,type] = sheet.getRange(dataloc,false);
|
| 2 | 330 | switch (type)
|
< 0.001 | 2 | 331 | case 'single-cell'
|
| | 332 | % Start cell, read numVars columns, and all the rows until the end range.
|
0.001 | 2 | 333 | dataRange = matlab.io.spreadsheet.internal.subRange(dataRange,[1 numVars]);
|
| | 334 | % get last usedRange row number
|
< 0.001 | 2 | 335 | lastUsedRow = usedRange(1) + usedRange(3) - 1;
|
| | 336 | % set the number of rows
|
< 0.001 | 2 | 337 | dataRange(3) = lastUsedRow - dataRange(1) + 1;
|
| | 338 | case 'row-only'
|
| | 339 | % Read numVars columns from the first column in the usedRange.
|
| | 340 | dataRange(2) = usedRange(2);
|
| | 341 | dataRange = matlab.io.spreadsheet.internal.subRange(dataRange,[1 numVars]);
|
| | 342 | case 'column-only'
|
| | 343 |
|
| | 344 | case 'named'
|
| | 345 | if dataRange(4) ~= numVars
|
| | 346 | error(message('MATLAB:spreadsheet:importoptions:VarNumberMismatch','DataRange'));
|
| | 347 | end
|
< 0.001 | 2 | 348 | end
|
< 0.001 | 2 | 349 | end
|
< 0.001 | 2 | 350 | end
|
| | 351 | % if the used range is empty, then we may end up with negative values for
|
| | 352 | % the extents [1 1 -1 -1]. Since this is invalid, we replace them with
|
| | 353 | % zero.
|
< 0.001 | 2 | 354 | dataRange(dataRange < 0) = 0;
|
| | 355 |
|
< 0.001 | 2 | 356 | end
|
Other subfunctions in this file are not included in this listing.