2017-05-16 3 views
0

Wie kann ich die Position von zwei Arbeitsblättern mit der Excel Javascript API bekommen?Excel Javascript API holen Position von mehreren Blättern

Hier ist, wie es nur für ein Blatt funktioniert:

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); 
    }); 
}); 

=> es meldet sich 0 an die Konsole

Aber es meldet sich nichts, wenn ich versuche, die Position für zwei Arbeitsblätter zu erhalten :

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); 
    }); 
}); 

Antwort

0

Ich habe gerade versucht, Ihren Code, und es funktioniert gut. Ich frage mich, ob Sie nicht einfach ein Blatt mit einem dieser Namen hatten, und deshalb gab es eine Ausnahme - die Ihnen als still vorkam, da Sie keinen Catch-Handler hatten.

Der Code unten, im wesentlichen das gleiche wie Sie, aber mit einer catch-Anweisung, funktioniert einwandfrei:

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); 
}) 

Sie diese Schnipsel live ausprobieren können buchstäblich fünf Klicks in der neuen Script Lab (https://aka.ms/getscriptlab). Installieren Sie einfach das Script Lab-Add-In (kostenlos), wählen Sie dann "Importieren" im Navigationsmenü und verwenden Sie die folgende GIST-URL: https://gist.github.com/Zlatkovsky/c61594f1c86970e8dba91fe94b7ca4b6. Siehe more info about importing snippets to Script Lab.

0

die Lösung vielleicht gefunden here ... das jemand

helfen
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; 
     } 
    }); 
Verwandte Themen