【问题标题】:office.js code after context.sync not runningcontext.sync 之后的 office.js 代码未运行
【发布时间】:2020-05-22 14:04:41
【问题描述】:

我在使用我正在编写的 office.js 插件从 excel 文件中提取值时遇到问题。

插件将帮助我的同事为每位老师准备报告表。 它应该从主表中过滤相应的课程并将数据发送到下一个处理步骤(为每个教师创建单词文件)。

我尝试使用自动过滤器过滤范围并使用数据创建表,但似乎在return context.sync() 之后没有执行任何代码

我已经阅读了官方教程和 buildingofficeaddins.com 上的一些代码,但是我的函数在“return context.sync()”之后从不执行代码

function mselectTeacher(teachers) {
  Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    var lfv = sheet.tables.add("A1:M211", true);
    var wsy = lfv.columns.getItem("WS/SS");
    var studium = lfv.columns.getItem("Studium");
    // some more colums

    wsy.load("values");
    studium.load("values");

    return context.sync()
      .then(function () {

//I actually want to filter the rows by teacher, 
//this is only for testing
        for (var i = 1; i < 20; i++) {
          console.log(wsy[i] + "," + studium[i]);
        }
    });
  });
}

问题是我从另一个函数中调用 Excel.run 吗?

【问题讨论】:

    标签: excel office-js


    【解决方案1】:

    你能试试这个吗?

    function mselectTeacher(teachers) {
      Excel.run(function (context) {
        var sheet = context.workbook.worksheets.getActiveWorksheet();
        var lfv = sheet.tables.add("A1:M211", true);
        var wsy = lfv.columns.getItem("WS/SS");
        var studium = lfv.columns.getItem("Studium");
        // some more colums
    
        wsy.load("values");
        studium.load("values");
    
       context.sync()
    
    //I actually want to filter the rows by teacher, 
    //this is only for testing
            for (var i = 1; i < 20; i++) {
              console.log(wsy[i] + "," + studium[i]);
            }
    
      });
    }
    

    【讨论】:

    • 感谢您的回复。我已经尝试了你的建议并且执行了 console.log,但是值是未定义的,并且捕获了一个 rich.api 错误,抱怨没有返回任何 promise 对象。
    【解决方案2】:

    我在 excel web 上的 ScriptLab 中尝试了您的代码,并在 F12 中看到“请求的资源不存在”错误

    我认为这是由于您新添加的表格中没有名为“WS/SS”“Studium”的列。在我用“WS/SS”“Studium”更改列名后它可以工作

    【讨论】:

    • 感谢您的回复,工作簿实际上是我们的上级准备的,所以工作表大部分都是值,然后我创建了表格。
    • 那么您确定 A1:M211 中的表格有“WS/SS”“Studium”列吗?
    • 是的,我确定。标题是; [“WS/SS”、“Studium”、“Sem.”、“Gruppe”、“Gruppengröße”、“Modul”、“Modultitel”、“LV-Nummer / Funktion NEU”、“LV-Titel”、“LV- Typ”、“Credits”、“L-SWSt”、“Personen-Kürzel”]
    • 你能不能用ScriptLab在excel上在线尝试你的代码,并使用浏览器的F12查看控制台中是否有任何错误来帮助诊断
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2021-01-09
    • 2014-11-06
    • 1970-01-01
    • 2015-05-18
    相关资源
    最近更新 更多