file_export.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ///<reference path="../../headers/common.d.ts" />
  2. import _ from 'lodash';
  3. import moment from 'moment';
  4. declare var window: any;
  5. const DEFAULT_DATETIME_FORMAT: String = 'YYYY-MM-DDTHH:mm:ssZ';
  6. export function exportSeriesListToCsv(seriesList, dateTimeFormat = DEFAULT_DATETIME_FORMAT) {
  7. var text = 'Series;Time;Value\n';
  8. _.each(seriesList, function(series) {
  9. _.each(series.datapoints, function(dp) {
  10. text += series.alias + ';' + moment(dp[1]).format(dateTimeFormat) + ';' + dp[0] + '\n';
  11. });
  12. });
  13. saveSaveBlob(text, 'grafana_data_export.csv');
  14. }
  15. export function exportSeriesListToCsvColumns(seriesList, dateTimeFormat = DEFAULT_DATETIME_FORMAT) {
  16. var text = 'Time;';
  17. // add header
  18. _.each(seriesList, function(series) {
  19. text += series.alias + ';';
  20. });
  21. text = text.substring(0,text.length-1);
  22. text += '\n';
  23. // process data
  24. var dataArr = [[]];
  25. var sIndex = 1;
  26. _.each(seriesList, function(series) {
  27. var cIndex = 0;
  28. dataArr.push([]);
  29. _.each(series.datapoints, function(dp) {
  30. dataArr[0][cIndex] = moment(dp[1]).format(dateTimeFormat);
  31. dataArr[sIndex][cIndex] = dp[0];
  32. cIndex++;
  33. });
  34. sIndex++;
  35. });
  36. // make text
  37. for (var i = 0; i < dataArr[0].length; i++) {
  38. text += dataArr[0][i] + ';';
  39. for (var j = 1; j < dataArr.length; j++) {
  40. text += dataArr[j][i] + ';';
  41. }
  42. text = text.substring(0,text.length-1);
  43. text += '\n';
  44. }
  45. saveSaveBlob(text, 'grafana_data_export.csv');
  46. }
  47. export function exportTableDataToCsv(table) {
  48. var text = '';
  49. // add header
  50. _.each(table.columns, function(column) {
  51. text += (column.title || column.text) + ';';
  52. });
  53. text += '\n';
  54. // process data
  55. _.each(table.rows, function(row) {
  56. _.each(row, function(value) {
  57. text += value + ';';
  58. });
  59. text += '\n';
  60. });
  61. saveSaveBlob(text, 'grafana_data_export.csv');
  62. }
  63. export function saveSaveBlob(payload, fname) {
  64. var blob = new Blob([payload], { type: "text/csv;charset=utf-8" });
  65. window.saveAs(blob, fname);
  66. }