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

Excel Javascript API获取多张工作表的位置,javascript,excel,office365,office-js,office-addins,Javascript,Excel,Office365,Office Js,Office Addins,如何使用ExcelJavaScript API获取两个工作表的位置 以下是一张图纸的工作原理: Excel.run(function (ctx) { var wSheetName = 'Sheet1'; var worksheet = ctx.workbook.worksheets.getItem(wSheetName); worksheet.load('position') return ctx.sync().then(function () {

如何使用
ExcelJavaScript API
获取两个工作表的位置

以下是一张图纸的工作原理:

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
记录到控制台

但如果我试图获得两张工作表的职位,它不会记录任何内容:

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);
    });
});
找到了解决方案。。。也许这会有帮助

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;
        }
    });
Excel.run(函数(ctx){
var worksheets=ctx.workbook.worksheets;
工作表。加载(“项目”);
返回ctx.sync().then(函数(){
对于(变量i=0;i
我刚刚尝试了您的代码,它运行得很好。我想知道您是否只是没有这些名称旁边的工作表,因此它引发了一个异常——在您看来它是无声的,因为您没有catch处理程序

下面的代码基本上与您的代码相同,但带有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);
})
您可以在new Script Lab()中单击五下,尝试使用此代码段。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下要点URL:。请参阅