在Office-JS中识别活动图表和选定的图表元素

时间:2018-03-12 01:14:28

标签: excel charts office-js

我拼凑了一些JavaScript来标记图表中每个系列的最后一点(见下文)。这是VBA加载项中常用功能的简化版本。

我使用let mychart = mysheet.charts.getItemAt(0);指定代码应该在工作表上的第一个图表对象上运行。在用户选择的图表上运行代码会更有用。

  1. 如何识别用户选择的图表(VBA中的ActiveChart)?
  2. 同样,我使用for (var iseries = 0; iseries < nseries; iseries++)来运行图表中所有系列的代码。在用户选择的特定系列上运行代码会更有用。

    1. 如何确定用户选择了图表中的哪个系列(与VBA中的TypeName(Selection)相关)?
    2. 这是我的Office-JS代码:

          $("#run").click(() => tryCatch(labelLastPoint));
          //$("#label-last-point").click(labelLastPoint);
          async function labelLastPoint() {
              await Excel.run(async (context) => {
                  let mysheet = context.workbook.worksheets.getActiveWorksheet();
                  let mychart = mysheet.charts.getItemAt(0);
      
                  let seriescollection = mychart.series;
                  seriescollection.load("count");
                  await context.sync();
                  console.log("Number of Series: " + seriescollection.count);
                  let nseries = seriescollection.count;
      
                  for (var iseries = 0; iseries < nseries; iseries++) {
                      console.log("- Series Number " + iseries);
                      let myseries = seriescollection.getItemAt(iseries);
                      let pointcollection = myseries.points;
                      pointcollection.load("count");
                      await context.sync();
                      let npoints = myseries.points.count;
                      let mypoint = myseries.points.getItemAt(npoints - 1);
                      mypoint.hasDataLabel = true;
                      mypoint.dataLabel.showSeriesName = true;
                      mypoint.dataLabel.showValue = false;
                  }
              });
          }
      

1 个答案:

答案 0 :(得分:1)

据我了解,您正在寻找可能被称为“getSelectedChart”和“getSelectedSeries”的API方法。我担心Office JS中没有API可以做到这一点。但这是个好主意。请在Office Developer User Voice建议。

Shared Office JS API中有一个getSelectedDataAsync方法,但它不支持图表或系列。

与此同时,在您的方案中是否可以在任务窗格中下拉,用户可以在其中按标题指定感兴趣的图表/系列?