Axuda do LibreOfficeDev 25.8
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 $ [officename] pode ser ampliado con suplementos, que son módulos de programación externos que fornecen funcións adicionais para o traballo con follas de cálculo. Estes son listados no Asistente de funcións , na categoría Suplementos. Se desexa programar un suplemento, podes aprender aquí que funcións deben ser exportadas pola biblioteca compartida DLL externa para que o suplemento pode ser anexado con éxito.
O LibreOfficeDev procura no cartafol de suplementos indicado na configuración se existe unha biblioteca compartidaDLL axeitada. Para ser recoñecida polo LibreOfficeDev, a biblioteca compartida DLL debe ter certas propiedades, como se explica a continuación. Esta información permite programar o seu propio suplemento para o Asistente de funcións do Calc do LibreOfficeDev.
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.
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.
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 | 
| DOUBLE | 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 | 
Abaixo, atopará unha descrición desas funcións, que son chamados pola biblioteca compartida DLL externas .
Para todas as funcións con bibliotecas compartidas DLL , aplícase o seguinte:
void CALLTYPE fn(out, in1, in2, ...)
Saída: Valor resultante
Input: Any number of types (double&, char*, double*, char**, Cell area), where the Cell area is an array of types double array, string array, or cell array.
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
void CALLTYPE GetFunctionCount(USHORT& nCount)
Parámetro
USHORT &nCount:
Output: Reference to a variable, which is supposed to contain the number of Add-In functions. For example: If the Add-In provides 5 functions for LibreOfficeDev Calc, then nCount=5.
Determina toda a información importante sobre unha función Add-In.
Sintaxe
void CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName)
Parámetro
USHORT& nNo:
Input: Function number between 0 and nCount-1, inclusively.
char* pFuncName:
Output: Function name as seen by the programmer, as it is named in the Shared LibraryDLL. This name does not determine the name used in the Function Wizard.
USHORT& nParamCount:
Output: Number of parameters in AddIn function. This number must be greater than 0, because there is always a result value; the maximum value is 16.
Paramtype* peType:
Output: Pointer to an array of exactly 16 variables of type Paramtype. The first nParamCount entries are filled with the suitable type of parameter.
char* pInternalName:
Output: Function name as seen by the user, as it appears in the Function Wizard. May contain umlauts.
Os parámetros pFuncName e pInternalName son matrices de caracteres, que son aplicados con tamaño 256 en $ [officename] Calc.
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
void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc)
Parámetro
USHORT& nNo:
Input: Number of the function in the library; between 0 and nCount-1.
USHORT& nParam:
Input: Indicates, for which parameter the description is provided; parameters start at 1. If nParam is 0, the description itself is supposed to be provided in pDesc; in this case, pName does not have any meaning.
char* pName:
Output: Takes up the parameter name or type, for example, the word "Number" or "String" or "Date", and so on. Implemented in LibreOfficeDev 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 LibreOfficeDev 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.
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.
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 | Name | 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 | 
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 | Name | 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 | 
| 24+Len | ... | Seguinte eelemnto | 
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 | Name | 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 |