Типы данных, используемые в 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!. Исключение составляют ситуации, когда вы регистрируете функцию, чтобы принять аргумент Boolean, внедренный с помощью типа 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%, QU ������� ������������ � Microsoft Office Excel 2007 � �� �������������� � ����� ������ �������. ���� ����� F, F%, GG% ������������ ��� ����������, ���������� �� �����. ����� ��������� XLOPER ��� XLOPER12 �������������� ��� ���� P ��� Q ��������������, ���������� Excel ��� ���������� ������ ��������������� ������ �� ���� ������ � ������� ��������, � ������ �� ��������� ����� � � �������.

���� PQ ������ ������������ � ������� � ���� ��������� �����: xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeMulti, xltypeMissing ��� xltypeNil, �� �� � ���� xltypeRef ��� xltypeSRef, ��� ��� �� ������ ��������������.

��� O, ������� ���������� ������������ ����� ��� ��������� � �����, ��� ������ ��� ����������� ������������� � ������������ DLL Fortran, ��� ��������� ���������� � ������� ������. �� �� ������� ��� ������������ ��� �������� ��������, ���� �� �������� �������� ��� ������������ �������� ��� ��������� �� ����� � �� ��������� ���������� � ���������, �� ������� ��������� ������. ��� O% ��������� ��� O � ���������� Excel�2007, ����� � ���� ��� ������ � ��������, ������� ���������� �������, ������� �� �������, ��� ����� Office Excel 2003.

См. также