diff --git a/src/read/load_data.m b/src/read/load_data.m index 01e33b7cf0b879b4ba64272914143b574a31c77f..3e92e4ce605eaf43d015f90fa7fa6b20aabc36c0 100644 --- a/src/read/load_data.m +++ b/src/read/load_data.m @@ -26,31 +26,31 @@ function [init, data, varlist, tex, ops, tags] = load_data(filename) if ~nargin || ~ischar(filename) || isempty(filename) error('dseries:load_data: Input argument cannot be an empty string!') -elseif check_file_extension(filename,'m') +elseif check_file_extension(filename(1,:),'m') [~, init, data, varlist, tex, ops, tags] = load_m_file_data(filename); -elseif check_file_extension(filename,'mat') +elseif check_file_extension(filename(1,:),'mat') [~, init, data, varlist, tex, ops, tags] = load_mat_file_data(filename); -elseif check_file_extension(filename,'csv') +elseif check_file_extension(filename(1,:),'csv') [~, init, data, varlist] = load_csv_file_data(filename); tex = []; ops = cell(length(varlist), 1); tags = struct(); -elseif check_file_extension(filename,'xls') || check_file_extension(filename,'xlsx') - if isglobalinbase('options_') - % Check that the object is instantiated within a dynare session so that options_ global structure exists. - % Should provide latter a mechanism to pass range and sheet to dseries constructor... - range = evalin('base','options_.xls_range'); - sheet = evalin('base','options_.xls_sheet'); +elseif check_file_extension(filename(1,:),'xls') || check_file_extension(filename(1,:),'xlsx') + if ~isempty(deblank(filename(2,:))) + sheet = deblank(filename(2,:)); else - % By default only the (whole) first sheet is loaded. - range = []; sheet = []; end - [~, init, data, varlist] = load_xls_file_data(filename, sheet, range); + if ~isempty(deblank(filename(3,:))) + range = deblank(filename(3,:)); + else + range = []; + end + [~, init, data, varlist] = load_xls_file_data(deblank(filename(1,:)), sheet, range); tex = []; ops = cell(length(varlist), 1); tags = struct(); -elseif check_file_extension(filename,'db') +elseif check_file_extension(filename(1,:),'db') % Fame database (need to have matlab-fame-io submodule and TimeIQ installed) FameInfo = fame.open.connector(); db = fame.open.database(FameInfo, filename); @@ -61,7 +61,7 @@ elseif check_file_extension(filename,'db') ops = cell(length(varlist), 1); tags = struct(); else - error('dseries:WrongInputArguments', 'I''m not able to load data from %s!', filename); + error('dseries:WrongInputArguments', 'I''m not able to load data from %s!', filename(1,:)); end if isempty(tex) diff --git a/src/utilities/file/check_file_extension.m b/src/utilities/file/check_file_extension.m index 98fd0a06d765bb66613b28ee22421b746c571e6f..f307645b7cd1d5fef1eaead7eb82bf257e9b1eac 100644 --- a/src/utilities/file/check_file_extension.m +++ b/src/utilities/file/check_file_extension.m @@ -35,4 +35,4 @@ while ~isempty(remain) [ext, remain] = strtok(remain,'.'); end -b = strcmp(ext,type); \ No newline at end of file +b = strcmp(deblank(ext),type); \ No newline at end of file