Add-in para Programación en $ [officename] Calc

Icona Aviso

O método de estender Calc por add-ins que está descrito no seguinte está desactualizados. As interfaces aínda son válidas e apoiar, para asegurar compatibilidade coa existente Add-Ins, pero para programando un novo add-ins que pode usar o novo funcións da API .


LibreOffice Calc pode ser ampliada por add-ins, que son módulos de programación externos que fornecen funcións adicionais para o traballo con follas de cálculo. Estes son listados en Asistente de funcións na Add-in categoría. Se desexa programar un suplemento, podes aprender aquí funcións deben ser exportados polo para que o suplemento pode ser anexado con éxito.

LibreOffice searches the Add-in folder defined in the configuration for a suitable . To be recognized by LibreOffice, the must have certain properties, as explained in the following. This information allows you to program your own Add-In for Function Wizard of LibreOffice Calc.

O Concepto Add-In

Cada biblioteca Add-in ofrece diversas funcións. Algunhas funcións son utilizados para fins administrativos. Pode escoller practicamente calquera nome para as súas propias funcións. Con todo, eles tamén deben seguir certas regras relativas a paso de parámetros. As convencións de nomenclatura exactas e chamando variar para diferentes plataformas.

Funcións de

Como mínimo, as funcións administrativas GetFunctionCount e GetFunctionData debe existir. Usando estas, as funcións, así como tipo de parámetros e valores de retorno pode ser determinada. Como valores de retorno, os tipos de Casal e de corda son soportados. Como parámetros, adicionalmente, as áreas de células Double Array , Array cadea e matriz celular dispoñible.

Os parámetros son pasados ​​mediante referencias. Polo tanto, un cambio destes valores é basicamente posible. Con todo, este non é soportado no $ [officename] Calc, pois non ten sentido dentro de follas de cálculo.

As bibliotecas poden recargarse durante a execución e os seus contidos poden ser analizados por as funcións de administración. Para cada función, hai información dispoñible sobre conta e tipo de parámetros, nomes de funcións internas e externas e un número administrativo.

As funcións son chamadas de forma síncrona e voltar seus resultados inmediatamente. Funcións de tempo real (funcións asíncrono) tamén son posibles; con todo, eles non son explicadas en detalle en virtude da súa complexidade.

Información xeral sobre a interface

O número máximo de parámetros nunha función Add-In ligado ao $ [officename] Calc é de 16: un valor de retorno e un máximo de 15 parámetros de entrada de función.

Os tipos de datos son definidos como segue:

Os tipos de datos

Definición

CALLTYPE

En Windows: FAR PASCAL (_far _pascal)

Outros: estándar (sistema operativo estándar específico)

USHORT

2 Byte non asinado Enteiros

Duplo

Formato dependente de plataforma de 8 bytes

Paramtype

Como int dependente de plataforma

PTR_DOUBLE = 0 punteiro para un dobre

PTR_STRING = 1 punteiro para unha cadea terminada en cero

PTR_DOUBLE_ARR = 2 punteiro para unha matriz de parella

PTR_STRING_ARR = 3 punteiro para unha matriz de cadea

PTR_CELA_ARR = 4 punteiro para unha matriz de células

Ningún


funcións

Abaixo, atoparás unha descrición desas funcións, que son chamados no .

Por todo funcións, aplicarase o seguinte:

CALLTYPE baleiro fn (fóra, in1, in2, ...)

Saída: Resultante valor

Entrada: Calquera número de tipos (matrimonio e, char *, o dobre *, char **, área móbil), onde a Área móbil é unha matriz de tipo de matriz dobre, matriz de cadea, ou de matriz celular.

GetFunctionCount()

Devolve o número de funcións sen as funcións do parámetro de referencia de xestión. Cada función ten un número exclusivo entre 0 e nCount-1. Este número será necesario para o GetFunctionData e GetParameterDescription funcións máis tarde.

Sintaxe

