gpt4 book ai didi

javascript - 如何使用 Excel Javascript Addins 计算所有非空白单元格?

转载 作者:行者123 更新时间:2023-12-01 00:45:59 26 4
gpt4 key购买 nike

我正在创建一个 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 中找不到任何有用的内容。或在线工作示例。有谁知道我做错了什么?

最佳答案

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

 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 .

关于javascript - 如何使用 Excel Javascript Addins 计算所有非空白单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57361253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com