function [status,message] = csv2xlsSCase(csvFilename) %CSV2XLSSCASE Read csv file and write xls (only from windows) % Detailed explanation goes here % Input: name of a csv file % Output: status and message % Author: Alexandre Terrier, EPFL-LBO % Creation date: 2018-08-13 % % TO DO: %% Write xls file if ispc % Check if run from windows! % Read csv file as table (only way to read non-numeric data) and keep % date as char. csvTable = readtable(csvFilename,'DatetimeType', 'text'); csvCell = table2cell(csvTable); % Tranform table cell array (required by xlswrite) dataHeader = csvTable.Properties.VariableNames; % Get header csvCell = [dataHeader; csvCell]; % Add header xlsFilename = strrep(csvFilename, '.csv', '.xls'); % Replace .csv by .xls % Sheet name with same name of the xls file sheet = split(xlsFilename,'/'); % Split subdir sheet = sheet(end); % Take only filename sheet = cell2mat(sheet); % Tranform cell to char sheet = strrep(sheet, '.xls', ''); % Remove xls suffix) % Delete file if exist to avoid potential issue if exist(xlsFilename, 'file') delete xlsFilename; end [status,msg] = xlswrite(xlsFilename, csvCell, sheet); % Save xls if status message = ['\nSaved xls file: ' xlsFilename]; else message = ['\nCould not save xls file: ' xlsFilename]; message = strcat(message, ['\n' msg.identifier]); message = strcat(message, ['\n' msg.message]); end else message = '\nCould not save xls file (Not Windows system). Open and save as xls from Excel'; status = 0; end end