Compartilhar via


Office.Binding interface

Representa um enlace a uma secção do documento.

O objeto Enlace expõe a funcionalidade que todos os enlaces possuem, independentemente do tipo.

O objeto Enlace nunca é chamado diretamente. É a classe principal abstrata dos objetos que representam cada tipo de enlace: Office.MatrixBinding, Office.TableBinding ou Office.TextBinding. Todos estes três objetos herdam os métodos getDataAsync e setDataAsync do objeto Binding que lhe permite interagir com os dados no enlace. Também herdam o ID e as propriedades do tipo 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

Aplicações: Word, Excel (preterido, utilize Excel.Binding )

Conjuntos de requisitos:

Propriedades

document

Obtenha o objeto Documento associado ao enlace.

id

Uma cadeia que identifica exclusivamente este enlace entre os enlaces no mesmo objeto Office.Document .

type

Obtém o tipo de associação.

Métodos

addHandlerAsync(eventType, handler, options, callback)

Adiciona um processador de eventos ao objeto para o Office.EventType especificado. Os EventTypes suportados são Office.EventType.BindingDataChanged e Office.EventType.BindingSelectionChanged.

addHandlerAsync(eventType, handler, callback)

Adiciona um processador de eventos ao objeto para o Office.EventType especificado. Os EventTypes suportados 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 Documento associado ao enlace.

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 que identifica exclusivamente este enlace entre os enlaces 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 processador de eventos ao objeto para o Office.EventType especificado. Os EventTypes suportados 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 enlaces, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

handler

any

A função de processador de eventos a adicionar, 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 utilização numa chamada de retorno.

callback

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

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

Retornos

void

Comentários

Conjunto de requisitos: BindingEvents

Pode adicionar vários processadores de eventos para o eventType especificado, desde que o nome de cada função de processador de eventos seja exclusivo.

addHandlerAsync(eventType, handler, callback)

Adiciona um processador de eventos ao objeto para o Office.EventType especificado. Os EventTypes suportados 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 enlaces, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

handler

any

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

callback

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

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

Retornos

void

Comentários

Conjunto de requisitos: BindingEvents

Pode adicionar vários processadores de eventos para o eventType especificado, desde que o nome de cada função de processador 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 para obter os dados num enlace.

callback

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

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

Retornos

void

Comentários

Conjuntos de requisitos:

