Типы данных, используемые в Excel
Область применения: Excel 2013 | Office 2013 | Visual Studio
Microsoft Excel обменивается несколькими типами ANSI C/C++, а также некоторыми структурами данных, зависящими от Excel. Они упоминаются здесь, чтобы предоставить контекст для других разделов, и они подробно рассматриваются в разделе xlfRegister (форма 1).
Типы ANSI C/C++
Числа
Во всех версиях Excel:
double (8-байтовые);
[signed] short [int] (используется для значений Boolean и целых чисел);
unsigned short [int];
[signed long] int.
Строки
Во всех версиях Excel:
[signed] char * — строка байтов длиной до 255 символов, оканчивающаяся нулем;
unsigned char * — строка байтов с ограничением длины, включающая до 255 символов.
Начиная с Excel 2007:
- unsigned short * — строки Юникода длиной до 32 767 символов, которые могут оканчиваться нулем или иметь ограничение длины.
Все числа листа в Excel сохраняются в двоичном формате, чтобы не нужно было объявлять функции надстройки (что на самом деле представляет собой небольшую нагрузку преобразования) как заменяющиеся целочисленные типы в Excel.
Если вы используете целочисленные типы, Excel проверяет, что входные данные находятся в пределах этого типа, и они завершаются ошибкой с #NUM!, если они находятся за пределами этих типов. Исключением является регистрация функции для получения логического аргумента , реализованного с помощью short int. В этом случае все входные данные, отличные от нуля, преобразуются в значение 1, а ноль передается прямо.
Структуры данных, предназначенные специально для Excel
Во всех версиях Excel:
FP — структура двухмерного массива с плавающей запятой, поддерживающая до 65 356 строк при максимально возможном количестве столбцов в текущей версии Excel.
XLOPER — структура многотипных данных, представляющая все типы данных листов (в том числе сообщения об ошибках), целые числа, ссылки на диапазон, типы управления потоком для листов с макросами XLM и тип данных внутреннего хранилища двоичных данных.
Примечание.
Строки представлены в виде строк байтов с ограничением длины (до 255 символов).
Начиная с Excel 2007:
FP12 — двумерная структура массива с плавающей запятой, поддерживающая все строки и столбцы, начиная с Excel 2007.
XLOPER12 — структура многотипных данных, представляющая все типы данных листов (в том числе сообщения об ошибках), целые числа, ссылки на диапазон, типы управления потоком для листов с макросами XLM и тип данных внутреннего хранилища двоичных данных.
Примечание.
Строки представлены в виде строк Юникода с ограничением длины до 32 767 символов.
Коды для типов регистрационных данных
������� XLL �������������� � ������� ������� C API xlfRegister, ������� � �������� �������� ��������� ��������� ������ ����, ���������� ���� ������������ ������ � ����������. ��� ������ ����� �������� �������� ��� Excel, ������������, �������� �� ������� ����������, ���������������� (������� � Excel�2007), ������������� ����� ��������, � ����� ���������� �� ��� ���������, ������� �������� �� �����.
������� ���� ������������ � ������� ����� �������� � ������ xlfRegister (����� 1). ����� ��� ��������� ���� � �������� ���������� � ��������� ����� �������. ��������, �������, ����������� ������ ������� � ������������ ����� (������� � Excel�2007) ����� ������� ��� �������, ������� ��������� �������� ���� C%.
Тип данных | Передаваемый по значению | Передаваемый по ссылке (указателю) | Комментарии |
---|---|---|---|
Boolean |
A |
L |
short (0=false или 1=true) |
double |
B |
E |
|
char * |
C, F |
Строка байтов ASCII, оканчивающаяся нулем |
|
unsigned char * |
D, G |
Строка байтов ASCII с ограничением длины |
|
unsigned short * (начиная с Excel 2007) |
C%, F% |
Строка Юникода с расширенными символами, оканчивающаяся нулем |
|
unsigned short * (начиная с Excel 2007) |
D%, G% |
Строка символов в многобайтовой кодировке Юникода с ограничением длины |
|
unsigned short [int] |
H |
WORD |
|
[signed] short [int] |
I |
M |
16-разрядный |
[signed long] int |
J |
N |
32-разрядный |
Array |
O |
Передается по ссылке в виде трех аргументов: 1. short int *rows 2. short int *columns 3. double *array |
|
Array (начиная с Excel 2007) |
O% |
Передается по ссылке в виде трех аргументов: 1. int *rows 2. int *columns 3. double *array |
|
FP |
K |
Структура массива с плавающей запятой |
|
FP12 (начиная с Excel 2007) |
K% |
Структура большого массива сетки с плавающей запятой |
|
XLOPER |
P |
Значения и массивы листа в виде переменной |
|
R |
Значения, массивы и ссылки на диапазон |
||
XLOPER12 (начиная с Excel 2007) |
Q |
Значения и массивы листа в виде переменной |
|
U |
Значения, массивы и ссылки на диапазон |
���� C%, F%, D%, G%, K%, O%, Q � U ������� ������������ � Microsoft Office Excel 2007 � �� �������������� � ����� ������ �������. ���� ����� F, F%, G � G% ������������ ��� ����������, ���������� �� �����. ����� ��������� XLOPER ��� XLOPER12 �������������� ��� ���� P ��� Q ��������������, ���������� Excel ��� ���������� ������ ��������������� ������ �� ���� ������ � ������� ��������, � ������ �� ��������� ����� � � �������.
Типы P и Q всегда представлены в функции в виде следующих типов: xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeMulti, xltypeMissing или xltypeNil, но не в виде xltypeRef или xltypeSRef, так как их всегда разыменовывают.
��� O, ������� ���������� ������������ ����� ��� ��������� � �����, ��� ������ ��� ����������� ������������� � ������������ DLL Fortran, ��� ��������� ���������� � ������� ������. �� �� ������� ��� ������������ ��� �������� ��������, ���� �� �������� �������� ��� ������������ �������� ��� ��������� �� ����� � �� ��������� ���������� � ���������, �� ������� ��������� ������. ��� O% ��������� ��� O � ���������� Excel�2007, ����� � ���� ��� ������ � ��������, ������� ���������� �������, ������� �� �������, ��� ����� Office Excel 2003.