Поделиться через


Office.Binding interface

Представляет привязку к разделу документа.

Объект Binding предоставляет функциональные возможности, которыми обладают все привязки независимо от типа.

Объект Binding никогда не вызывается напрямую. Это абстрактный родительский класс объектов, представляющих каждый тип привязки: Office.MatrixBinding, Office.TableBinding или Office.TextBinding. Все три этих объекта наследуют методы getDataAsync и setDataAsync от объекта Binding, которые позволяют взаимодействовать с данными в привязке. Они также наследуют свойства идентификатора и типа для запроса этих значений свойств. Кроме того, объекты MatrixBinding и TableBinding предоставляют дополнительные методы для работы с матрицами и таблицами, например, для подсчета количества строк и столбцов.

Комментарии

Приложения: Word, Excel (не рекомендуется, вместо него используйте Excel.Binding)

Наборы обязательных элементов:

Свойства

document

Получите объект Document, связанный с привязкой.

id

Строка, однозначно идентифицирующая эту привязку среди привязок в том же объекте Office.Document .

type

Получает тип привязки.

Методы

addHandlerAsync(eventType, handler, options, callback)

Добавляет обработчик событий в объект для указанного объекта Office.EventType. Поддерживаемыми типами событий являются Office.EventType.BindingDataChanged и Office.EventType.BindingSelectionChanged.

addHandlerAsync(eventType, handler, callback)

Добавляет обработчик событий в объект для указанного объекта Office.EventType. Поддерживаемыми типами событий являются Office.EventType.BindingDataChanged и Office.EventType.BindingSelectionChanged.

getDataAsync(options, callback)

Возвращает данные, содержащиеся в привязке.

getDataAsync(callback)

Возвращает данные, содержащиеся в привязке.

removeHandlerAsync(eventType, options, callback)

Удаляет указанный обработчик из привязки для указанного типа события.

removeHandlerAsync(eventType, callback)

Удаляет указанный обработчик из привязки для указанного типа события.

setDataAsync(data, options, callback)

Записывает данные в привязанный раздел документа, представленный указанным объектом привязки.

setDataAsync(data, callback)

Записывает данные в привязанный раздел документа, представленный указанным объектом привязки.

Сведения о свойстве

document

Получите объект Document, связанный с привязкой.

document: Office.Document;

Значение свойства

Примеры

Office.context.document.bindings.getByIdAsync("myBinding", function (asyncResult) {
    write(asyncResult.value.document.url);
});

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

id

Строка, однозначно идентифицирующая эту привязку среди привязок в том же объекте Office.Document .

id: string;

Значение свойства

string

Примеры

Office.context.document.bindings.getByIdAsync("myBinding", function (asyncResult) {
    write(asyncResult.value.id);
});

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

type

Получает тип привязки.

type: Office.BindingType;

Значение свойства

Примеры

Office.context.document.bindings.getByIdAsync("MyBinding", function (asyncResult) { 
    write(asyncResult.value.type); 
}) 

// Function that writes to a div with id='message' on the page. 
function write(message){ 
    document.getElementById('message').innerText += message;  
}

Сведения о методе

addHandlerAsync(eventType, handler, options, callback)

Добавляет обработчик событий в объект для указанного объекта Office.EventType. Поддерживаемыми типами событий являются Office.EventType.BindingDataChanged и Office.EventType.BindingSelectionChanged.

