Tipos de datos de Excel

Se aplica a: Excel 2013 | Office 2013 | Visual Studio

Microsoft Excel intercambia varios tipos en ANSI C o C++ y también algunas estructuras de datos específicas de Excel. Se mencionan aquí para proporcionar un contexto para otras secciones y se describen en detalle en el tema xlfRegister (Formulario 1).

Tipos en ANSI C o C++

Números

Todas las versiones de Excel:

  • Doble de 8 bytes

  • [signed] short [int]: se usa para valores booleanos y también enteros.

  • unsigned short [int]

  • [signed long] int

Cadenas

Todas las versiones de Excel:

  • [signed] char * : cadenas de bytes terminadas en NULL de hasta 255 caracteres

  • unsigned char * : cadenas de bytes con recuento de longitud de hasta 255 caracteres

A partir de Excel 2007:

  • unsigned short * : cadenas Unicode de hasta 32 767 caracteres, que pueden ser terminadas en null o con recuento de longitud

Todos los números de la hoja de cálculo de Excel se almacenan como dobles para que no es necesario (y en realidad presenta una sobrecarga de conversión pequeña) declarar funciones de complemento como intercambiar tipos enteros con Excel.

Cuando se usan tipos enteros, Excel comprueba que las entradas están dentro de los límites del tipo, y se produce un error con #NUM! si están fuera de ellas. La excepción es cuando se registra una función para un argumento Booleano, implementado con int corto En este caso, las entradas distintas de cero se convierte en 1 y cero se pasa directamente.

Estructuras de datos específicas de Excel

Todas las versiones de Excel:

  • FP : estructura de matriz de punto flotante bidimensional que admite hasta 65 356 filas según el número máximo de columnas admitidas en la versión determinada de Excel.

  • XLOPER : una estructura de datos de varios tipos que puede representar todos los tipos de datos de hoja de cálculo (incluidos los errores), enteros, referencias de rango, tipos de control de flujo de hoja de macros XLM y un tipo de datos de almacenamiento binario interno.

    Nota:

    Las cadenas se representan como cadenas de bytes de longitud de hasta 255 caracteres.

A partir de Excel 2007:

  • FP12 : estructura de matriz de punto flotante bidimensional que admite todas las filas y columnas a partir de Excel 2007.

  • XLOPER12 : una estructura de datos de varios tipos que puede representar todos los tipos de datos de hoja de cálculo (incluidos los errores), enteros, referencias de rango, tipos de control de flujo de hoja de macros XLM y un tipo de datos de almacenamiento binario interno.

    Nota:

    Las cadenas se representan como cadenas Unicode de longitud de hasta 32.767 caracteres.

Códigos de tipos de datos de registro

Las funciones XLL se registran con la función de la API de C xlfRegister, que toma como tercer argumento una cadena de caracteres que codifica los tipos de argumento y de valor devuelto. Esta cadena también contiene la información que indica a Excel si la función es variable, es segura para subprocesos (a partir de Excel 2007), es equivalente a una hoja de macros y si devuelve el resultado al modificar un argumento en sitio.

La siguiente tabla se reproduce y se describe con más detalle en el tema xlfRegister (Formulario 1). Se reproduce aquí para proporcionar un contexto para el resto de esta sección. Por ejemplo, una función que toma una cadena Unicode de longitud (a partir de Excel 2007) se podría describir como tomar un tipo de argumento de C%.

Tipo de datos Paso por valor Paso por referencia (puntero) Comentarios
Booleano
A
L
short (0 = false o 1 = true)
double
B
E
Char*
C, F
Cadena de bytes en ASCII terminada en null
unsigned char *
D, G
Cadena de bytes en ASCII de longitud
unsigned short * (a partir de Excel 2007)
C%, F%
Cadena de caracteres anchos Unicode terminada en null
unsigned short * (a partir de Excel 2007)
D%, G%
Cadena de caracteres anchos Unicode de longitud
unsigned short [int]
H
WORD
[signed] short [int]
I
M
16 bits
[signed long] int
J
N
32 bits
Matriz
O
Se pasa como tres argumentos por referencia:
1. int corto *filas
2. short int *columns
3. doble *matriz
Matriz
(A partir de Excel 2007)
O%
Se pasa como tres argumentos por referencia:
1. int *rows
2. int *columns
3. doble *matriz
FP
K
Estructura de matriz con punto flotante
FP12
(A partir de Excel 2007)
K%
Estructura de matriz con punto flotante de cuadrícula grande
XLOPER
P
Matrices y valores de la hoja de cálculo de tipo variable
R
Referencias de rango, matrices y valores
XLOPER12
(A partir de Excel 2007)
Q
Matrices y valores de la hoja de cálculo de tipo variable
U
Referencias de rango, matrices y valores

Los tipos de C%, F%, D%, G%, K%, O%, Q, y U eran nuevos en Microsoft Office Excel 2007 y no son compatibles con versiones anteriores. Los tipos de cadena F, F%, G, y G% se usan para los argumentos modificados en sitio. Cuando los argumentos XLOPER o XLOPER12 se registran como tipo P o Q respectivamente, Excel convierte las referencias de celda única a valores simples y las referencias de varias celdas a matrices a la hora de prepararlas.

Los tipos P y Q siempre llegan a la función como uno de los siguientes tipos: xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeMulti, xltypeMissing o xltypeNil, pero no xltypeRef o xltypeSRef porque a estas siempre se eliminan las referencias.

El tipo O, que en realidad cuenta con tres argumentos en la pila, se introdujo para la compatibilidad con archivos DLL Fortran donde los argumentos se pasan por referencia. No puede usarlo para devolver un valor excepto declarar el argumento como valor devuelto que se modifica en sitio y colocando los resultados en los valores a los que se hace referencia. El tipo O% extiende el tipo O en Excel 2007 para que pueda acceder a matrices que tratan áreas más grandes que la cuadrícula de Office Excel 2003.

Vea también