Compartir a través de


Office.Binding interface

Representa un enlace a una sección del documento.

El objeto Binding expone la funcionalidad que poseen todos los enlaces, independientemente del tipo.

Nunca se llama directamente al objeto Binding. Es la clase primaria abstracta de los objetos que representan cada tipo de enlace: Office.MatrixBinding, Office.TableBinding o Office.TextBinding. Los tres objetos heredan los métodos getDataAsync y setDataAsync del objeto Binding que permiten interactuar con los datos del enlace. También heredan las propiedades id. y type para consultar esos valores de propiedad. Asimismo, los objetos MatrixBinding y TableBinding exponen métodos adicionales para las características específicas de matrices y tablas, como contar el número de filas y columnas.

Comentarios

Aplicaciones: Word, Excel (en desuso, use Excel.Binding en su lugar)

Conjuntos de requisitos:

Propiedades

document

Obtenga el objeto Document asociado al enlace.

id

Cadena que identifica de forma única este enlace entre los enlaces del mismo objeto Office.Document .

type

Obtiene el tipo del enlace.

Métodos

addHandlerAsync(eventType, handler, options, callback)

Agrega un controlador de eventos al objeto para el objeto Office.EventType especificado. Los eventTypes admitidos son Office.EventType.BindingDataChanged y Office.EventType.BindingSelectionChanged.

addHandlerAsync(eventType, handler, callback)

Agrega un controlador de eventos al objeto para el objeto Office.EventType especificado. Los eventTypes admitidos son Office.EventType.BindingDataChanged y Office.EventType.BindingSelectionChanged.

getDataAsync(options, callback)

Devuelve los datos que contiene el enlace.

getDataAsync(callback)

Devuelve los datos que contiene el enlace.

removeHandlerAsync(eventType, options, callback)

Quita del enlace el controlador que se especifica para el tipo de evento determinado.

removeHandlerAsync(eventType, callback)

Quita del enlace el controlador que se especifica para el tipo de evento determinado.

setDataAsync(data, options, callback)

Escribe datos en la sección enlazada del documento que representa el objeto de enlace que se ha especificado.

setDataAsync(data, callback)

Escribe datos en la sección enlazada del documento que representa el objeto de enlace que se ha especificado.

Detalles de las propiedades

document

Obtenga el objeto Document asociado al enlace.

document: Office.Document;

Valor de propiedad

Ejemplos

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

Cadena que identifica de forma única este enlace entre los enlaces del mismo objeto Office.Document .

id: string;

Valor de propiedad

string

Ejemplos

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

Obtiene el tipo del enlace.

type: Office.BindingType;

Valor de propiedad

Ejemplos

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

Detalles del método

addHandlerAsync(eventType, handler, options, callback)

Agrega un controlador de eventos al objeto para el objeto Office.EventType especificado. Los eventTypes admitidos son Office.EventType.BindingDataChanged y Office.EventType.BindingSelectionChanged.

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

Parámetros

eventType
Office.EventType

El tipo de evento. Para los enlaces, puede ser Office.EventType.BindingDataChanged o Office.EventType.BindingSelectionChanged.

handler

any

Función de controlador de eventos que se va a agregar, cuyo único parámetro es de tipo Office.BindingDataChangedEventArgs o Office.BindingSelectionChangedEventArgs.

options
Office.AsyncContextOptions

Proporciona una opción para conservar los datos de contexto de cualquier tipo, sin cambios, para su uso en una devolución de llamada.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjunto de requisitos: BindingEvents

Puede agregar varios controladores de eventos para el eventType especificado siempre y cuando el nombre de cada función de controlador de eventos sea único.

addHandlerAsync(eventType, handler, callback)

Agrega un controlador de eventos al objeto para el objeto Office.EventType especificado. Los eventTypes admitidos son Office.EventType.BindingDataChanged y Office.EventType.BindingSelectionChanged.

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

Parámetros

eventType
Office.EventType

El tipo de evento. Para los enlaces, puede ser Office.EventType.BindingDataChanged o Office.EventType.BindingSelectionChanged.

handler

any

