file_export.ts 2.0 KB

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