Office.Binding interface

Représente une liaison à une section du document.

L’objet Binding expose les fonctionnalités de toutes les liaisons, quel que soit leur type.

L’objet Binding n’est jamais appelé directement. Il s’agit de la classe parent abstraite des objets qui représentent chaque type de liaison : Office.MatrixBinding, Office.TableBinding ou Office.TextBinding. Ces trois objets héritent des méthodes getDataAsync et setDataAsync de l’objet Binding qui vous permettent d’interagir avec les données de la liaison. Ils héritent également des propriétés ID et type pour interroger ces valeurs de propriété. En outre, les objets MatrixBinding et TableBinding exposent des méthodes supplémentaires pour les fonctionnalités relatives aux matrices et aux tableaux, par exemple le dénombrement des lignes et des colonnes.

Propriétés

document

Obtenir l’objet Document associé à la reliure.

id

Chaîne qui identifie de manière unique cette liaison parmi les liaisons du même objet Office.Document .

type

Obtient le type de la liaison.

Méthodes

addHandlerAsync(eventType, handler, options, callback)

Ajoute un gestionnaire d’événements à l’objet pour l’Office.EventType spécifié. Les types d’événements pris en charge sont Office.EventType.BindingDataChangedOffice.EventType.BindingSelectionChangedet .

addHandlerAsync(eventType, handler, callback)

Ajoute un gestionnaire d’événements à l’objet pour l’Office.EventType spécifié. Les types d’événements pris en charge sont Office.EventType.BindingDataChangedOffice.EventType.BindingSelectionChangedet .

getDataAsync(options, callback)

Retourne les données contenues dans la liaison.

getDataAsync(callback)

Retourne les données contenues dans la liaison.

removeHandlerAsync(eventType, options, callback)

Supprime le gestionnaire spécifié de la liaison pour le type d’événement spécifié.

removeHandlerAsync(eventType, callback)

Supprime le gestionnaire spécifié de la liaison pour le type d’événement spécifié.

setDataAsync(data, options, callback)

Écrit des données dans la section liée du document représenté par l’objet de liaison spécifié.

setDataAsync(data, callback)

Écrit des données dans la section liée du document représenté par l’objet de liaison spécifié.

Détails de la propriété

document

Obtenir l’objet Document associé à la reliure.

document: Office.Document;

Valeur de propriété

Exemples

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

Chaîne qui identifie de manière unique cette liaison parmi les liaisons du même objet Office.Document .

id: string;

Valeur de propriété

string

Exemples

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

Obtient le type de la liaison.

type: Office.BindingType;

Valeur de propriété

Exemples

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

Détails de la méthode

addHandlerAsync(eventType, handler, options, callback)

Ajoute un gestionnaire d’événements à l’objet pour l’Office.EventType spécifié. Les types d’événements pris en charge sont Office.EventType.BindingDataChangedOffice.EventType.BindingSelectionChangedet .

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

Paramètres

eventType
Office.EventType

Type d’événement. Pour les liaisons, il peut s’agir Office.EventType.BindingDataChanged de ou Office.EventType.BindingSelectionChanged.

handler

any

Fonction de gestionnaire d’événements à ajouter, dont le seul paramètre est de type Office.BindingDataChangedEventArgs ou Office.BindingSelectionChangedEventArgs.

options
Office.AsyncContextOptions

Fournit une option permettant de conserver les données de contexte de tout type, inchangées, pour une utilisation dans un rappel.

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult.

Retours

void

Remarques

Jeu de conditions préalables : BindingEvents

Vous pouvez ajouter plusieurs gestionnaires d’événements pour le type d’événement spécifié tant que le nom de chaque fonction de gestionnaire d’événements est unique.

addHandlerAsync(eventType, handler, callback)

Ajoute un gestionnaire d’événements à l’objet pour l’Office.EventType spécifié. Les types d’événements pris en charge sont Office.EventType.BindingDataChangedOffice.EventType.BindingSelectionChangedet .

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

Paramètres

eventType
Office.EventType

Type d’événement. Pour les liaisons, il peut s’agir Office.EventType.BindingDataChanged de ou Office.EventType.BindingSelectionChanged.

handler

any

Fonction de gestionnaire d’événements à ajouter, dont le seul paramètre est de type Office.BindingDataChangedEventArgs ou Office.BindingSelectionChangedEventArgs.

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult.

Retours

void

Remarques

Jeu de conditions préalables : BindingEvents

Vous pouvez ajouter plusieurs gestionnaires d’événements pour le type d’événement spécifié tant que le nom de chaque fonction de gestionnaire d’événements est unique.

Exemples

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

