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 que você interaja com os dados na associação. Eles também herdam as propriedades ID e type 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 seu lugar)
Conjuntos de requisitos:
Usada por
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
| add |
Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. Os EventTypes com suporte são |
| add |
Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. Os EventTypes com suporte são |
| get |
Retorna os dados contidos na associação. |
| get |
Retorna os dados contidos na associação. |
| remove |
Remove o manipulador especificado da associação para o tipo de evento especificado. |
| remove |
Remove o manipulador especificado da associação para o tipo de evento especificado. |
| set |
Grava dados na seção associada do documento representado pelo objeto de associação especificado. |
| set |
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. Os 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 de 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 de manipulador de eventos seja exclusivo.
addHandlerAsync(eventType, handler, callback)
Adiciona um manipulador de eventos ao objeto para o Office.EventType especificado. Os 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 de 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 de 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 são 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:
HtmlCoercion (ao usar
Office.CoercionType.Html)MatrixCoercion (ao usar
Office.CoercionType.Matrix)OoxmlCoercion (ao usar
Office.CoercionType.Ooxml)TableCoercion (ao usar
Office.CoercionType.Table)TextCoercion (ao usar
Office.CoercionType.Text)
Quando chamado de um MatrixBinding ou TableBinding, o método getDataAsync retornará um subconjunto dos valores associados se os parâmetros opcionais startRow, startColumn, rowCount e columnCount forem especificados (e eles especificam 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 são 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:
HtmlCoercion (ao usar
Office.CoercionType.Html)MatrixCoercion (ao usar
Office.CoercionType.Matrix)OoxmlCoercion (ao usar
Office.CoercionType.Ooxml)TableCoercion (ao usar
Office.CoercionType.Table)TextCoercion (ao usar
Office.CoercionType.Text)
Quando chamado de um MatrixBinding ou TableBinding, o método getDataAsync retornará um subconjunto dos valores associados se os parâmetros opcionais startRow, startColumn, rowCount e columnCount forem especificados (e eles especificam 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 === 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)
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 qual(is) manipulador(es) de eventos são(s) removido(s).
- 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. Tipos de dados possíveis por aplicativo do Office:
cadeia de caracteres: Excel na Web e no Windows, e Word na Web e somente no Windows
matriz de matrizes: Somente Excel e Word
Office.TableData: somente Excel e Word
HTML: Word na Web e somente 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:
HtmlCoercion (ao usar
Office.CoercionType.Html)MatrixCoercion (ao usar
Office.CoercionType.Matrix)OoxmlCoercion (ao usar
Office.CoercionType.Ooxml)TableCoercion (ao usar
Office.CoercionType.Table)TextCoercion (ao usar
Office.CoercionType.Text)
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 sem formatação ou qualquer coisa que possa ser coagida a uma cadeia de caracteres será gravada. |
| 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 gravar 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 o 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 algum HTML que você 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 é gravado. |
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 associada. Você também pode especificar uma fórmula válida para adicionar essa fórmula à célula associada. 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 ligada para ler seus dados, o método poderá retornar apenas os dados exibidos 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 é gravado. Você também pode especificar uma matriz de matrizes que contêm fórmulas válidas para adicioná-las às células associadas. Por exemplo, definir data 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 associada, você não pode ler as fórmulas adicionadas (ou quaisquer fórmulas pré-existentes) da associação com o Binding.getDataAsync método - ele retorna apenas os dados exibidos nas células associadas. |
Um TableData objeto e a forma da tabela correspondem à tabela acoplada | 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 passado 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 quiser gravar *dados* que contenham fórmulas em uma tabela associada, tente especificar os dados como uma matriz de matrizes (em vez de um TableData objeto) e especifique *coercionType* como Microsoft.Office.Matrix ou "matrix". |
Para o 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 associação de tabela ou matriz se os parâmetros opcionais startRow e startColumn 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 a serem recuperados. |
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. Tipos de dados possíveis por aplicativo do Office:
cadeia de caracteres: Excel na Web e no Windows, e Word na Web e somente no Windows
matriz de matrizes: Somente Excel e Word
TableData
: Somente Excel e Word
HTML: Word na Web e somente 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:
HtmlCoercion (ao usar
Office.CoercionType.Html)MatrixCoercion (ao usar
Office.CoercionType.Matrix)OoxmlCoercion (ao usar
Office.CoercionType.Ooxml)TableCoercion (ao usar
Office.CoercionType.Table)TextCoercion (ao usar
Office.CoercionType.Text)
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 sem formatação ou qualquer coisa que possa ser coagida a uma cadeia de caracteres será gravada. |
| 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 gravar 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 o 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 algum HTML que você 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 é gravado. |
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 associada. Você também pode especificar uma fórmula válida para adicionar essa fórmula à célula associada. 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 ligada para ler seus dados, o método poderá retornar apenas os dados exibidos 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 é gravado. Você também pode especificar uma matriz de matrizes que contêm fórmulas válidas para adicioná-las às células associadas. Por exemplo, definir data 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 associada, você não pode ler as fórmulas adicionadas (ou quaisquer fórmulas pré-existentes) da associação com o Binding.getDataAsync método - ele retorna apenas os dados exibidos nas células associadas. |
Um TableData objeto e a forma da tabela correspondem à tabela acoplada | 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 passado 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 quiser gravar *dados* que contenham fórmulas em uma tabela associada, tente especificar os dados como uma matriz de matrizes (em vez de um TableData objeto) e especifique *coercionType* como Microsoft.Office.Matrix ou "matrix". |
Para o 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 associação de tabela ou matriz se os parâmetros opcionais startRow e startColumn 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 a serem recuperados. |
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 === 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){});