addHandlerAsync(eventType: Office.EventType, handler: any, options?: Office.AsyncContextOptions, callback?: (result: Office.AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Тип события. Для привязок это может быть Office.EventType.BindingDataChanged или Office.EventType.BindingSelectionChanged.

handler

any

Добавляемая функция обработчика событий, единственный параметр которой имеет тип Office.BindingDataChangedEventArgs или Office.BindingSelectionChangedEventArgs.

options
Office.AsyncContextOptions

Предоставляет возможность сохранения данных контекста любого типа без изменений для использования в обратном вызове.

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult.

Возвращаемое значение

void

Комментарии

Набор обязательных элементов: BindingEvents

Можно добавить несколько обработчиков событий для указанного eventType, если имя каждой функции обработчика событий является уникальным.

addHandlerAsync(eventType, handler, callback)

Добавляет обработчик событий в объект для указанного объекта Office.EventType. Поддерживаемыми типами событий являются Office.EventType.BindingDataChanged и Office.EventType.BindingSelectionChanged.

addHandlerAsync(eventType: Office.EventType, handler: any, callback?: (result: Office.AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Тип события. Для привязок это может быть Office.EventType.BindingDataChanged или Office.EventType.BindingSelectionChanged.

handler

any

Добавляемая функция обработчика событий, единственный параметр которой имеет тип Office.BindingDataChangedEventArgs или Office.BindingSelectionChangedEventArgs.

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult.

Возвращаемое значение

void

Комментарии

Набор обязательных элементов: BindingEvents

Можно добавить несколько обработчиков событий для указанного eventType, если имя каждой функции обработчика событий является уникальным.

Примеры

// The following code sample calls the select function of the Office object to access the binding
// with ID "MyBinding", and then calls the addHandlerAsync method to add a handler function 
// for the bindingDataChanged event of that binding.
function addEventHandlerToBinding() {
    Office.select("bindings#MyBinding").addHandlerAsync(
        Office.EventType.BindingDataChanged, onBindingDataChanged);
}

function onBindingDataChanged(eventArgs) {
    write("Data has changed in binding: " + eventArgs.binding.id);
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}
// To add an event handler for the BindingSelectionChanged event of a binding, 
// use the addHandlerAsync method of the Binding object.
// The event handler receives an argument of type BindingSelectionChangedEventArgs.
function addEventHandlerToBinding() {
    Office.select("bindings#MyBinding").addHandlerAsync(
        Office.EventType.BindingSelectionChanged, onBindingSelectionChanged);
}

function onBindingSelectionChanged(eventArgs) {
    write(eventArgs.binding.id + " has been selected.");
}
// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

getDataAsync(options, callback)

Возвращает данные, содержащиеся в привязке.

getDataAsync<T>(options?: GetBindingDataOptions, callback?: (result: AsyncResult<T>) => void): void;

Параметры

options
Office.GetBindingDataOptions

Предоставляет варианты получения данных в привязке.

callback

(result: Office.AsyncResult<T>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это значения в указанной привязке. coercionType Если параметр указан (и вызов выполнен успешно), данные возвращаются в формате, описанном в разделе Перечисление CoercionType.

Возвращаемое значение

void

Комментарии

Наборы обязательных элементов:

При вызове из MatrixBinding или TableBinding метод getDataAsync вернет подмножество связанных значений, если указаны необязательные параметры startRow, startColumn, rowCount и columnCount (и указывают смежный и допустимый диапазон).

getDataAsync(callback)

Возвращает данные, содержащиеся в привязке.

getDataAsync<T>(callback?: (result: AsyncResult<T>) => void): void;

Параметры

callback

(result: Office.AsyncResult<T>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это значения в указанной привязке. coercionType Если параметр указан (и вызов выполнен успешно), данные возвращаются в формате, описанном в разделе Перечисление CoercionType.

Возвращаемое значение

void

Комментарии

Наборы обязательных элементов:

При вызове из MatrixBinding или TableBinding метод getDataAsync вернет подмножество связанных значений, если указаны необязательные параметры startRow, startColumn, rowCount и columnCount (и указывают смежный и допустимый диапазон).

Примеры

function showBindingData() {
    Office.select("bindings#MyBinding").getDataAsync(function (asyncResult) {
        write(asyncResult.value)
    });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// There is an important difference in behavior between using the "table" and "matrix" coercionType with the
// Binding.getDataAsync method, with respect to data formatted with header rows, as shown in the following
// two examples. These code examples show event handler functions for the Binding.SelectionChanged event.

// If you specify the "table" coercionType, the TableData.rows property ( result.value.rows in the following
// code example) returns an array that contains only the body rows of the table. So, its 0th row will be the
// first non-header row in the table.
function selectionChanged(evtArgs) { 
    Office.select("bindings#TableTranslate").getDataAsync(
        { coercionType: 'table', 
          startRow: evtArgs.startRow, 
          startCol: 0, 
          rowCount: 1, 
          columnCount: 1 },  
        function (result) { 
            if (result.status == 'succeeded') { 
                write("Image to find: " + result.value.rows[0][0]); 
            } 
            else 
                write(result.error.message); 
    }); 
}     
// Function that writes to a div with id='message' on the page. 
function write(message){ 
    document.getElementById('message').innerText += message; 
}

// However, if you specify the "matrix" coercionType, result.value in the following code example returns an array
// that contains the table header in the 0th row. If the table header contains multiple rows, then these are all
// included in the result.value matrix as separate rows before the table body rows are included.
function selectionChanged(evtArgs) { 
    Office.select("bindings#TableTranslate").getDataAsync(
        { coercionType: 'matrix', 
          startRow: evtArgs.startRow, 
          startCol: 0, 
          rowCount: 1, 
          columnCount: 1 },  
        function (result) { 
            if (result.status == 'succeeded') { 
                write("Image to find: " + result.value[1][0]); 
            } 
            else 
                write(result.error.message); 
    }); 
}     
// Function that writes to a div with id='message' on the page. 
function write(message){ 
    document.getElementById('message').innerText += message; 
}

removeHandlerAsync(eventType, options, callback)

Удаляет указанный обработчик из привязки для указанного типа события.

removeHandlerAsync(eventType: Office.EventType, options?: RemoveHandlerOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Тип события. Для привязок это может быть Office.EventType.BindingDataChanged или Office.EventType.BindingSelectionChanged.

options
Office.RemoveHandlerOptions

Предоставляет параметры для определения того, какие обработчики событий будут удалены.

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult.

Возвращаемое значение

void

Комментарии

Набор обязательных элементов: BindingEvents

removeHandlerAsync(eventType, callback)

Удаляет указанный обработчик из привязки для указанного типа события.

removeHandlerAsync(eventType: Office.EventType, callback?: (result: AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Тип события. Для привязок это может быть Office.EventType.BindingDataChanged или Office.EventType.BindingSelectionChanged.

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult.

Возвращаемое значение

void

Комментарии

Набор обязательных элементов: BindingEvents

Примеры

function removeEventHandlerFromBinding() {
    Office.select("bindings#MyBinding").removeHandlerAsync(
        Office.EventType.BindingDataChanged, {handler:onBindingDataChanged});
}

setDataAsync(data, options, callback)

Записывает данные в привязанный раздел документа, представленный указанным объектом привязки.

setDataAsync(data: TableData | any, options?: SetBindingDataOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

data

Office.TableData | any

Данные, записываемые в текущий выделенный фрагмент. Возможные типы данных по приложению Office:

string: Excel в Интернете и в Windows, а также Word в Интернете и только в Windows

массив массивов: только Excel и Word

Office.TableData: только Excel и Word

HTML: Word только в Интернете и в Windows

Office Open XML: только Word

options
Office.SetBindingDataOptions

Предоставляет параметры настройки данных в привязке.

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult.

Возвращаемое значение

void

Комментарии

Наборы обязательных элементов:

Значение, передаваемое для данных, содержит данные, записываемые в привязку. Тип передаваемых значений определяет, что будет записано, как описано в следующей таблице.

значение data Записываемые данные
Строка Будет написан обычный текст или все, что может быть принучено к строке.
Массив массивов (матрица) Записываются табличные данные без заголовков. Например, чтобы записать данные в три строки двух столбцов, вы можете передать массив следующим образом: \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Чтобы записать один столбец из трех строк, передайте массив следующим образом: \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Объект TableData Записываются табличные данные с заголовками.

Кроме того, при записи данных в привязку применяются следующие действия, соответствующие конкретному приложению. Для Word указанные данные записываются в привязку следующим образом.

значение data Записываемые данные
Строка Записывается указанный текст.
Массив массивов ("матрица TableData ") или объект Записывается таблица Word.
HTML Записывается указанный HTML-код. Если указанный HTML-код содержит недопустимые фрагменты, Word не вызовет ошибку. Word запишет весь допустимый HTML-код и пропустит недопустимые данные.
Office Open XML (Open XML) Записывается указанный XML-код.

Для Excel указанные данные записываются в привязку следующим образом.

значение data Записываемые данные
Строка Указанный текст добавляется в первую привязанную ячейку в качестве значения. Вы также можете указать допустимую формулу, чтобы добавить ее в привязанную ячейку. Например, если задать для параметра data значение "=SUM(A1:A5)", значения в указанном диапазоне будут суммироваться. Если задать формулу в связанной ячейке, добавленную (или существующую) формулу в этой ячейке будет невозможно считать. При вызове Binding.getDataAsync метода в связанной ячейке для чтения ее данных метод может вернуть только данные, отображаемые в ячейке (результат формулы).
Массив массивов (матрица) и форма точно соответствует форме указанной привязки Записывается набор строк и столбцов. Можно также указать массив массивов, содержащих допустимые формулы, чтобы добавить их в привязанные ячейки. Например, если задать для данных значение , \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] эти две формулы будут добавлены в привязку, содержащую две ячейки. Так же, как при задании формулы в одной привязанной ячейке, вы не можете прочитать добавленные формулы (или какие-либо ранее существующие формулы) из привязки с Binding.getDataAsync помощью метода — он возвращает только данные, отображаемые в связанных ячейках.
Объект TableData и форма таблицы соответствуют связанной таблице. Записывается указанный набор строк или заголовков, если никакие другие данные в окружающих ячейках не перезаписываются. **Примечание*** Если указать формулы в TableData объекте, передаваемом для параметра *data*, вы можете не получить ожидаемые результаты из-за функции "вычисляемые столбцы" в Excel, которая автоматически дублирует формулы в столбце. Чтобы обойти эту проблему, если требуется записать *data*, содержащую формулы, в связанную таблицу, попробуйте указать данные в виде массива массивов (а не TableData объекта), а укажите *coercionType* как Microsoft.Office.Matrix или matrix.

Для Excel в Интернете:

  • Общее количество ячеек в значении, передаваемом параметру данных, не может превышать 20 000 в одном вызове этого метода.

  • Число групп форматирования, переданных параметру cellFormat, не может превышать 100. Одна группа форматирования состоит из набора вариантов форматирования, применяемого к указанному диапазону ячеек.

Во всех остальных случаях возвращается ошибка.

Метод setDataAsync записывает данные в подмножество привязки таблицы или матрицы, если указаны необязательные параметры startRow и startColumn и указывают допустимый диапазон.

В функции обратного вызова, переданной в метод setDataAsync, можно использовать свойства объекта AsyncResult, чтобы возвратить такие сведения:

Property Использовать
AsyncResult.value Всегда возвращается undefined , так как нет объекта или данных для извлечения.
AsyncResult.status Определяет, удалось ли выполнить операцию.
AsyncResult.error Доступ к объекту Error, который предоставляет сведения об ошибке, если операция завершилась неудачно.
AsyncResult.asyncContext Определите элемент любого типа, возвращаемый в объекте AsyncResult без изменения.

setDataAsync(data, callback)

Записывает данные в привязанный раздел документа, представленный указанным объектом привязки.

setDataAsync(data: TableData | any, callback?: (result: AsyncResult<void>) => void): void;

Параметры

data

Office.TableData | any

Данные, записываемые в текущий выделенный фрагмент. Возможные типы данных по приложению Office:

string: Excel в Интернете и в Windows, а также Word в Интернете и только в Windows

массив массивов: только Excel и Word

TableData : только Excel и Word

HTML: Word только в Интернете и в Windows

Office Open XML: только Word

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult.

Возвращаемое значение

void

Комментарии

Наборы обязательных элементов:

Значение, передаваемое для данных, содержит данные, записываемые в привязку. Тип передаваемых значений определяет, что будет записано, как описано в следующей таблице.

значение data Записываемые данные
Строка Будет написан обычный текст или все, что может быть принучено к строке.
Массив массивов (матрица) Записываются табличные данные без заголовков. Например, чтобы записать данные в три строки двух столбцов, вы можете передать массив следующим образом: \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Чтобы записать один столбец из трех строк, передайте массив следующим образом: \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Объект TableData Записываются табличные данные с заголовками.

Кроме того, при записи данных в привязку применяются следующие действия, соответствующие конкретному приложению. Для Word указанные данные записываются в привязку следующим образом.

значение data Записываемые данные
Строка Записывается указанный текст.
Массив массивов ("матрица TableData ") или объект Записывается таблица Word.
HTML Записывается указанный HTML-код. Если указанный HTML-код содержит недопустимые фрагменты, Word не вызовет ошибку. Word запишет весь допустимый HTML-код и пропустит недопустимые данные.
Office Open XML (Open XML) Записывается указанный XML-код.

Для Excel указанные данные записываются в привязку следующим образом.

значение data Записываемые данные
Строка Указанный текст добавляется в первую привязанную ячейку в качестве значения. Вы также можете указать допустимую формулу, чтобы добавить ее в привязанную ячейку. Например, если задать для параметра data значение "=SUM(A1:A5)", значения в указанном диапазоне будут суммироваться. Если задать формулу в связанной ячейке, добавленную (или существующую) формулу в этой ячейке будет невозможно считать. При вызове Binding.getDataAsync метода в связанной ячейке для чтения ее данных метод может вернуть только данные, отображаемые в ячейке (результат формулы).
Массив массивов (матрица) и форма точно соответствует форме указанной привязки Записывается набор строк и столбцов. Можно также указать массив массивов, содержащих допустимые формулы, чтобы добавить их в привязанные ячейки. Например, если задать для данных значение , \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] эти две формулы будут добавлены в привязку, содержащую две ячейки. Так же, как при задании формулы в одной привязанной ячейке, вы не можете прочитать добавленные формулы (или какие-либо ранее существующие формулы) из привязки с Binding.getDataAsync помощью метода — он возвращает только данные, отображаемые в связанных ячейках.
Объект TableData и форма таблицы соответствуют связанной таблице. Записывается указанный набор строк или заголовков, если никакие другие данные в окружающих ячейках не перезаписываются. **Примечание*** Если указать формулы в TableData объекте, передаваемом для параметра *data*, вы можете не получить ожидаемые результаты из-за функции "вычисляемые столбцы" в Excel, которая автоматически дублирует формулы в столбце. Чтобы обойти эту проблему, если требуется записать *data*, содержащую формулы, в связанную таблицу, попробуйте указать данные в виде массива массивов (а не TableData объекта), а укажите *coercionType* как Microsoft.Office.Matrix или matrix.

Для Excel в Интернете:

  • Общее количество ячеек в значении, передаваемом параметру данных, не может превышать 20 000 в одном вызове этого метода.

  • Число групп форматирования, переданных параметру cellFormat, не может превышать 100. Одна группа форматирования состоит из набора вариантов форматирования, применяемого к указанному диапазону ячеек.

Во всех остальных случаях возвращается ошибка.

Метод setDataAsync записывает данные в подмножество привязки таблицы или матрицы, если указаны необязательные параметры startRow и startColumn и указывают допустимый диапазон.

В функции обратного вызова, переданной в метод setDataAsync, можно использовать свойства объекта AsyncResult, чтобы возвратить такие сведения:

Property Использовать
AsyncResult.value Всегда возвращается undefined , так как нет объекта или данных для извлечения.
AsyncResult.status Определяет, удалось ли выполнить операцию.
AsyncResult.error Доступ к объекту Error, который предоставляет сведения об ошибке, если операция завершилась неудачно.
AsyncResult.asyncContext Определите элемент любого типа, возвращаемый в объекте AsyncResult без изменения.

Примеры

function setBindingData() {
    Office.select("bindings#MyBinding").setDataAsync('Hello World!', function (asyncResult) { });
}

// Specifying the optional coercionType parameter lets you specify the kind of data you want to write to a binding.
// For example, in Word if you want to write HTML to a text binding, you can specify the coercionType parameter 
// as "html" as shown in the following example, which uses HTML <b> tags to make "Hello" bold.
function writeHtmlData() {
    Office.select("bindings#myBinding").setDataAsync(
        "<b>Hello</b> World!", {coercionType: "html"}, function (asyncResult) {
        if (asyncResult.status == "failed") {
            write('Error: ' + asyncResult.error.message);
        }
    });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// In this example, the call to setDataAsync passes the data parameter as an array of arrays
// (to create a single column of three rows), and specifies the data structure with the 
// coercionType parameter as a "matrix".
function writeBoundDataMatrix() {
    Office.select("bindings#myBinding").setDataAsync(
        [['Berlin'],['Munich'],['Duisburg']],{ coercionType: "matrix" }, function (asyncResult) {
        if (asyncResult.status == "failed") {
            write('Error: ' + asyncResult.error.message);
        } else {
            write('Bound data: ' + asyncResult.value);
        }
    });
}
// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// In the writeBoundDataTable function in this example, the call to setDataAsync passes the data parameter 
// as a TableData object (to write three columns and three rows), and specifies the data structure
// with the coercionType parameter as a "table".

// In the updateTableData function, the call to setDataAsync again passes the data parameter as a TableData object,
// but as a single column with a new header and three rows, to update the values in the last column 
// of the table created with the writeBoundDataTable function. The optional zero-based startColumn parameter 
// is specified as 2 to replace the values in the third column of the table.
function writeBoundDataTable() {
    // Create a TableData object.
    const myTable = new Office.TableData();
    myTable.headers = ['First Name', 'Last Name', 'Grade'];
    myTable.rows = [['Kim', 'Abercrombie', 'A'], ['Junmin','Hao', 'C'],['Toni','Poe','B']];

    // Set myTable in the binding.
    Office.select("bindings#myBinding").setDataAsync(myTable, { coercionType: "table" }, 
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed) {
                write('Error: '+ asyncResult.error.message);
        } else {
            write('Bound data: ' + asyncResult.value);
        }
    });
}

// Replace last column with different data.
function updateTableData() {
    const newTable = new Office.TableData();
    newTable.headers = ["Gender"];
    newTable.rows = [["M"],["M"],["F"]];
    Office.select("bindings#myBinding").setDataAsync(newTable, { coercionType: "table", startColumn:2 }, 
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed) {
                write('Error: '+ asyncResult.error.message);
        } else {
            write('Bound data: ' + asyncResult.value);
        }     
    });   
}

// In this example, the following call passes two formatting groups to cellFormat.
Office.select("bindings#myBinding").setDataAsync([['Berlin'],['Munich'],['Duisburg']],
  {cellFormat:[{cells: {row: 1}, format: {fontColor: "yellow"}}, 
      {cells: {row: 3, column: 4}, format: {borderColor: "white", fontStyle: "bold"}}]}, 
  function (asyncResult){});