Включить скрытые серии в экспортированный CSV с помощью Highcharts v8.0 - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть рабочая гистограмма Highcharts с двумя сериями, которая корректно экспортируется в CSV. Я добавил скрытую серию ROUND , которая должна быть включена в экспортированные данные CSV. Установка свойства includeInDataExport в true предполагает, что это произойдет. Однако, это не работает для меня, и я не нашел пример, показывающий, как правильно использовать это свойство.

Вот текущие параметры графика.

{
  chart: {
    type: "bar"
    marginTop: 30
    spacingRight: 50
    style: {
      fontWeight: "400",
      fontFamily: "Montserrat"
    }
  },
  title: {
    text: ""
  }
  xAxis: {
    categories: Array(7),
    lineWidth: 1
  }
  yAxis: {
    min: 0,
    lineWidth: 1
  }
  legend: {
    reversed: true,
    itemStyle: {
    }
  }
  tooltip: {
    headerFormat: "COMPANY: {point.x}<br/>",
    pointFormat: "{series.name}: <b>${point.y}</b>"
  }
  plotOptions: {
    bar: {
      dataLabels: {
        enabled: true
      },
      includeInDataExport: true
    },
    series: {
      colorByPoint: true,
      includeInDataExport: true
    }
  }
  series: [
    {
      name: "ROUND",
      data: [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      visible: false,
      showInLegend: false
    },
    {
      name: "P2",
      data: [
        230.3,
        228.25,
        217.72,
        243.34,
        235.56,
        205.73,
        252.83
      ]
    },
    {
      name: "P1",
      data: [
        115.15,
        115.58,
        104.2,
        115.58,
        113.34,
        101.27,
        121.3
      ]
    }
  ]
}}

1 Ответ

0 голосов
/ 28 февраля 2020

Кажется, что текущие логи Highcharts c не позволяют получать данные CSV из серии, для которой видимое значение установлено в false, см. https://github.com/highcharts/highcharts/blob/master/js/modules/export-data.src.js#L350

Из этого кода Кажется, в прошлом у кого-то была цель из-за какой-то ошибки, но я не уверен, что сейчас об этом думать. Если вы хотите, вы можете запустить поток в канале выпуска Highcharts Github: https://github.com/highcharts/highcharts/issues

В качестве обходного пути я предлагаю использовать эту логику c только без этого условия о видимости серии:

Демо: https://jsfiddle.net/BlackLabel/n5za1q3x/

   this.series.forEach(function(series) {
     var keys = series.options.keys,
       pointArrayMap = keys || series.pointArrayMap || ['y'],
       valueCount = pointArrayMap.length,
       xTaken = !series.requireSorting && {},
       xAxisIndex = xAxes.indexOf(series.xAxis),
       categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap),
       mockSeries, j;
     if (series.options.includeInDataExport !== false &&
       !series.options.isInternal // #55
     ) {
.........
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...