Office.Binding interface

Representa uma associação a uma seção do documento.

O objeto Binding expõe a funcionalidade possuída por todas as associações, independentemente do tipo.

O objeto Binding nunca é chamado diretamente. É a classe pai abstrata dos objetos que representam cada tipo de associação: Office.MatrixBinding, Office.TableBinding ou Office.TextBinding. Todos esses três objetos herdam os métodos getDataAsync e setDataAsync do objeto Binding que permitem interagir com os dados na associação. Eles também herdam a ID e digitam propriedades para consultar esses valores de propriedade. Além disso, os objetos MatrixBinding e TableBinding expõem métodos adicionais para recursos específicos de matriz e tabela, como contar o número de linhas e colunas.

Comentários

Aplicativos: Word, Excel (preterido, use Excel.Binding em vez disso)

Conjuntos de requisitos:

Propriedades

document

Obtenha o objeto Document associado à associação.

id

Uma cadeia de caracteres que identifica exclusivamente essa associação entre as associações no mesmo objeto Office.Document .

type

Obtém o tipo de associação.

Métodos

addHandlerAsync(eventType, handler, options, callback)

Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. EventTypes com suporte são Office.EventType.BindingDataChanged e Office.EventType.BindingSelectionChanged.

addHandlerAsync(eventType, handler, callback)

Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. EventTypes com suporte são Office.EventType.BindingDataChanged e Office.EventType.BindingSelectionChanged.

getDataAsync(options, callback)

Retorna os dados contidos na associação.

getDataAsync(callback)

Retorna os dados contidos na associação.

removeHandlerAsync(eventType, options, callback)

Remove o manipulador especificado da associação para o tipo de evento especificado.

removeHandlerAsync(eventType, callback)

Remove o manipulador especificado da associação para o tipo de evento especificado.

setDataAsync(data, options, callback)

Grava dados na seção associada do documento representado pelo objeto de associação especificado.

setDataAsync(data, callback)

Grava dados na seção associada do documento representado pelo objeto de associação especificado.

Detalhes da propriedade

document

Obtenha o objeto Document associado à associação.

document: Office.Document;

Valor da propriedade

Exemplos

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

Uma cadeia de caracteres que identifica exclusivamente essa associação entre as associações no mesmo objeto Office.Document .

id: string;

Valor da propriedade

string

Exemplos

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

Obtém o tipo de associação.

type: Office.BindingType;

Valor da propriedade

Exemplos

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

Detalhes do método

addHandlerAsync(eventType, handler, options, callback)

Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. EventTypes com suporte são Office.EventType.BindingDataChanged e Office.EventType.BindingSelectionChanged.

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

Parâmetros

eventType
Office.EventType

O tipo de evento. Para associações, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

handler

any

A função manipulador de eventos a ser adicionada, cujo único parâmetro é do tipo Office.BindingDataChangedEventArgs ou Office.BindingSelectionChangedEventArgs.

options
Office.AsyncContextOptions

Fornece uma opção para preservar dados de contexto de qualquer tipo, inalterados, para uso em um retorno de chamada.

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult.

Retornos

void

Comentários

Conjunto de requisitos: BindingEvents

Você pode adicionar vários manipuladores de eventos para o eventType especificado desde que o nome de cada função do manipulador de eventos seja exclusivo.

addHandlerAsync(eventType, handler, callback)

Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. EventTypes com suporte são Office.EventType.BindingDataChanged e Office.EventType.BindingSelectionChanged.

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

Parâmetros

eventType
Office.EventType

O tipo de evento. Para associações, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

handler

any

A função manipulador de eventos a ser adicionada, cujo único parâmetro é do tipo Office.BindingDataChangedEventArgs ou Office.BindingSelectionChangedEventArgs.

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult.

Retornos

void

Comentários

Conjunto de requisitos: BindingEvents

Você pode adicionar vários manipuladores de eventos para o eventType especificado desde que o nome de cada função do manipulador de eventos seja exclusivo.

Exemplos

