Excel Javascript API 获取多个工作表的位置

Excel Javascript API fetch position of multiple sheets

如何使用 Excel Javascript API 获取两个作品 sheet 的位置?

下面是一个 sheet:

的工作原理
Excel.run(function (ctx) {
    var wSheetName = 'Sheet1';
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName);
    worksheet.load('position')
    return ctx.sync().then(function () {
        console.log(worksheet.position);
    });
});

=> 它将 0 记录到控制台

但是如果我试图获得两个工作的位置,它不会记录任何内容sheets:

Excel.run(function (ctx) {
    var wSheetName = 'Sheet1';
    var wSheetName2 = 'Evars';
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName);
    var worksheet2 = ctx.workbook.worksheets.getItem(wSheetName2);
    worksheet.load('position')
    worksheet2.load('position')
    return ctx.sync().then(function () {
        console.log(worksheet.position);
        console.log(worksheet2.position);
    });
});

找到解决方案here ...也许这会对某人有所帮助

Excel.run(function (ctx) {
    var worksheets = ctx.workbook.worksheets;
    worksheets.load('items');
    return ctx.sync().then(function () {
        for (var i = 0; i < worksheets.items.length; i++) {
            var sheet_name = worksheets.items[i].name;
            var sheet_position = worksheets.items[i].position;
        }
    });

我刚试过你的代码,它工作正常。我想知道您是否只是没有这些名称之一的 sheet,所以它抛出了一个异常——这对您来说是无声的,因为您没有捕获处理程序。

下面的代码与您的代码基本相同,但带有 catch 语句,可以正常工作:

Excel.run(function(ctx) {
    var wSheetName = 'Sheet1';
    var wSheetName2 = 'Sheet2';
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName);
    var worksheet2 = ctx.workbook.worksheets.getItem(wSheetName2);
    worksheet.load('name, position')
    worksheet2.load('name, position')
    return ctx.sync().then(function () {
        console.log(worksheet.name + ": " + worksheet.position);
        console.log(worksheet2.name + ": " + worksheet2.position);
    });
}).catch(function(error) {
    OfficeHelpers.UI.notify(error);
    OfficeHelpers.Utilities.log(error);
})

您可以在新的 Script Lab (https://aka.ms/getscriptlab). Simply install the Script Lab add-in (free), then choose "Import" in the navigation menu, and use the following GIST URL: https://gist.github.com/Zlatkovsky/c61594f1c86970e8dba91fe94b7ca4b6. See more info about importing snippets to Script Lab.

中单击五下即可实时试用此代码段