如何将HighChart系列重新格式化为CSV导出

时间:2017-01-27 20:40:42

标签: javascript csv highcharts

我们正在使用HighCharts 4.2.2和export-csv插件。

这就是我们的CSV导出:

enter image description here

现在 AAPL 有3列,但我们只关心y列。以下代码是我们尝试从priceLine系列选项对象中删除其他2个键(xend)。

const updatePriceLine = (chart) => {
    const priceLine = chart.get('series-priceline');
    const prices = priceLine.data.map(point => point.y);
    console.log('prices', prices)
    priceLine.update({ keys: ['price'] });
    priceLine.data = prices;
    console.log('priceLine.data', chart.get('series-priceline').data)
    return chart;
};

上述内容有助于删除xend列,但y列中没有任何内容。

我认为我们的新数据数组需要是一个带有y键的对象数组,所以尝试了这个更新的函数,但是也没有用:

const updatePriceLine = (chart) => {
    const priceLine = chart.get('series-priceline');

    const prices = priceLine.data.map((point) => {
        return {
            y: point.y
        };
    });

    priceLine.update({ keys: ['y'] });
    priceLine.data  = prices;
    console.log('priceLine.data', chart.get('series-priceline').data)
    return chart;
};

priceLine.data

enter image description here

priceLine.keys

enter image description here

^原始密钥

删除额外的键/列后:

enter image description here

现在CSV已删除AAPL(x)和AAPL(结束)列,但AAPL列中没有数据:(

enter image description here

1 个答案:

答案 0 :(得分:1)

终于想通了!

必须删除我将系列设置为const

的行
const updatePriceLine = (chart) => {
    // const priceLine = chart.get('series-priceline');
    const prices = chart.get('series-priceline').data.map((point) => {
        return {
            x: point.x,
            y: point.y
        };
    });

    chart.get('series-priceline').update({ keys: ['y'] });
    chart.get('series-priceline').setData(prices)
    return chart;
};

所以直接在.update上调用.setDatachart.get('series-priceline')