Retourne les données contenues dans la liaison.

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

Paramètres

options
Office.GetBindingDataOptions

Fournit des options pour obtenir les données dans une liaison.

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult. La value propriété du résultat correspond aux valeurs de la liaison spécifiée. Si le coercionType paramètre est spécifié (et que l’appel réussit), les données sont retournées dans le format décrit dans la rubrique d’énumération CoercionType.

Retours

void

Remarques

Ensembles de conditions requises :

Lorsqu’elle est appelée à partir d’un MatrixBinding ou d’un TableBinding, la méthode getDataAsync retourne un sous-ensemble des valeurs liées si les paramètres facultatifs startRow, startColumn, rowCount et columnCount sont spécifiés (et qu’ils spécifient une plage contiguë et valide).

getDataAsync(callback)

Retourne les données contenues dans la liaison.

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

Paramètres

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult. La value propriété du résultat correspond aux valeurs de la liaison spécifiée. Si le coercionType paramètre est spécifié (et que l’appel réussit), les données sont retournées dans le format décrit dans la rubrique d’énumération CoercionType.

Retours

void

Remarques

Ensembles de conditions requises :

Lorsqu’elle est appelée à partir d’un MatrixBinding ou d’un TableBinding, la méthode getDataAsync retourne un sous-ensemble des valeurs liées si les paramètres facultatifs startRow, startColumn, rowCount et columnCount sont spécifiés (et qu’ils spécifient une plage contiguë et valide).

Exemples

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 === Office.AsyncResultStatus.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 === Office.AsyncResultStatus.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)

Supprime le gestionnaire spécifié de la liaison pour le type d’événement spécifié.

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

Paramètres

eventType
Office.EventType

Type d’événement. Pour les liaisons, il peut s’agir Office.EventType.BindingDataChanged de ou Office.EventType.BindingSelectionChanged.

options
Office.RemoveHandlerOptions

Fournit des options pour déterminer quel(s) gestionnaire(s) d’événements sont supprimés.

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult.

Retours

void

Remarques

Jeu de conditions préalables : BindingEvents

removeHandlerAsync(eventType, callback)

Supprime le gestionnaire spécifié de la liaison pour le type d’événement spécifié.

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

Paramètres

eventType
Office.EventType

Type d’événement. Pour les liaisons, il peut s’agir Office.EventType.BindingDataChanged de ou Office.EventType.BindingSelectionChanged.

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult.

Retours

void

Remarques

Jeu de conditions préalables : BindingEvents

Exemples

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

setDataAsync(data, options, callback)

Écrit des données dans la section liée du document représenté par l’objet de liaison spécifié.

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

Paramètres

data

Office.TableData | any

Données à définir dans la sélection actuelle. Types de données possibles par application Office :

chaîne : Excel sur le Web et sur Windows, et Word sur le Web et sur Windows uniquement

Tableau de tableaux : Excel et Word uniquement

Office.TableData : Excel et Word uniquement

HTML : Word sur le web et sur Windows uniquement

Office Open XML : Word uniquement

options
Office.SetBindingDataOptions

Fournit des options de définition des données dans une liaison.

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult.

Retours

void

Remarques

Ensembles de conditions requises :

La valeur transmise pour les données contient les données à écrire dans la liaison. Le type de valeur transmis détermine ce qui sera écrit, comme le décrit le tableau suivant.

Valeur data Données écrites
Une chaîne de caractère Le texte brut ou tout ce qui peut être contraint à une chaîne sera écrit.
Tableau de tableaux (« matrice ») Les données sous forme de tableau sans en-têtes seront écrites. Par exemple, pour écrire des données sur trois lignes dans deux colonnes, vous pouvez transmettre un tableau comme suit : \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Pour écrire une seule colonne de trois lignes, passez un tableau comme celui-ci : \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Un TableData objet Un tableau avec des en-têtes est écrit.

En outre, ces actions (spécifiques aux applications) s’appliquent lors de l’écriture de données dans une liaison. Pour Word, les données spécifiées sont écrites dans la liaison comme suit.

Valeur data Données écrites
Une chaîne de caractère Le texte spécifié est écrit.
Un tableau de tableaux (« matrice ») ou un TableData objet Un tableau Word est écrit.
HTML Le code HTML spécifié est écrit. Si le code HTML que vous écrivez n’est pas valide, Word ne déclenche aucune erreur. Word écrit autant de code HTML que possible et omet les données non valides.
Office Open XML (« Open XML ») Le code XML spécifié est écrit.

Pour Excel, les données spécifiées sont écrites dans la liaison comme suit.

