如何从highchart数据填写表格?

时间:2018-07-02 11:52:32

标签: javascript jquery highcharts

如果我有一个图表和一个如下表,我想将图表数据传递到表格单元格中。我将如何通过?

Highcharts.chart('container', {
chart: {
    type: 'bar'
},
series: {
    data: [100,200, 300],
        },   
});
<div id="container"></div>
<table id="dataTable">
  <thead>
    <tr>
      <th>First Column</th>
      <th>Second Column</th>
      <th>Third Column</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </tbody>
</table>

1 个答案:

答案 0 :(得分:1)

这是使用Highcharts和jQuery用图表中的数据填充HTML表格单元格的基本方法。

首先,我们要在表格中设置一个占位符行,以填充数据。我为该行指定了RowToFill的ID,以便我们可以在Javascript中引用它。

HTML:

<div id="container" style="height: 400px"></div>

<table id="dataTable">
    <thead>
        <tr>
            <th>First Column</th>
            <th>Second Column</th>
            <th>Third Column</th>
        </tr>
    </thead>
    <tbody>
        <tr id="RowToFill">
        </tr>
    </tbody>
</table>

接下来,我们将遍历图表数据,并使用jQuery append()函数将表单元格添加到占位符行中。

Javascript:

/* set the chart to a variable so you can get to the data later */
var thisChart = Highcharts.chart('container', {
    chart: {
        type: 'bar'
    },
    xAxis: {
        categories: ['A', 'B', 'C']
    },
    series: [{
        data: [100,200,300]
    }]
});

/* go through each item in the chart series */
$(thisChart.series[0].data).each(function( index ) {
    /* add a table cell to the row where it should go */
    $('#RowToFill').append('<td>' + this.y + '</td>');
});

以下是该解决方案的有效提要:http://jsfiddle.net/brightmatrix/5ad8fgzp/

要使其更加灵活,可以修改此函数以首先遍历x轴类别列表以创建表标题行。这样可以使表格主体行中的单元格数量与图表中的数据点数量相匹配。

我希望这对您有帮助。