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 o 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
add |
Adiciona um processador de eventos ao objeto para o Office.EventType especificado. Os EventTypes suportados são |
add |
Adiciona um processador de eventos ao objeto para o Office.EventType especificado. Os EventTypes suportados 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 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:
HtmlCoercion (ao utilizar
Office.CoercionType.Html
)MatrixCoercion (ao utilizar
Office.CoercionType.Matrix
)OoxmlCoercion (ao utilizar
Office.CoercionType.Ooxml
)TableCoercion (ao utilizar
Office.CoercionType.Table
)TextCoercion (ao utilizar
Office.CoercionType.Text
)
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:
HtmlCoercion (ao utilizar
Office.CoercionType.Html
)MatrixCoercion (ao utilizar
Office.CoercionType.Matrix
)OoxmlCoercion (ao utilizar
Office.CoercionType.Ooxml
)TableCoercion (ao utilizar
Office.CoercionType.Table
)TextCoercion (ao utilizar
Office.CoercionType.Text
)
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: excel e apenas 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:
HtmlCoercion (ao utilizar
Office.CoercionType.Html
)MatrixCoercion (ao utilizar
Office.CoercionType.Matrix
)OoxmlCoercion (ao utilizar
Office.CoercionType.Ooxml
)TableCoercion (ao utilizar
Office.CoercionType.Table
)TextCoercion (ao utilizar
Office.CoercionType.Text
)
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. Por 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, 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 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: excel e apenas Word
TableData
: excel e apenas 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:
HtmlCoercion (ao utilizar
Office.CoercionType.Html
)MatrixCoercion (ao utilizar
Office.CoercionType.Matrix
)OoxmlCoercion (ao utilizar
Office.CoercionType.Ooxml
)TableCoercion (ao utilizar
Office.CoercionType.Table
)TextCoercion (ao utilizar
Office.CoercionType.Text
)
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. Por 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, 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 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){});