Valeur data Données écrites
Une chaîne de caractère Le texte spécifié est inséré en tant que valeur de la première cellule liée. Vous pouvez également spécifier une formule valide pour l’ajouter à la cellule liée. Par exemple, la définition du paramètre data sur "=SUM(A1:A5)" totalisera les valeurs de la plage spécifiée. Toutefois, après avoir défini une formule sur la cellule liée, vous ne pouvez pas lire la formule ajoutée (ni les formules préexistantes) à partir de la cellule liée. Si vous appelez la Binding.getDataAsync méthode sur la cellule liée pour lire ses données, elle ne peut renvoyer que les données affichées dans la cellule (le résultat de la formule).
Tableau de tableaux ("matrix") et la forme correspond exactement à la forme de la liaison spécifiée L’ensemble des lignes et des colonnes est écrit. Vous pouvez également spécifier un tableau de tableaux contenant des formules valides pour les ajouter aux cellules liées. Par exemple, la définition de données \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] ajoute ces deux formules à une liaison qui contient deux cellules. Tout comme lors de la définition d’une formule sur une cellule liée unique, vous ne pouvez pas lire les formules ajoutées (ou les formules préexistantes) à partir de la liaison avec la Binding.getDataAsync méthode : elle renvoie uniquement les données affichées dans les cellules liées.
Un TableData objet et la forme du tableau correspond au tableau dépendant L’ensemble spécifié de lignes et/ou d’en-têtes est écrit, si aucune autre donnée dans les cellules environnantes ne sera écrasée. **Note** : Si vous spécifiez des formules dans l’objet TableData que vous transmettez pour le paramètre *data*, vous risquez de ne pas obtenir les résultats attendus en raison de la fonctionnalité « colonnes calculées » d’Excel, qui duplique automatiquement les formules dans une colonne. Pour contourner ce problème lorsque vous voulez écrire des *données* contenant des formules dans une table liée, essayez de spécifier les données sous la forme d’un tableau de tableaux (au lieu d’un TableData objet), puis spécifiez le type de *coercion* en tant que Microsoft.Office.Matrix ou « matrice ».

Pour Excel sur le Web :

  • Le nombre total de cellules dans la valeur transmise au paramètre data ne peut pas dépasser 20 000 lors d’un appel unique à cette méthode.

  • Le nombre de groupes de mise en forme transmis au paramètre cellFormat ne peut pas dépasser 100. Un groupe de mise en forme se compose d’un ensemble de mises en forme appliquées à une plage de cellules donnée.

Dans tous les autres cas, une erreur est retournée.

La méthode setDataAsync écrit les données dans un sous-ensemble d’une liaison de table ou de matrice si les paramètres facultatifs startRow et startColumn sont spécifiés et qu’ils spécifient une plage valide.

Dans la fonction de rappel passée à la méthode setDataAsync, vous pouvez utiliser les propriétés de l’objet AsyncResult pour renvoyer les informations suivantes.

Propriété Utilisation
AsyncResult.value Retourne undefined toujours, car il n’y a pas d’objet ou de données à récupérer.
AsyncResult.status Déterminer si l’opération a réussi ou échoué.
AsyncResult.error Accéder à un objet Error fournissant des informations sur l’erreur en cas d’échec de l’opération.
AsyncResult.asyncContext Définissez un élément de n’importe quel type qui est renvoyé dans l’objet AsyncResult sans être modifié.

setDataAsync(data, callback)

Écrit des données dans la section liée du document représenté par l’objet de liaison spécifié.

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

Paramètres

data

Office.TableData | any

Données à définir dans la sélection actuelle. Types de données possibles par application Office :

chaîne : Excel sur le Web et sur Windows, et Word sur le Web et sur Windows uniquement

Tableau de tableaux : Excel et Word uniquement

TableData : Excel et Word uniquement

HTML : Word sur le web et sur Windows uniquement

Office Open XML : Word uniquement

callback

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

Facultatif. Une fonction qui est appelée lorsque le rappel est renvoyé, dont le seul paramètre est de type Office.AsyncResult.

Retours

void

Remarques

Ensembles de conditions requises :

La valeur transmise pour les données contient les données à écrire dans la liaison. Le type de valeur transmis détermine ce qui sera écrit, comme le décrit le tableau suivant.

Valeur data Données écrites
Une chaîne de caractère Le texte brut ou tout ce qui peut être contraint à une chaîne sera écrit.
Tableau de tableaux (« matrice ») Les données sous forme de tableau sans en-têtes seront écrites. Par exemple, pour écrire des données sur trois lignes dans deux colonnes, vous pouvez transmettre un tableau comme suit : \[\["R1C1", "R1C2"\], \["R2C1", "R2C2"\], \["R3C1", "R3C2"\]\]. Pour écrire une seule colonne de trois lignes, passez un tableau comme celui-ci : \[\["R1C1"\], \["R2C1"\], \["R3C1"\]\].
Un TableData objet Un tableau avec des en-têtes est écrit.