Quando chamado a partir de um MatrixBinding ou TableBinding, o método getDataAsync devolverá um subconjunto dos valores vinculados se os parâmetros opcionais startRow, startColumn, rowCount e columnCount forem especificados (e 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 a chamada de retorno é devolvida, cujo único parâmetro é do tipo Office.AsyncResult. A value propriedade do resultado são os valores no enlace especificado. Se o coercionType parâmetro for especificado (e a chamada for bem-sucedida), os dados são devolvidos no formato descrito no tópico de enumeração CoercionType.

Retornos

void

Comentários

Conjuntos de requisitos:

Quando chamado a partir de um MatrixBinding ou TableBinding, o método getDataAsync devolverá um subconjunto dos valores vinculados se os parâmetros opcionais startRow, startColumn, rowCount e columnCount forem especificados (e 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 enlaces, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

options
Office.RemoveHandlerOptions

Fornece opções para determinar que processadores ou processadores de eventos são removidos.

callback

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

Opcional. Uma função que é invocada quando a chamada de retorno é devolvida, 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 enlaces, pode ser Office.EventType.BindingDataChanged ou Office.EventType.BindingSelectionChanged.

callback

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

Opcional. Uma função que é invocada quando a chamada de retorno é devolvida, 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. Tipos de dados possíveis por aplicação do Office:

cadeia: Excel na Web e no Windows e Word na Web e apenas no Windows

matriz de matrizes: apenas Excel e Word

Office.TableData: apenas Excel e Word

HTML: Word na Web e apenas no Windows

Office Open XML: apenas Word

options
Office.SetBindingDataOptions

Fornece opções para definir os dados num enlace.

callback

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

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

Retornos

void

Comentários

Conjuntos de requisitos:

O valor transmitido para os dados contém os dados a serem escritos no enlace. O tipo do valor passado determina o que será gravado conforme descrito na tabela a seguir.

data valor Dados gravados
String Será escrito texto simples ou qualquer coisa que possa ser coagida a uma cadeia.
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, transmita 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 o Word, os dados especificados são escritos no enlace da seguinte forma.

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 algum dos HTML que escrever for inválido, o 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 escritos no enlace da seguinte forma.

data valor Dados gravados
String O texto especificado é inserido como o valor da primeira célula vinculada. 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 chamar o Binding.getDataAsync método na célula vinculada para ler os respetivos dados, o método só pode devolver os dados apresentados na célula (o 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 é escrito. Também pode especificar uma matriz de matrizes que contêm fórmulas válidas para as adicionar às células vinculadas. Por exemplo, definir dados como \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] irá adicionar essas duas fórmulas a um enlace que contém duas células. Tal como quando define uma fórmula numa única célula vinculada, não pode ler as fórmulas adicionadas (ou quaisquer fórmulas pré-existentes) do enlace com o Binding.getDataAsync método . Devolve apenas os dados apresentados 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. **Nota**: se especificar fórmulas no TableData objeto que transmite para o parâmetro *data*, poderá não obter os resultados esperados devido à funcionalidade "colunas calculadas" do Excel, que duplica automaticamente fórmulas numa coluna. Para contornar este problema quando pretender escrever *dados* que contenham fórmulas numa tabela vinculada, experimente especificar os dados como uma matriz de matrizes (em vez de um TableData objeto) e especifique o *coercionType* como Microsoft.Office.Matrix ou "matriz".

Para o Excel na Web:

  • O número total de células no valor transmitido para o parâmetro de dados não pode exceder 20 000 numa única chamada para este método.

  • O número de grupos de formatação transmitidos 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 escreverá dados num subconjunto de um enlace de tabela ou matriz se os parâmetros opcionais startRow e startColumn forem especificados e especificarem um intervalo válido.

Na função de chamada de retorno transmitida para o método setDataAsync, pode utilizar as propriedades do objeto AsyncResult para devolver as seguintes informações.

Propriedade Usar
AsyncResult.value Devolve undefined sempre porque não existe nenhum objeto ou dados a obter.
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 que seja devolvido 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. Tipos de dados possíveis por aplicação do Office:

cadeia: Excel na Web e no Windows e Word na Web e apenas no Windows

matriz de matrizes: apenas Excel e Word

TableData : apenas Excel e Word

HTML: Word na Web e apenas no Windows

Office Open XML: apenas Word

callback

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

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

Retornos

void

Comentários

Conjuntos de requisitos:

O valor transmitido para os dados contém os dados a serem escritos no enlace. O tipo do valor passado determina o que será gravado conforme descrito na tabela a seguir.

data valor Dados gravados
String Será escrito texto simples ou qualquer coisa que possa ser coagida a uma cadeia.
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, transmita 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 o Word, os dados especificados são escritos no enlace da seguinte forma.

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 algum dos HTML que escrever for inválido, o 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 escritos no enlace da seguinte forma.

data valor Dados gravados
String O texto especificado é inserido como o valor da primeira célula vinculada. 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 chamar o Binding.getDataAsync método na célula vinculada para ler os respetivos dados, o método só pode devolver os dados apresentados na célula (o 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 é escrito. Também pode especificar uma matriz de matrizes que contêm fórmulas válidas para as adicionar às células vinculadas. Por exemplo, definir dados como \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] irá adicionar essas duas fórmulas a um enlace que contém duas células. Tal como quando define uma fórmula numa única célula vinculada, não pode ler as fórmulas adicionadas (ou quaisquer fórmulas pré-existentes) do enlace com o Binding.getDataAsync método . Devolve apenas os dados apresentados 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. **Nota**: se especificar fórmulas no TableData objeto que transmite para o parâmetro *data*, poderá não obter os resultados esperados devido à funcionalidade "colunas calculadas" do Excel, que duplica automaticamente fórmulas numa coluna. Para contornar este problema quando pretender escrever *dados* que contenham fórmulas numa tabela vinculada, experimente especificar os dados como uma matriz de matrizes (em vez de um TableData objeto) e especifique o *coercionType* como Microsoft.Office.Matrix ou "matriz".

Para o Excel na Web:

  • O número total de células no valor transmitido para o parâmetro de dados não pode exceder 20 000 numa única chamada para este método.

  • O número de grupos de formatação transmitidos 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 escreverá dados num subconjunto de um enlace de tabela ou matriz se os parâmetros opcionais startRow e startColumn forem especificados e especificarem um intervalo válido.

Na função de chamada de retorno transmitida para o método setDataAsync, pode utilizar as propriedades do objeto AsyncResult para devolver as seguintes informações.

Propriedade Usar
AsyncResult.value Devolve undefined sempre porque não existe nenhum objeto ou dados a obter.
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 que seja devolvido 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){});