diff --git a/src/modules/Exports.js b/src/modules/Exports.js index 2187e0666..cd950a1bb 100644 --- a/src/modules/Exports.js +++ b/src/modules/Exports.js @@ -256,6 +256,11 @@ class Exports { } } + // let the caller know the current category is null. this can happen for example + // when dealing with line charts having inconsistent time series data + if (cat === null) + return 'nullvalue' + if (Array.isArray(cat)) { cat = cat.join(' ') } @@ -282,6 +287,11 @@ class Exports { columns = [] let cat = getCat(i) + + // current category is null, let's move on to the next one + if (cat === 'nullvalue') + continue + if (!cat) { if (dataFormat.isFormatXY()) { cat = series[sI].data[i].x @@ -296,8 +306,8 @@ class Exports { isTimeStamp(cat) ? w.config.chart.toolbar.export.csv.dateFormatter(cat) : Utils.isNumber(cat) - ? cat - : cat.split(columnDelimiter).join('') + ? cat + : cat.split(columnDelimiter).join('') ) for (let ci = 0; ci < w.globals.series.length; ci++) { @@ -380,8 +390,8 @@ class Exports { isTimeStamp(cat) && w.config.xaxis.type === 'datetime' ? w.config.chart.toolbar.export.csv.dateFormatter(cat) : Utils.isNumber(cat) - ? cat - : cat.split(columnDelimiter).join(''), + ? cat + : cat.split(columnDelimiter).join(''), data[cat].join(columnDelimiter), ]) }) @@ -446,7 +456,7 @@ class Exports { this.triggerDownload( 'data:text/csv; charset=utf-8,' + - encodeURIComponent(universalBOM + result), + encodeURIComponent(universalBOM + result), fileName ? fileName : w.config.chart.toolbar.export.csv.filename, '.csv' )