Función de controlador de eventos que se va a agregar, cuyo único parámetro es de tipo Office.BindingDataChangedEventArgs o Office.BindingSelectionChangedEventArgs.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjunto de requisitos: BindingEvents

Puede agregar varios controladores de eventos para el eventType especificado siempre y cuando el nombre de cada función de controlador de eventos sea único.

Ejemplos

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

Devuelve los datos que contiene el enlace.

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

Parámetros

options
Office.GetBindingDataOptions

Proporciona opciones para obtener los datos de un enlace.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult. La value propiedad del resultado son los valores del enlace especificado. Si se especifica el coercionType parámetro (y la llamada se realiza correctamente), los datos se devuelven en el formato descrito en el tema de enumeración CoercionType.

Devoluciones

void

Comentarios

Conjuntos de requisitos:

Cuando se llama desde MatrixBinding o TableBinding, el método getDataAsync devolverá un subconjunto de los valores enlazados si se especifican los parámetros opcionales startRow, startColumn, rowCount y columnCount (y especifican un intervalo contiguo y válido).

getDataAsync(callback)

Devuelve los datos que contiene el enlace.

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

Parámetros

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult. La value propiedad del resultado son los valores del enlace especificado. Si se especifica el coercionType parámetro (y la llamada se realiza correctamente), los datos se devuelven en el formato descrito en el tema de enumeración CoercionType.

Devoluciones

void

Comentarios

Conjuntos de requisitos:

Cuando se llama desde MatrixBinding o TableBinding, el método getDataAsync devolverá un subconjunto de los valores enlazados si se especifican los parámetros opcionales startRow, startColumn, rowCount y columnCount (y especifican un intervalo contiguo y válido).

Ejemplos

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)

Quita del enlace el controlador que se especifica para el tipo de evento determinado.

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

Parámetros

eventType
Office.EventType

El tipo de evento. Para los enlaces, puede ser Office.EventType.BindingDataChanged o Office.EventType.BindingSelectionChanged.

options
Office.RemoveHandlerOptions

Proporciona opciones para determinar qué controladores o controladores de eventos se quitan.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjunto de requisitos: BindingEvents

removeHandlerAsync(eventType, callback)

Quita del enlace el controlador que se especifica para el tipo de evento determinado.

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

Parámetros

eventType
Office.EventType

El tipo de evento. Para los enlaces, puede ser Office.EventType.BindingDataChanged o Office.EventType.BindingSelectionChanged.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjunto de requisitos: BindingEvents

Ejemplos

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

setDataAsync(data, options, callback)

Escribe datos en la sección enlazada del documento que representa el objeto de enlace que se ha especificado.

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

Parámetros

data

Office.TableData | any

Los datos que se definirán en la selección actual. Posibles tipos de datos por aplicación de Office:

string: Excel en la Web y en Windows, y Word en la web y solo en Windows

matriz de matrices: Solo Excel y Word

Office.TableData: solo Excel y Word

HTML: Word en la web y solo en Windows

Office Open XML: solo Word

options
Office.SetBindingDataOptions

Proporciona opciones para establecer los datos en un enlace.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjuntos de requisitos:

El valor pasado para los datos contiene los datos que se van a escribir en el enlace. El tipo de valor que se pasa determina qué se escribirá, tal como se describe en la tabla siguiente.

Valor data Datos escritos
Una cadena Se escribirá texto sin formato o cualquier cosa que se pueda convertir en una cadena.
Una matriz de matrices ("matriz") Se escribirán datos tabulares sin encabezados. Por ejemplo, para escribir datos en tres filas de dos columnas, puede pasar una matriz como esta: \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Para escribir una sola columna de tres filas, pase una matriz como esta: \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Un TableData objeto Se escribirá una tabla con encabezados.

Estas acciones específicas de aplicaciones también se pueden realizar al escribir datos en un enlace. Para Word, los datos especificados se escriben en el enlace como se indica a continuación.

Valor data Datos escritos
Una cadena Se escribe el texto que se ha especificado.
Matriz de matrices ("matriz") o un TableData objeto Se escribe una tabla de Word.
HTML Se escribe el contenido HTML que se ha especificado. Si alguno de los HTML que escribe no es válido, Word no generará un error. Word will write as much of the HTML as it can and will omit any invalid data.
Office Open XML ("Open XML") Se escribe el contenido XML que se ha especificado.

