Excel Javascript API – 添加具有类别轴值的图表

我正在添加\通过以下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 

我遇到的问题是每个列被视为一个单独的系列,并在图表中呈现2行。 我只想要一条线和分类轴来包含年份。 有谁知道这是可能的吗?

截图:

例

克里斯,

当前用于创build图表的Excel的JavaScript API并不能控制Excel如何构build图表的序列和坐标轴。 当使用ChartCollection.add()方法时,您取决于Excel推荐的图表algorithm的“智能”,在这个特殊情况下,第一个答案不是您所期望的。

我们的API积压项目中有一个项目,可以为图表提供更为细致的控制,类似于其他Excel API中可用的控制。 在这个时候,我不能说这将在API中可用。 我鼓励您遵循我们的开放式规范stream程来提高水平,并有机会对我们的devise给予反馈。

作为您的具体情况的解决方法,我build议您尝试使用第一列而不是数字的date值。 您可以格式化该列以仅显示date的年份部分:

 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。

在这里输入图像说明

雅各布