MATLAB: User Input with Loops

csvreadforifloopuser inputwhilexlsreadxlsxread

Hey guys,
I am wondering is there is a function that can read .xlsx, .csv, and .xls files. I wanted something that could work with the uigetfile('*.*') command For example, I want my user to select a spreadsheet either in .xlsx, .csv, or .xls format and send it through an analysis regardless of what they pick. Currently I have csvread, and was wondering if I could form an loop asking them what format the file is in and send it through it's respective analysis, whether it be xlsxread, xlsread, etc.
I apologize if the questions isn't clear.
Thanks!

Best Answer

As far as I know, xlsread can potentially read all of them, provided they’re in Excel format. (The xlsread funciton calls Excel.) If you want to specifically select xlsread or csvread on the basis of the file extension, something like this would work:
filext = {'xls' 'xlsx' 'csv'};
fnm = inputdlg('Enter the full name (+ext) of your file: ');
ext = regexpi(fnm, '[.]?','split');
filtyp = find(strcmpi(ext{:}(2),filext));
followed by a switch-case block to call the appropriate function based on the output in ‘filtyp’, and passing to it the full ‘fnm’ file name.