diff --git a/csv2xlsSCase.m b/csv2xlsSCase.m new file mode 100755 index 0000000..f34aab0 --- /dev/null +++ b/csv2xlsSCase.m @@ -0,0 +1,53 @@ +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 +