2

Napa を使った初日のハッキングで苦労しています...

TableData のバインディング プロセスを理解するのに苦労しています。Matrix タイプを使用して簡単な例を作成し、既存のテーブルからデータを読み取ることができます。

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

具体的には、スローされるエラーは「データ書き込みエラー」、「指定されたデータ オブジェクト タイプはサポートされていません」です。

私は何を間違っていますか?

また、シート上にテーブルをプログラムで生成できますか?

ありがとう!

4

1 に答える 1

0

あはは!私は答えに出くわしたと思います.... Office.BindingType.Table から返されるバインディングは、addRowsAsync を含む追加のメソッドを持つ抽象クラス BindingTable です。

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

});

于 2012-09-21T17:56:45.990 に答える