Diff of /QIF_extraction/cell2csv.m [000000] .. [797475]

Switch to unified view

a b/QIF_extraction/cell2csv.m
1
function cell2csv(fileName, cellArray, separator, excelYear, decimal)
2
% Writes cell array content into a *.csv file.
3
% 
4
% CELL2CSV(fileName, cellArray, separator, excelYear, decimal)
5
%
6
% fileName     = Name of the file to save. [ i.e. 'text.csv' ]
7
% cellArray    = Name of the Cell Array where the data is in
8
% separator    = sign separating the values (default = ';')
9
% excelYear    = depending on the Excel version, the cells are put into
10
%                quotes before they are written to the file. The separator
11
%                is set to semicolon (;)
12
% decimal      = defines the decimal separator (default = '.')
13
%
14
%         by Sylvain Fiedler, KA, 2004
15
% updated by Sylvain Fiedler, Metz, 06
16
% fixed the logical-bug, Kaiserslautern, 06/2008, S.Fiedler
17
% added the choice of decimal separator, 11/2010, S.Fiedler
18
19
%% Checking für optional Variables
20
if ~exist('separator', 'var')
21
    separator = ',';
22
end
23
24
if ~exist('excelYear', 'var')
25
    excelYear = 1997;
26
end
27
28
if ~exist('decimal', 'var')
29
    decimal = '.';
30
end
31
32
%% Setting separator for newer excelYears
33
if excelYear > 2000
34
    separator = ';';
35
end
36
37
%% Write file
38
datei = fopen(fileName, 'w');
39
40
for z=1:size(cellArray, 1)
41
    for s=1:size(cellArray, 2)
42
        
43
        var = eval(['cellArray{z,s}']);
44
        % If zero, then empty cell
45
        if size(var, 1) == 0
46
            var = '';
47
        end
48
        % If numeric -> String
49
        if isnumeric(var)
50
            var = num2str(var);
51
            % Conversion of decimal separator (4 Europe & South America)
52
            % http://commons.wikimedia.org/wiki/File:DecimalSeparator.svg
53
            if decimal ~= '.'
54
                var = strrep(var, '.', decimal);
55
            end
56
        end
57
        % If logical -> 'true' or 'false'
58
        if islogical(var)
59
            if var == 1
60
                var = 'TRUE';
61
            else
62
                var = 'FALSE';
63
            end
64
        end
65
        % If newer version of Excel -> Quotes 4 Strings
66
        if excelYear > 2000
67
            var = ['"' var '"'];
68
        end
69
        
70
        % OUTPUT value
71
        fprintf(datei, '%s', var);
72
        
73
        % OUTPUT separator
74
        if s ~= size(cellArray, 2)
75
            fprintf(datei, separator);
76
        end
77
    end
78
    if z ~= size(cellArray, 1) % prevent a empty line at EOF
79
        % OUTPUT newline
80
        fprintf(datei, '\n');
81
    end
82
end
83
% Closing file
84
fclose(datei);
85
% END