CALLTYPE baleiro GetFunctionCount (USHORT & nCount)

Parámetro

USHORT & nCount:

Saída: referencia a unha variable, que se quere para conter o número de add-in funcións. Por exemplo: Se o suplemento ofrece cinco funcións para $ [officename] Calc, entón nCount = 5.

GetFunctionData ()

Determina toda a información importante sobre unha función Add-In.

Sintaxe

anular CALLTYPE GetFunctionData (USHORT & NNO, char * pFuncName, USHORT & nParamCount, Paramtype * peType, char * pInternalName)

Parámetro

USHORT & NNO:

Número de función entre 0 e nCount-1, incluso: entrada.

char * pFuncName:

Nome da función, como visto polo programador, como é chamado no : Output . Ese nome non determina o nome usado na Asistente de funcións .

USHORT & nParamCount:

Saída: Número de parámetros en función AddIn. Este número debe ser superior a 0, porque sempre hai un valor de resultado; o valor máximo é 16.

Paramtype * peType:

Saída: Punteiro a unha matriz de exactamente 16 variables do tipo Paramtype. As primeiras entradas nParamCount énchense co tipo adecuado de parámetro.

char * pInternalName:

Saída: Nome da función, como visto polo usuario, como aparece no Asistente de funcións . Pode conter tremas.

Os parámetros pFuncName e pInternalName son matrices de caracteres, que son aplicados con tamaño 256 en $ [officename] Calc.

GetParameterDescription ()

Ofrece unha breve descrición da función Add-In e os seus parámetros. Como unha opción, esta función pode usarse para mostrar unha descrición da función e parámetro no Asistente de funcións .

Sintaxe

anular CALLTYPE GetParameterDescription (USHORT & NNO, USHORT & nParam, char * pName, char * pDesc)

Parámetro

USHORT & NNO:

Entrada: Número da función na biblioteca; entre 0 e nCount-1.

USHORT & nParam:

Entrada: Indica, para o cal parámetro a descrición é proporcionada; parámetros comezan en 1. Se nParam é 0, a propia descrición se quere que sexa subministrada en pDesc; neste caso, pName non ten ningún significado.

char * pName:

Output: Takes up the parameter name or type, for example, the word "Number" or "String" or "Date", and so on. Implemented in LibreOffice Calc as char[256].

char * pDesc:

Output: Takes up the description of the parameter, for example, "Value, at which the universe is to be calculated." Implemented in LibreOffice Calc as char[256].

pName e pDesc ​​son matrices de caracteres; aplicado en $ [officename] Calc co tamaño 256. Teña en conta que o espazo dispoñible no Función Asistente é limitado e que os 256 caracteres non pode ser plenamente utilizado.

Áreas de células

As táboas a continuación conteñen información sobre as estruturas de datos debe ser proporcionada por un módulo de programa externo, a fin de pasar áreas móbiles. $ [Officename] Calc distingue entre tres matrices diferentes, dependendo do tipo de datos.

Double Array

Como un parámetro, unha área de celas con valores do número / tipo dobre pode ser pasado. Unha matriz de parella no $ [officename] Calc defínese do seguinte xeito:

DESPRAZAMENTO

A

Descrición

0

Col

Número da columna na esquina superior esquerda da zona da célula. Numeración comeza en 0.

2

Fila

Número da liña na parte superior esquerda da área de células; numeración comeza en 0.

4

Tabulación

Número de mesa na esquina superior esquerda da zona de células; numeración comeza en 0.

6

Col

Número de columna no canto inferior dereito da área de cela. Numeración comeza en 0.

8

Fila

Número da liña na parte inferior dereita da área de células; numeración comeza en 0.

10

Tab2

Número de mesa no ángulo inferior dereito da área de cela; numeración comeza en 0.

12

Conta

Número dos seguintes elementos. As celas vacías non son contadas ou pasado.

14

Col

O número da columna do elemento. Numeración comeza en 0.

16

Fila