// 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)

Retorna os dados contidos na associação.

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

Parâmetros

options
Office.GetBindingDataOptions

Fornece opções de como obter os dados em uma associação.

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult. A value propriedade do resultado é os valores na associação especificada. Se o coercionType parâmetro for especificado (e a chamada for bem-sucedida), os dados serão retornados no formato descrito no tópico de enumeração CoercionType.

Retornos

void

Comentários

Conjuntos de requisitos:

Quando chamado de um MatrixBinding ou TableBinding, o método getDataAsync retornará um subconjunto dos valores vinculados se os parâmetros startRow, startColumn, rowCount e columnCount forem especificados (e eles especificarem um intervalo contíguo e válido).

getDataAsync(callback)

Retorna os dados contidos na associação.

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

Parâmetros

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult. A value propriedade do resultado é os valores na associação especificada. Se o coercionType parâmetro for especificado (e a chamada for bem-sucedida), os dados serão retornados no formato descrito no tópico de enumeração CoercionType.

Retornos

void

Comentários

Conjuntos de requisitos:

Quando chamado de um MatrixBinding ou TableBinding, o método getDataAsync retornará um subconjunto dos valores vinculados se os parâmetros startRow, startColumn, rowCount e columnCount forem especificados (e eles especificarem um intervalo contíguo e válido).

Exemplos

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)

Remove o manipulador especificado da associação para o tipo de evento especificado.

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

Parâmetros

eventType
Office.EventType

O tipo de evento. Para associações, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

options
Office.RemoveHandlerOptions

Fornece opções para determinar quais manipuladores ou manipuladores de eventos são removidos.

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult.

Retornos

void

Comentários

Conjunto de requisitos: BindingEvents

removeHandlerAsync(eventType, callback)

Remove o manipulador especificado da associação para o tipo de evento especificado.

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

Parâmetros

eventType
Office.EventType

O tipo de evento. Para associações, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult.

Retornos

void

Comentários

Conjunto de requisitos: BindingEvents

Exemplos

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

setDataAsync(data, options, callback)

Grava dados na seção associada do documento representado pelo objeto de associação especificado.

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

Parâmetros

data

Office.TableData | any

Os dados a serem definidos na seleção atual. Possíveis tipos de dados por aplicativo do Office:

cadeia de caracteres: Excel na Web e no Windows e Word somente na Web e no Windows

matrizes: Excel e somente Word

Office.TableData: Somente Excel e Word

HTML: Word somente na Web e no Windows

Office Open XML: somente Word

options
Office.SetBindingDataOptions

Fornece opções de como definir os dados em uma associação.

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult.

Retornos

void

Comentários

Conjuntos de requisitos:

O valor passado para dados contém os dados a serem gravados na associação. O tipo do valor passado determina o que será gravado conforme descrito na tabela a seguir.

data valor Dados gravados
String Texto simples ou qualquer coisa que possa ser coagida a uma cadeia de caracteres será escrita.
Uma matriz de matrizes ("matrix") Serão gravados dados tabulares sem cabeçalhos. Por exemplo, para gravar dados em três linhas nas duas colunas, você pode passar uma matriz como esta: \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Para escrever uma única coluna de três linhas, passe uma matriz como esta: \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Um TableData objeto Será gravada uma tabela com cabeçalhos.

Além disso, essas ações específicas do aplicativo se aplicam ao gravar dados em uma associação. Para Word, os dados especificados são gravados na associação da seguinte maneira.

data valor Dados gravados
String O texto especificado é gravado.
Uma matriz de matrizes ("matriz") ou um TableData objeto Uma tabela do Word é gravada.
HTML O HTML especificado é gravado. Se qualquer um dos HTML que você grava for inválido, Word não gerará um erro. Word will write as much of the HTML as it can and will omit any invalid data.
Office Open XML ("Open XML") O XML especificado é escrito.

Para o Excel, os dados especificados são gravados na associação da seguinte maneira.

