【问题标题】:How to count all non-blank cells using Excel Javascript Addins?如何使用 Excel Javascript 插件计算所有非空白单元格?
【发布时间】:2019-08-05 15:00:22
【问题描述】:

我正在创建一个 office js 插件,它将表 1 底部的数据插入到表 2 中,但我找不到可行的方法。

我尝试过使用Excel.Functions.countA(),但我似乎无法从中获得除 NaN 以外的值。这是我正在使用的代码:

async function run() {
  try {
    await Excel.run(async context => {

      var sheet1Name = "Sheet1";
      var sheet1RangeAddress = "B:B";
      var sheet2Name = "Sheet2";
      var sheet2RangeAddress = "A2:P2";

      var sheet2Range = context.workbook.worksheets.getItem(sheet2Name).getRange(sheet2RangeAddress);

      sheet2Range.insert("Down");

      var sheet1CellAddress = context.workbook.worksheets.getItem(sheet1Name).getRange(sheet1RangeAddress).load("address");
      var sheet1RangeLength = Number(context.workbook.functions.countA(sheet1CellAddress));
      var sheet1LastCell = context.workbook.worksheets.getItem(sheet1Name).getRangeByIndexes(3,1,sheet1RangeLength,1).getLastCell();

      var sheet2Cell = context.workbook.worksheets.getItem(sheet2Name).getRange("A2");
      sheet2Cell.values = [[ context.workbook.worksheets.getItem(sheet2Name).getRange("A2").copyFrom(sheet1LastCell) ]]

      await context.sync();
    });
  } catch (error) {
    console.error(error);
  }
}

我在 Microsoft 的 documentation 或在线工作示例中找不到任何有用的信息。有谁知道我做错了什么?

【问题讨论】:

    标签: javascript excel typescript office-js office-addins


    【解决方案1】:

    您的代码中的这一行看起来有问题:

     var sheet1RangeLength = Number(context.workbook.functions.countA(sheet1CellAddress));
    

    Functions.countA 方法返回一个 Excel.FunctionResult 对象,我认为它不能转换为数字。函数返回的计数将在返回对象的value 属性中。您需要加载该值才能读取它。试试这两行作为替代:

     var sheet1RangeLength = context.workbook.functions.countA(sheet1CellAddress).load("value");
     await context.sync();
    

    顺便说一句,以下行返回的是 Range 对象,而不是地址。没关系,因为 countA 接受 Range 对象参数,但您的变量被误导性命名。另外,我认为最后的load("address") 没有任何作用。

    var sheet1CellAddress = context.workbook.worksheets.getItem(sheet1Name).getRange(sheet1RangeAddress).load("address");
    

    如果您还没有,请参阅这篇文章:Call built-in Excel worksheet functions

    【讨论】:

    • 非常感谢您的澄清!现在一切正常!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多