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 .


O Calc do LibreOffice pode ser ampliado a través de complementos, que son módulos de programación externos que fornecen funcións adicionais para o traballo con follas de cálculo. Estes aparecen listados en Asistente de funcións na categoría Complemento. Se desexa programar un complemento, pode aprender aquí que funcións deben ser exportados pola para que o complemento poida 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


Precisamos da súa axuda!