data valor Dados gravados
String O texto especificado é inserido como o valor da primeira célula vinculada. Você também pode especificar uma fórmula válida para adicionar essa fórmula à célula vinculada. Por exemplo, definir data como "=SUM(A1:A5)" totalizará os valores no intervalo especificado. No entanto, após definir uma fórmula na célula associada, não é possível ler a fórmula adicionada (ou qualquer fórmula preexistente) da célula associada. Se você chamar o Binding.getDataAsync método na célula vinculada para ler seus dados, o método poderá retornar apenas os dados exibidos na célula (resultado da fórmula).
Uma matriz de matrizes ("matrix") e a forma corresponde exatamente à forma da associação especificada O conjunto de linhas e colunas são gravados. Você também pode especificar uma matriz de matrizes que contêm fórmulas válidas para adicioná-las às células vinculadas. Por exemplo, definir dados para \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] adicionar essas duas fórmulas a uma associação que contém duas células. Assim como ao definir uma fórmula em uma única célula vinculada, você não pode ler as fórmulas adicionadas (ou quaisquer fórmulas pré-existentes) da associação com o Binding.getDataAsync método - ela retorna apenas os dados exibidos nas células vinculadas.
Um TableData objeto e a forma da tabela correspondem à tabela vinculada O conjunto de linhas e/ou cabeçalhos especificado é gravado, se não, outros dados nas células ao redor serão substituídos. **Observação**: Se você especificar fórmulas no TableData objeto que você passa para o parâmetro *data*, talvez não obtenha os resultados esperados devido ao recurso "colunas calculadas" do Excel, que duplica automaticamente fórmulas em uma coluna. Para contornar isso quando você quiser escrever *data* que contém fórmulas em uma tabela vinculada, tente especificar os dados como uma matriz de matrizes (em vez de um TableData objeto) e especifique o *coercionType* como Microsoft.Office.Matrix ou "matrix".

Para Excel na Web:

  • O número total de células no valor passado para o parâmetro de dados não pode exceder 20.000 em uma única chamada para esse método.

  • O número de grupos de formatação passados para o parâmetro cellFormat não pode exceder 100. Um único grupo formatação consiste em um conjunto de formatação aplicado a um intervalo de células especificado.

Em todos os outros casos, um erro será retornado.

O método setDataAsync gravará dados em um subconjunto de uma tabela ou associação de matriz se os parâmetros startRow e startColumn opcionais forem especificados e especificarem um intervalo válido.

Na função de retorno de chamada passada para o método setDataAsync, você pode usar as propriedades do objeto AsyncResult para retornar as informações a seguir.

Propriedade Usar
AsyncResult.value Sempre retorna undefined porque não há nenhum objeto ou dados para recuperar.
AsyncResult.status Determinar o sucesso ou falha da operação.
AsyncResult.error Acessar um objeto Error que fornecerá informações de erro se a operação tiver falhado.
AsyncResult.asyncContext Defina um item de qualquer tipo retornado no objeto AsyncResult sem ser alterado.

setDataAsync(data, callback)

Grava dados na seção associada do documento representado pelo objeto de associação especificado.

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

Parâmetros

data

Office.TableData | any

Os dados a serem definidos na seleção atual. Possíveis tipos de dados por aplicativo do Office:

cadeia de caracteres: Excel na Web e no Windows e Word somente na Web e no Windows

matrizes: Excel e somente Word

TableData: Excel e somente Word

HTML: Word somente na Web e no Windows

Office Open XML: somente Word

callback

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

Opcional. Uma função que é invocada quando o retorno de chamada retorna, cujo único parâmetro é do tipo Office.AsyncResult.

Retornos

void

Comentários

Conjuntos de requisitos:

O valor passado para dados contém os dados a serem gravados na associação. O tipo do valor passado determina o que será gravado conforme descrito na tabela a seguir.