Para Excel, los datos especificados se escriben en el enlace como se indica a continuación.

Valor data Datos escritos
Una cadena El texto que se ha especificado se inserta como el valor de la primera celda que se haya enlazado. También puede especificar una fórmula válida para agregarla a la celda enlazada. Por ejemplo, establecer data en "=SUM(A1:A5)" totalizará los valores en el rango especificado. Pero cuando se establece una fórmula en la celda dependiente, después de hacerlo, no se puede leer desde la celda dependiente la fórmula agregada (o cualquier fórmula preexistente). Si llama al Binding.getDataAsync método en la celda enlazada para leer sus datos, el método solo puede devolver los datos mostrados en la celda (resultado de la fórmula).
Una matriz de matrices ("matrix") y la forma coincide exactamente con la forma del enlace que se ha especificado Se escribe el conjunto de filas y columnas. También puede especificar una matriz de matrices que contenga fórmulas válidas para agregarlas a las celdas enlazadas. Por ejemplo, al establecer los datos en \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] , se agregarán esas dos fórmulas a un enlace que contiene dos celdas. Al igual que al establecer una fórmula en una sola celda enlazada, no se pueden leer las fórmulas agregadas (ni ninguna fórmula preexistente) del enlace con el Binding.getDataAsync método : solo devuelve los datos mostrados en las celdas enlazadas.
Un TableData objeto y la forma de la tabla coincide con la tabla enlazada Se escribe el conjunto especificado de filas o encabezados si no se van a sobrescribir otros datos de las celdas contiguas. **Nota**: Si especifica fórmulas en el TableData objeto que pasa para el parámetro *data*, es posible que no obtenga los resultados esperados debido a la característica "columnas calculadas" de Excel, que duplica automáticamente las fórmulas dentro de una columna. Para solucionar este problema cuando desee escribir *data* que contenga fórmulas en una tabla enlazada, intente especificar los datos como una matriz de matrices (en lugar de un TableData objeto) y especifique *coercionType* como Microsoft.Office.Matrix o "matrix".

Para Excel en la Web:

  • El número total de celdas del valor pasado al parámetro data no puede superar las 20 000 en una sola llamada a este método.

  • El número de grupos de formato pasados al parámetro cellFormat no puede superar los 100. Un único grupo de formato consta de un conjunto de formato aplicado a un rango de celdas especificado.

En todos los casos restantes, se devolverá un error.

El método setDataAsync escribirá datos en un subconjunto de un enlace de tabla o matriz si se especifican los parámetros startRow e startColumn opcionales y especifican un intervalo válido.

En la función de devolución de llamada que se ha pasado al método setDataAsync, puede usar las propiedades del objeto AsyncResult para devolver la siguiente información.

Propiedad Utilice
AsyncResult.value Siempre devuelve undefined porque no hay ningún objeto o datos que recuperar.
AsyncResult.status Determinar si la operación se ha completado correctamente o no.
AsyncResult.error Tener acceso a un objeto Error que proporcione información sobre el error si la operación no se ha llevado a cabo correctamente.
AsyncResult.asyncContext Defina un elemento de cualquier tipo que se devuelva en el objeto AsyncResult sin modificarse.

setDataAsync(data, callback)

Escribe datos en la sección enlazada del documento que representa el objeto de enlace que se ha especificado.

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

Parámetros

data

Office.TableData | any

Los datos que se definirán en la selección actual. Posibles tipos de datos por aplicación de Office:

string: Excel en la Web y en Windows, y Word en la web y solo en Windows

matriz de matrices: Solo Excel y Word

TableData : solo Excel y Word

HTML: Word en la web y solo en Windows

Office Open XML: solo Word

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjuntos de requisitos:

El valor pasado para los datos contiene los datos que se van a escribir en el enlace. El tipo de valor que se pasa determina qué se escribirá, tal como se describe en la tabla siguiente.

