Excel Javascript API-添加带有类别轴值的图表

Excel Javascript API-添加带有类别轴值的图表,javascript,excel,charts,office-js,Javascript,Excel,Charts,Office Js,我正在通过以下JS调用向Excel添加\插入折线图: var newSheet = ctx.workbook.worksheets.add(); newSheet.activate(); // populate grid // category (axis) var cell = newSheet.getCell(0, 0) ... // values (axis) cell = newSheet.getCell(0, 1)

我正在通过以下JS调用向Excel添加\插入折线图:

    var newSheet = ctx.workbook.worksheets.add();
    newSheet.activate();

    // populate grid
    // category (axis)
    var cell = newSheet.getCell(0, 0)
    ...

    // values (axis)
    cell = newSheet.getCell(0, 1)
    ...

    var range = newSheet.getUsedRange();
    newSheet.charts.add("Line", range);
我的“范围”数据如下所示:

2012  10
2013  20
2014  30
2015  40
2016  50
我遇到的问题是,每一列都被视为一个单独的系列,图表中呈现了两行。我只想一条线和类别轴包含年份。有人知道这是否可能吗

截图:

克里斯

当前用于创建图表的JavaScriptAPI for Excel不能让您控制Excel如何为图表构造序列和轴。使用该方法时,您依赖于Excel推荐的图表算法的“智能”,在这种特殊情况下,它给出的答案不是您期望的第一个答案

我们的API待办事项中有一项可以为图表提供更细粒度的控制,类似于其他Excel API中提供的控制。在这个时候,我不能说什么时候这将在API中可用。我鼓励您按照我们的建议进行操作,以便获得一个机会,对我们的设计提供反馈

作为您的特殊情况的解决方法,我建议您尝试在第一列中使用日期值,而不是数字。您可以设置列的格式以仅显示日期的年份部分:

async function run() {
try {
    await Excel.run(async (context) => {
        var sheet = context.workbook.worksheets.getActiveWorksheet();

        let data = [
            ["Year", "Measure"],
            ["2010-12-31", 10],
            ["2011-12-31", 20], 
            ["2012-12-31", 30], 
            ["2013-12-31", 40],
            ["2014-12-31", 50],
        ];
        let format = [
            ["@"],
            ["yyyy"],
            ["yyyy"],
            ["yyyy"],
            ["yyyy"],
            ["yyyy"]
        ];

        let categories = sheet.getRange("A1:A6");
        categories.numberFormat = format;
        var range = sheet.getRange("A1:B6");
        range.values = data;

        sheet.charts.add(Excel.ChartType.line, range, Excel.ChartSeriesBy.columns);

        await context.sync();
    });
}
catch (error) {
    OfficeHelpers.Utilities.log(error);
}
}

此代码段使用async/await以TypeScript编写,但很容易翻译为JavaScript

雅各布