data valor Dados gravados
String Texto simples ou qualquer coisa que possa ser coagida a uma cadeia de caracteres será escrita.
Uma matriz de matrizes ("matrix") Serão gravados dados tabulares sem cabeçalhos. Por exemplo, para gravar dados em três linhas nas duas colunas, você pode passar uma matriz como esta: \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Para escrever uma única coluna de três linhas, passe uma matriz como esta: \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Um TableData objeto Será gravada uma tabela com cabeçalhos.

Além disso, essas ações específicas do aplicativo se aplicam ao gravar dados em uma associação. Para Word, os dados especificados são gravados na associação da seguinte maneira.

data valor Dados gravados
String O texto especificado é gravado.
Uma matriz de matrizes ("matriz") ou um TableData objeto Uma tabela do Word é gravada.
HTML O HTML especificado é gravado. Se qualquer um dos HTML que você grava for inválido, Word não gerará um erro. Word will write as much of the HTML as it can and will omit any invalid data.
Office Open XML ("Open XML") O XML especificado é escrito.

Para o Excel, os dados especificados são gravados na associação da seguinte maneira.

data valor Dados gravados
String O texto especificado é inserido como o valor da primeira célula vinculada. Você também pode especificar uma fórmula válida para adicionar essa fórmula à célula vinculada. Por exemplo, definir data como "=SUM(A1:A5)" totalizará os valores no intervalo especificado. No entanto, após definir uma fórmula na célula associada, não é possível ler a fórmula adicionada (ou qualquer fórmula preexistente) da célula associada. Se você chamar o Binding.getDataAsync método na célula vinculada para ler seus dados, o método poderá retornar apenas os dados exibidos na célula (resultado da fórmula).
Uma matriz de matrizes ("matrix") e a forma corresponde exatamente à forma da associação especificada O conjunto de linhas e colunas são gravados. Você também pode especificar uma matriz de matrizes que contêm fórmulas válidas para adicioná-las às células vinculadas. Por exemplo, definir dados para \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] adicionar essas duas fórmulas a uma associação que contém duas células. Assim como ao definir uma fórmula em uma única célula vinculada, você não pode ler as fórmulas adicionadas (ou quaisquer fórmulas pré-existentes) da associação com o Binding.getDataAsync método - ela retorna apenas os dados exibidos nas células vinculadas.
Um TableData objeto e a forma da tabela correspondem à tabela vinculada O conjunto de linhas e/ou cabeçalhos especificado é gravado, se não, outros dados nas células ao redor serão substituídos. **Observação**: Se você especificar fórmulas no TableData objeto que você passa para o parâmetro *data*, talvez não obtenha os resultados esperados devido ao recurso "colunas calculadas" do Excel, que duplica automaticamente fórmulas em uma coluna. Para contornar isso quando você quiser escrever *data* que contém fórmulas em uma tabela vinculada, tente especificar os dados como uma matriz de matrizes (em vez de um TableData objeto) e especifique o *coercionType* como Microsoft.Office.Matrix ou "matrix".

Para Excel na Web:

  • O número total de células no valor passado para o parâmetro de dados não pode exceder 20.000 em uma única chamada para esse método.

  • O número de grupos de formatação passados para o parâmetro cellFormat não pode exceder 100. Um único grupo formatação consiste em um conjunto de formatação aplicado a um intervalo de células especificado.

Em todos os outros casos, um erro será retornado.

O método setDataAsync gravará dados em um subconjunto de uma tabela ou associação de matriz se os parâmetros startRow e startColumn opcionais forem especificados e especificarem um intervalo válido.

Na função de retorno de chamada passada para o método setDataAsync, você pode usar as propriedades do objeto AsyncResult para retornar as informações a seguir.

Propriedade Usar
AsyncResult.value Sempre retorna undefined porque não há nenhum objeto ou dados para recuperar.
AsyncResult.status Determinar o sucesso ou falha da operação.
AsyncResult.error Acessar um objeto Error que fornecerá informações de erro se a operação tiver falhado.
AsyncResult.asyncContext Defina um item de qualquer tipo retornado no objeto AsyncResult sem ser alterado.

Exemplos

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