En outre, ces actions (spécifiques aux applications) s’appliquent lors de l’écriture de données dans une liaison. Pour Word, les données spécifiées sont écrites dans la liaison comme suit.

Valeur data Données écrites
Une chaîne de caractère Le texte spécifié est écrit.
Un tableau de tableaux (« matrice ») ou un TableData objet Un tableau Word est écrit.
HTML Le code HTML spécifié est écrit. Si le code HTML que vous écrivez n’est pas valide, Word ne déclenche aucune erreur. Word écrit autant de code HTML que possible et omet les données non valides.
Office Open XML (« Open XML ») Le code XML spécifié est écrit.

Pour Excel, les données spécifiées sont écrites dans la liaison comme suit.

Valeur data Données écrites
Une chaîne de caractère Le texte spécifié est inséré en tant que valeur de la première cellule liée. Vous pouvez également spécifier une formule valide pour l’ajouter à la cellule liée. Par exemple, la définition du paramètre data sur "=SUM(A1:A5)" totalisera les valeurs de la plage spécifiée. Toutefois, après avoir défini une formule sur la cellule liée, vous ne pouvez pas lire la formule ajoutée (ni les formules préexistantes) à partir de la cellule liée. Si vous appelez la Binding.getDataAsync méthode sur la cellule liée pour lire ses données, elle ne peut renvoyer que les données affichées dans la cellule (le résultat de la formule).
Tableau de tableaux ("matrix") et la forme correspond exactement à la forme de la liaison spécifiée L’ensemble des lignes et des colonnes est écrit. Vous pouvez également spécifier un tableau de tableaux contenant des formules valides pour les ajouter aux cellules liées. Par exemple, la définition de données \[\["=SUM(A1:A5)","=AVERAGE(A1:A5)"\]\] ajoute ces deux formules à une liaison qui contient deux cellules. Tout comme lors de la définition d’une formule sur une cellule liée unique, vous ne pouvez pas lire les formules ajoutées (ou les formules préexistantes) à partir de la liaison avec la Binding.getDataAsync méthode : elle renvoie uniquement les données affichées dans les cellules liées.
Un TableData objet et la forme du tableau correspond au tableau dépendant L’ensemble spécifié de lignes et/ou d’en-têtes est écrit, si aucune autre donnée dans les cellules environnantes ne sera écrasée. **Note** : Si vous spécifiez des formules dans l’objet TableData que vous transmettez pour le paramètre *data*, vous risquez de ne pas obtenir les résultats attendus en raison de la fonctionnalité « colonnes calculées » d’Excel, qui duplique automatiquement les formules dans une colonne. Pour contourner ce problème lorsque vous voulez écrire des *données* contenant des formules dans une table liée, essayez de spécifier les données sous la forme d’un tableau de tableaux (au lieu d’un TableData objet), puis spécifiez le type de *coercion* en tant que Microsoft.Office.Matrix ou « matrice ».

Pour Excel sur le Web :

  • Le nombre total de cellules dans la valeur transmise au paramètre data ne peut pas dépasser 20 000 lors d’un appel unique à cette méthode.

  • Le nombre de groupes de mise en forme transmis au paramètre cellFormat ne peut pas dépasser 100. Un groupe de mise en forme se compose d’un ensemble de mises en forme appliquées à une plage de cellules donnée.

Dans tous les autres cas, une erreur est retournée.

La méthode setDataAsync écrit les données dans un sous-ensemble d’une liaison de table ou de matrice si les paramètres facultatifs startRow et startColumn sont spécifiés et qu’ils spécifient une plage valide.

Dans la fonction de rappel passée à la méthode setDataAsync, vous pouvez utiliser les propriétés de l’objet AsyncResult pour renvoyer les informations suivantes.

Propriété Utilisation
AsyncResult.value Retourne undefined toujours, car il n’y a pas d’objet ou de données à récupérer.
AsyncResult.status Déterminer si l’opération a réussi ou échoué.
AsyncResult.error Accéder à un objet Error fournissant des informations sur l’erreur en cas d’échec de l’opération.
AsyncResult.asyncContext Définissez un élément de n’importe quel type qui est renvoyé dans l’objet AsyncResult sans être modifié.

Exemples

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 === Office.AsyncResultStatus.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 === Office.AsyncResultStatus.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){});