0

图表系列类的 setSolidColor 方法在 Excel 1907 Build 11901.20080 中引发错误,但在 Excel 1902 Build 11328.20116 中没有。

为了演示错误,我修改了 Script Lab 中的示例,特别是“图表”下的部分,称为“创建图表 - 创建集群的列,线,...”。

数据设置是必需的,这里是来自 Scirptlab 的代码。这不演示错误只是设置数据。

async function setup() {
  await Excel.run(async (context) => {
    context.workbook.worksheets.getItemOrNullObject("Sample").delete();
    const sheet = context.workbook.worksheets.add("Sample");

    let expensesTable = sheet.tables.add("A1:E1", true);
    expensesTable.name = "SalesTable";
    expensesTable.getHeaderRowRange().values = [["Product", "Qtr1", "Qtr2", "Qtr3", "Qtr4"]];

    expensesTable.rows.add(null, [
      ["Frames", 5000, 7000, 6544, 4377],
      ["Saddles", 400, 323, 276, 651],
      ["Brake levers", 12000, 8766, 8456, 9812],
      ["Chains", 1550, 1088, 692, 853],
      ["Mirrors", 225, 600, 923, 544],
      ["Spokes", 6005, 7634, 4589, 8765]
    ]);

    sheet.getUsedRange().format.autofitColumns();
    sheet.getUsedRange().format.autofitRows();

    sheet.activate();
    await context.sync();
  });
}

演示错误的代码如下。注意唯一添加的是折线图.series.getItemAt(0).format.fill.setSolidColor("CCCCCC");

这会引发错误“当前对象不允许此操作。”

async function createAreaStackedChart() {
  await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Sample");
    const salesTable = sheet.tables.getItem("SalesTable");
    const dataRange = salesTable.getDataBodyRange();

    let chart = sheet.charts.add("AreaStacked", dataRange, "Auto");

    chart.setPosition("H1", "M15");
    chart.title.text = "Quarterly sales chart";
    chart.legend.position = "Bottom";
    chart.legend.format.fill.setSolidColor("white");
    chart.dataLabels.format.font.size = 15;
    chart.dataLabels.format.font.color = "black";
    chart.series.getItemAt(0).name = "Q1";
    chart.series.getItemAt(1).name = "Q2";
    chart.series.getItemAt(2).name = "Q3";
    chart.series.getItemAt(3).name = "Q4";
    chart.series.getItemAt(0).format.fill.setSolidColor("CCCCCC"); //only addition
    await context.sync();
  });
}

我只在 Excel 1907 Build 11901.20080 中看到了错误,但在 Excel 1902 Build 11328.20116 中没有出现。

4

0 回答 0