Valor data Datos escritos
Una cadena Se escribirá texto sin formato o cualquier cosa que se pueda convertir en una cadena.
Una matriz de matrices ("matriz") Se escribirán datos tabulares sin encabezados. Por ejemplo, para escribir datos en tres filas de dos columnas, puede pasar una matriz como esta: \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Para escribir una sola columna de tres filas, pase una matriz como esta: \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Un TableData objeto Se escribirá una tabla con encabezados.

Estas acciones específicas de aplicaciones también se pueden realizar al escribir datos en un enlace. Para Word, los datos especificados se escriben en el enlace como se indica a continuación.

Valor data Datos escritos
Una cadena Se escribe el texto que se ha especificado.
Matriz de matrices ("matriz") o un TableData objeto Se escribe una tabla de Word.
HTML Se escribe el contenido HTML que se ha especificado. Si alguno de los HTML que escribe no es válido, Word no generará un error. Word will write as much of the HTML as it can and will omit any invalid data.
Office Open XML ("Open XML") Se escribe el contenido XML que se ha especificado.

Para Excel, los datos especificados se escriben en el enlace como se indica a continuación.

Valor data Datos escritos
Una cadena El texto que se ha especificado se inserta como el valor de la primera celda que se haya enlazado. También puede especificar una fórmula válida para agregarla a la celda enlazada. Por ejemplo, establecer data en "=SUM(A1:A5)" totalizará los valores en el rango especificado. Pero cuando se establece una fórmula en la celda dependiente, después de hacerlo, no se puede leer desde la celda dependiente la fórmula agregada (o cualquier fórmula preexistente). Si llama al Binding.getDataAsync método en la celda enlazada para leer sus datos, el método solo puede devolver los datos mostrados en la celda (resultado de la fórmula).
Una matriz de matrices ("matrix") y la forma coincide exactamente con la forma del enlace que se ha especificado Se escribe el conjunto de filas y columnas. También puede especificar una matriz de matrices que contenga fórmulas válidas para agregarlas a las celdas enlazadas. Por ejemplo, al establecer los datos en \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] , se agregarán esas dos fórmulas a un enlace que contiene dos celdas. Al igual que al establecer una fórmula en una sola celda enlazada, no se pueden leer las fórmulas agregadas (ni ninguna fórmula preexistente) del enlace con el Binding.getDataAsync método : solo devuelve los datos mostrados en las celdas enlazadas.
Un TableData objeto y la forma de la tabla coincide con la tabla enlazada Se escribe el conjunto especificado de filas o encabezados si no se van a sobrescribir otros datos de las celdas contiguas. **Nota**: Si especifica fórmulas en el TableData objeto que pasa para el parámetro *data*, es posible que no obtenga los resultados esperados debido a la característica "columnas calculadas" de Excel, que duplica automáticamente las fórmulas dentro de una columna. Para solucionar este problema cuando desee escribir *data* que contenga fórmulas en una tabla enlazada, intente especificar los datos como una matriz de matrices (en lugar de un TableData objeto) y especifique *coercionType* como Microsoft.Office.Matrix o "matrix".

Para Excel en la Web:

  • El número total de celdas del valor pasado al parámetro data no puede superar las 20 000 en una sola llamada a este método.

  • El número de grupos de formato pasados al parámetro cellFormat no puede superar los 100. Un único grupo de formato consta de un conjunto de formato aplicado a un rango de celdas especificado.

En todos los casos restantes, se devolverá un error.

El método setDataAsync escribirá datos en un subconjunto de un enlace de tabla o matriz si se especifican los parámetros startRow e startColumn opcionales y especifican un intervalo válido.

En la función de devolución de llamada que se ha pasado al método setDataAsync, puede usar las propiedades del objeto AsyncResult para devolver la siguiente información.

Propiedad Utilice
AsyncResult.value Siempre devuelve undefined porque no hay ningún objeto o datos que recuperar.
AsyncResult.status Determinar si la operación se ha completado correctamente o no.
AsyncResult.error Tener acceso a un objeto Error que proporcione información sobre el error si la operación no se ha llevado a cabo correctamente.
AsyncResult.asyncContext Defina un elemento de cualquier tipo que se devuelva en el objeto AsyncResult sin modificarse.

Ejemplos

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