Número da liña do elemento; numeración comeza en 0.

18

Tabulación

Número da táboa do elemento; numeración comeza en 0.

20

Erro

Error number, where the value 0 is defined as "no error." If the element comes from a formula cell the error value is determined by the formula.

22

Valor

8 bytes variable IEEE do tipo double / punto flotante

30

...

Seguinte eelemnto


Matriz de cadea de caracteres

A área de celas que contén os valores do tipo de datos de texto e é pasada como unha matriz de cadea. A matriz de cadea en $ [officename] Calc defínese do seguinte xeito:

DESPRAZAMENTO

A

Descrición

0

Col

Número da columna na esquina superior esquerda da zona da célula. Numeración comeza en 0.

2

Fila

Número da liña na parte superior esquerda da área de células; numeración comeza en 0.

4

Tabulación

Número de mesa na esquina superior esquerda da zona de células; numeración comeza en 0.

6

Col

Número de columna no canto inferior dereito da área de cela. Numeración comeza en 0.

8

Fila

Número da liña na parte inferior dereita da área de células; numeración comeza en 0.

10

Tab2

Número de mesa no ángulo inferior dereito da área de cela; numeración comeza en 0.

12

Conta

Número dos seguintes elementos. As celas vacías non son contadas ou pasado.

14

Col

O número da columna do elemento. Numeración comeza en 0.

16

Fila

Número da liña do elemento; numeración comeza en 0.

18

Tabulación

Número da táboa do elemento; numeración comeza en 0.

20

Erro

Error number, where the value 0 is defined as "no error." If the element comes from a formula cell the error value is determined by the formula.

22

Len

Duración do seguinte secuencia de caracteres, incluíndo o peche byte cero. Se a lonxitude do peche incluíndo cero bytes é igual a un valor impar un segundo byte cero se engade á cadea, de xeito que un mesmo valor é alcanzar. Polo tanto, Len calcúlase usando ((strlen + 2) & ~ 1).

24

Cadea

Cadea con peche cero byte

Len

...

Seguinte eelemnto


Matriz celular

Conxuntos de células son usadas para chamar áreas de células que conteñen texto, así como números. A matriz de células no $ [officename] Calc defínese do seguinte xeito:

DESPRAZAMENTO

A

Descrición

0

Col

Número da columna na esquina superior esquerda da zona da célula. Numeración comeza en 0.

2

Fila

Número da liña na parte superior esquerda da área de células; numeración comeza en 0.

4

Tabulación

Número de mesa na esquina superior esquerda da zona de células; numeración comeza en 0.

6

Col

Número de columna no canto inferior dereito da área de cela. Numeración comeza en 0.

8

Fila

Número da liña na parte inferior dereita da área de células; numeración comeza en 0.

10

Tab2

Número de mesa no ángulo inferior dereito da área de cela; numeración comeza en 0.

12

Conta

Número dos seguintes elementos. As celas vacías non son contadas ou pasado.

14

Col

O número da columna do elemento. Numeración comeza en 0.

16

Fila

Número da liña do elemento; numeración comeza en 0.

18

Tabulación

Número da táboa do elemento; numeración comeza en 0.

20

Erro

Error number, where the value 0 is defined as "no error." If the element comes from a formula cell the error value is determined by the formula.

22

Tipo

Tipo de contido da cela, 0 == Dobre, 1 == Corda

24

Valor ou Len

Se tipo == 0: 8 bytes variable IEEE do tipo double / punto flotante

Se tipo == 1: Duración do seguinte secuencia de caracteres, incluíndo o peche byte cero. Se a lonxitude do peche incluíndo cero bytes é igual a un valor impar un segundo byte cero se engade á cadea, de xeito que un mesmo valor é alcanzar. Polo tanto, Len calcúlase usando ((strlen + 2) & ~ 1).

26 se o tipo == 1

Cadea

Se tipo == 1: String con peche cero byte

32 ou 26 + Len

...

Seguinte eelemnto