Создание таблицы в Binding Office JS Word для управления контентом - PullRequest
0 голосов
/ 28 ноября 2018

Сначала я попытался создать привязку для типа таблицы в слове.Но я получил ошибку и обнаружил, что создать привязку для Rich Text Content Control можно только в слове.

Поэтому я попытался создать таблицу внутри элемента управления, для которого я создалПривязка и я получил эту ошибку: «Тип указанного объекта данных не совместим с текущим выбором».Когда я посмотрел на прототип для setDataAsync (), он разрешает все виды данных, включая строку, матрицу, табличный объект и т. Д. Но в моем случае, хотя вставка строки работает нормально, но я получаю ошибку, упомянутую выше, когда пытаюсьвставьте объект таблицы.Вот мой код:

Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Text, { id: this.state.id.toString() }, (asyncResult) => {
        if (asyncResult.status == Office.AsyncResultStatus.Failed) {
            OfficeHelpers.UI.notify(asyncResult.error);
            OfficeHelpers.Utilities.log(asyncResult.error);
        }
        else {
            let myTable = new Office.TableData();
            myTable.headers = ["First Name", "Last Name", "Grade"];
            myTable.rows = [["Brittney", "Booker", "A"], ["Sanjit", "Pandit", "C"], ["Naomi", "Peacock", "B"]];

            //Setting result value to the created binding
            asyncResult.value.setDataAsync(myTable, { coercionType: Office.CoercionType.Table }, (df) => {
                if (df.status == Office.AsyncResultStatus.Failed) {
                    OfficeHelpers.UI.notify(df.error);
                    OfficeHelpers.Utilities.log(df.error);
                }
            });
            //Attaching onSelect Event Handler to the binding
            asyncResult.value.addHandlerAsync(Office.EventType.BindingSelectionChanged, this._controlSelected);
        }
    });

Я смотрел на эту похожую тему: Office Word JS - управление контентом из таблицы выбора , и код в этом тоже отлично работает, но здесь онисначала создали таблицу, а затем обернули ее внутри элемента управления контентом.Я хотел попробовать это наоборот, и поэтому я просто хотел понять это сообщение об ошибке и почему я его получаю.

...