| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import _ from 'lodash';
- import moment from 'moment';
- import { saveAs } from 'file-saver';
- const DEFAULT_DATETIME_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';
- export function exportSeriesListToCsv(
- seriesList,
- dateTimeFormat = DEFAULT_DATETIME_FORMAT,
- excel = false
- ) {
- var text = (excel ? 'sep=;\n' : '') + 'Series;Time;Value\n';
- _.each(seriesList, function(series) {
- _.each(series.datapoints, function(dp) {
- text +=
- series.alias +
- ';' +
- moment(dp[1]).format(dateTimeFormat) +
- ';' +
- dp[0] +
- '\n';
- });
- });
- saveSaveBlob(text, 'grafana_data_export.csv');
- }
- export function exportSeriesListToCsvColumns(
- seriesList,
- dateTimeFormat = DEFAULT_DATETIME_FORMAT,
- excel = false
- ) {
- var text = (excel ? 'sep=;\n' : '') + 'Time;';
- // add header
- _.each(seriesList, function(series) {
- text += series.alias + ';';
- });
- text = text.substring(0, text.length - 1);
- text += '\n';
- // process data
- var dataArr = [[]];
- var sIndex = 1;
- _.each(seriesList, function(series) {
- var cIndex = 0;
- dataArr.push([]);
- _.each(series.datapoints, function(dp) {
- dataArr[0][cIndex] = moment(dp[1]).format(dateTimeFormat);
- dataArr[sIndex][cIndex] = dp[0];
- cIndex++;
- });
- sIndex++;
- });
- // make text
- for (var i = 0; i < dataArr[0].length; i++) {
- text += dataArr[0][i] + ';';
- for (var j = 1; j < dataArr.length; j++) {
- text += dataArr[j][i] + ';';
- }
- text = text.substring(0, text.length - 1);
- text += '\n';
- }
- saveSaveBlob(text, 'grafana_data_export.csv');
- }
- export function exportTableDataToCsv(table, excel = false) {
- var text = excel ? 'sep=;\n' : '';
- // add header
- _.each(table.columns, function(column) {
- text += (column.title || column.text) + ';';
- });
- text += '\n';
- // process data
- _.each(table.rows, function(row) {
- _.each(row, function(value) {
- text += value + ';';
- });
- text += '\n';
- });
- saveSaveBlob(text, 'grafana_data_export.csv');
- }
- export function saveSaveBlob(payload, fname) {
- var blob = new Blob([payload], { type: 'text/csv;charset=utf-8' });
- saveAs(blob, fname);
- }
|