Office365 setDataAsync与Office.胁迫类型.Table

Office365 setDataAsync与Office.胁迫类型.Table,office365,Office365,我第一天用Napa进行黑客攻击,我正在挣扎 我正在努力理解TableData的绑定过程。我用矩阵类型制作了一个简单的示例,可以从现有表中读取数据: Office.context.document.bindings.addFromNamedItemAsync("Sheet1!Table1", Office.BindingType.Table, { id: "bindingTable" }, function (asyncResult) { if (asyncResult.status ==

我第一天用Napa进行黑客攻击,我正在挣扎

我正在努力理解TableData的绑定过程。我用矩阵类型制作了一个简单的示例,可以从现有表中读取数据:

Office.context.document.bindings.addFromNamedItemAsync("Sheet1!Table1", Office.BindingType.Table, { id: "bindingTable" }, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        asyncResult.value.getDataAsync(function (asyncResult) {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                console.log(asyncResult.value);
            }
        });
    }
});
但我无法将数据写入表:

Office.context.document.bindings.addFromNamedItemAsync("Sheet1!Table1", Office.BindingType.Table, { id: "bindingTable" }, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        var myTable = new Office.TableData;
        myTable.headers = [["ID"],["Name"]];
        myTable.rows = [[1,"Fred"],[2,"Jane"]];
        asyncResult.value.setDataAsync(myTable, { coercionType: Office.CoercionType.Table }, function (asyncResult) {
            console.log(asyncResult.status);
        });
    }
});
具体来说,抛出的错误是“数据写入错误”,“不支持提供的数据对象类型”

我做错了什么

另外,我可以在工作表上以编程方式生成表吗


谢谢

啊哈!我想我可能偶然发现了答案。。。。从Office.BindingType.Table返回的绑定是一个抽象类BindingTable,它具有其他方法,包括addRowsAsync

Office.context.document.bindings.addFromNamedItemAsync("Sheet1!Table1", Office.BindingType.Table, { id: "bindingTable" }, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        asyncResult.value.addRowsAsync([[3, "Henry"]], null, function (asyncResult) {
        console.log(asyncResult.status);
    });
}

}))

啊哈!我想我可能偶然发现了答案。。。。从Office.BindingType.Table返回的绑定是一个抽象类BindingTable,它具有其他方法,包括addRowsAsync

Office.context.document.bindings.addFromNamedItemAsync("Sheet1!Table1", Office.BindingType.Table, { id: "bindingTable" }, function (asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        asyncResult.value.addRowsAsync([[3, "Henry"]], null, function (asyncResult) {
        console.log(asyncResult.status);
    });
}

}))

如果这个解决方案对你有效,那么接受你的答案作为你问题的解决方案如果这个解决方案对你有效,那么接受你的答案作为你问题的解决方案