ZEXMLSS
zexmlss - это библиотека, позволяющая создавать и загружать файлы формата excel 2002/2003 XML (SpreadsheetML / XML Spreadsheet),
OpenDocument Format (ODS), Office Open XML (xlsx) БЕЗ использования MS Office или Open Office.
Работает в Lazarus (проверено с Lazarus 1.2.6 и FPC 2.6 под Linux-ом и Windows),
в Delphi 7, Borland Developer Studio 2005, BDS 2006, CodeGear Delphi 2007, CodeGear RAD Studio 2009 и 2010, Delphi XE и Delphi XE2,
в C++ Builder 6.
Лицензия: zlib License
Последняя версия: 0.0.15 от 2016.11.25 (бета).
Документ, созданный с помощь zexmlss, открыт в excel 2003
|
zexmlss + ZColorStringGrid
|
Документ, созданный с помощь zexmlss, открыт в OpenOffice.org 3.0.1
|
zexmlss_0_0_15_src.zip (860Kb) - Исходный код.
Основные возможности:
- Чтение/запись excel XML файлов в кодировках windows-1251, CP866, UTF-8, UTF-16 (Little Endian и Big Endian)
- Запись/чтение Open Document Format (ODS) в/из директорию (Lazarus/Delphi) и как запакованный файл (Lazarus (если прочесть readme.txt, то и в Delphi))
- Чтение/запись Office Open XML (xlsx) из директории (Lazarus/Delphi) и из запакованного файла (Lazarus (в Delphi через readme.txt))
- Простое копирование ячеек в/из StringGrid
- Простое копирование ячеек (со стилем и объединёнными ячейками) в/из ZColorStringGrid (только для Delphi и C++Builder без установленного в zexml.inc NOZCOLORSTRINGGRID)
::: Примеры кода ::: История версий ::: Delphi+zexmlss+zip :::
::: Условное форматирование ::: Коды числовых форматов
Основные классы:
Основные функции:
Функция
|
Краткое описание
|
function GridToXmlSS(var XMLSS: TZEXMLSS; const PageNum: integer;
var Grid: TStringGrid; ToCol: integer; ToRow: integer;
BCol, BRow, ECol, ERow: integer; ignorebgcolor: boolean; _border: byte): boolean; overload;
|
Копирует данные из Grid на страницу XMLSS.
XMLSS - Хранилище. PageNum - Номер страницы. Grid - стринггрид, из которого нужно брать данные.
ToCol - номер столбца для вставки. ToRow - номер строки для вставки.
BCol - верхняя левая колонка грида. BRow - верхняя левая строка грида.
ECol - нижняя правая колонка грида. ERow - нижняя правая строка грида.
ignorebgcolor - если true, то игнорирует цвет фона ячейки. _border - обработка рамки ячейки
(1 - все в рамках, 0 - все без рамок).
Возвращает True при успешном копировании.
|
function GridToXmlSS(var XMLSS: TZEXMLSS; const PageNum: integer;
var Grid: TZColorStringGrid; ToCol: integer; ToRow: integer;
BCol, BRow, ECol, ERow: integer; ignorebgcolor: boolean; _border: byte): boolean; overload;
|
Копирует данные из Grid на страницу XMLSS.
XMLSS - Хранилище. PageNum - Номер страницы. Grid - zcolorstringgrid, из которого нужно брать данные.
ToCol - номер столбца для вставки. ToRow - номер строки для вставки.
BCol - верхняя левая колонка грида. BRow - верхняя левая строка грида.
ECol - нижняя правая колонка грида. ERow - нижняя правая строка грида.
ignorebgcolor - если true, то игнорирует цвет фона ячейки. _border - обработка рамки ячейки
(1 - все в рамках, 0 - все без рамок, 2 - все с рамками, кроме стиля sgNone).
Только для Delphi и CBuilder-а!
Возвращает True при успешном копировании.
|
function XmlSSToGrid(var Grid: TStringGrid; var XMLSS: TZEXMLSS; const PageNum: integer;
ToCol: integer; ToRow: integer; BCol, BRow, ECol, ERow: integer; InsertMode: byte; StyleCopy: integer = 511): boolean; overload;
|
Копирует данные из страницы TZEXMLSS в TStringGrid.
Grid - грид, в который нужно вставить ячейки. XMLSS - хранилище. PageNum - Номер страницы.
ToCol - номер столбца для вставки. ToRow - номер строки для вставки.
BCol - верхняя левая колонка хранилища. BRow - верхняя левая строка хранилища.
ECol - нижняя правая колонка хранилища. ERow - нижняя правая строка хранилища.
InsertMode - добавлять или заменять ячейки (0 - ячейки в гриде не смещаются;
1 - ячейки в гриде смещаются вправо на размер добавляемой области;
2 - ячейки в гриде смещаются вниз на размер добавляемой области;
3 - ячейки в гриде смещаются вправо и вниз на размер добавляемой области).
StyleCopy - способ копирования стиля (0 - ничего из стиля не копируется, если StyleCopy and 16 = 16 - копируется размер ячейки).
Возвращает True при успешном копировании.
|
function XmlSSToGrid(var Grid: TZColorStringGrid; var XMLSS: TZEXMLSS; const PageNum: integer;
ToCol: integer; ToRow: integer; BCol, BRow, ECol, ERow: integer; InsertMode: byte; StyleCopy: integer = 1023): boolean; overload;
|
Копирует данные из страницы TZEXMLSS в TZColorStringGrid.
Grid - грид, в который нужно вставить ячейки. XMLSS - хранилище. PageNum - Номер страницы.
ToCol - номер столбца для вставки. ToRow - номер строки для вставки.
BCol - верхняя левая колонка хранилища. BRow - верхняя левая строка хранилища.
ECol - нижняя правая колонка хранилища. ERow - нижняя правая строка хранилища.
InsertMode - добавлять или заменять ячейки (0 - ячейки в гриде не смещаются;
1 - ячейки в гриде смещаются вправо на размер добавляемой области;
2 - ячейки в гриде смещаются вниз на размер добавляемой области;
3 - ячейки в гриде смещаются вправо и вниз на размер добавляемой области).
StyleCopy - способ копирования стиля:
- 0 - ничего из стиля не копируется
- StyleCopy and 1 = 1 - копируется BGColor
- StyleCopy and 2 = 2 - копируется Vertical Alignment
- StyleCopy and 4 = 4 - копируется Horizontal Alignment
- StyleCopy and 8 = 8 - копируется Font
- StyleCopy and 16 = 16 - копируется Размер ячейки
- StyleCopy and 32 = 32 - WordWrap
- StyleCopy and 64 = 64 - копируется Merge Area
- StyleCopy and 128 = 128 - удалять объединённые ячейки на месте вставки
- StyleCopy and 256 = 256 - установить на месте вставки BorderCellStyle = sqNone
- StyleCopy and 512 = 512 - Увеличивать высоту ячейки, если текст не помещается
- StyleCopy and 1024 = 1024 - Увеличивать длину ячейки, если текст не помещается
- StyleCopy and 2048 = 2048 - устанавливать default-стиль из XMLSS для добавленных на место сдвига ячеек вместо
default-стиля из грида
Только для Delphi и CBuilder-а!
Возвращает True при успешном копировании.
|
function SaveXmlssToEXML(var XMLSS: TZEXMLSS; Stream: TStream; const SheetsNumbers:array of integer;
const SheetsNames: array of string; TextConverter: TAnsiToCPConverter; CodePageName: string; BOM: ansistring = ''): integer; overload;
|
Сохраняет в поток Stream в формате Excel XML SpreadSheet.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
TextConverter - конвертер текста из локальной в нужную кодировку (например, AnsiToUtf8 - переводит в кодировку UTF-8).
CodePageName - имя кодировки. BOM - Byte Order Mark кодировки.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToEXML(var XMLSS: TZEXMLSS; FileName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string; TextConverter: TAnsiToCPConverter; CodePageName: string; BOM: ansistring = ''): integer; overload;
|
Сохраняет в файл FileName в формате Excel XML SpreadSheet.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
TextConverter - конвертер текста из из локально в нужную кодировку.
CodePageName - имя кодировки. BOM - Byte Order Mark кодировки.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToEXML(var XMLSS: TZEXMLSS; FileName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string): integer; overload;
|
Сохраняет в файл FileName в формате Excel XML SpreadSheet.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
Сохраняет в UTF-8 кодировке.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToEXML(var XMLSS: TZEXMLSS; FileName: string): integer; overload;
|
Сохраняет в файл FileName в формате Excel XML SpreadSheet.
XMLSS - хранилище.
Сохраняет в UTF-8 кодировке все страницы из XMLSS.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToODFSPath(var XMLSS: TZEXMLSS; PathName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string; TextConverter: TAnsiToCPConverter; CodePageName: string; BOM: ansistring = ''): integer; overload;
|
Сохраняет незапакованный документ в директорию PathName в формате Open Document (ODS).
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
TextConverter - конвертер текста из из локально в нужную кодировку.
CodePageName - имя кодировки. BOM - Byte Order Mark кодировки.
Возвращает 0 при успешном сохранении.
Путь должен существовать!
|
function SaveXmlssToODFSPath(var XMLSS: TZEXMLSS; PathName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string): integer; overload;
|
Сохраняет незапакованный документ в директорию PathName в формате Open Document (ODS).
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
Кодировка - UTF-8
Возвращает 0 при успешном сохранении.
Путь должен существовать!
|
function SaveXmlssToODFSPath(var XMLSS: TZEXMLSS; PathName: string): integer; overload;
|
Сохраняет все страницы из XMLSS в незапакованный документ в директорию PathName в формате Open Document (ODS).
XMLSS - хранилище.
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
Путь должен существовать!
|
function SaveXmlssToODFS(var XMLSS: TZEXMLSS; FileName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string; TextConverter: TAnsiToCPConverter; CodePageName: string; BOM: ansistring = ''): integer; overload;
|
Внимание: только для Lazarus!
Сохраняет документ в формате Open Document (ODS) в файл FileName.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
TextConverter - конвертер текста из из локально в нужную кодировку.
CodePageName - имя кодировки. BOM - Byte Order Mark кодировки.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToODFS(var XMLSS: TZEXMLSS; FileName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string): integer; overload;
|
Внимание: только для Lazarus!
Сохраняет документ в формате Open Document (ODS) в файл FileName.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToODFS(var XMLSS: TZEXMLSS; FileName: string): integer; overload;
|
Внимание: только для Lazarus!
Сохраняет документ в формате Open Document (ODS) в файл FileName.
XMLSS - хранилище. Сохраняются все страницы.
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToXLSXPath(var XMLSS: TZEXMLSS; PathName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string; TextConverter: TAnsiToCPConverter; CodePageName: string; BOM: ansistring = ''): integer; overload;
|
Сохраняет незапакованный документ в директорию PathName в формате Office Open XML (xlsx).
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
TextConverter - конвертер текста из из локально в нужную кодировку.
CodePageName - имя кодировки. BOM - Byte Order Mark кодировки.
Возвращает 0 при успешном сохранении.
Путь должен существовать!
|
function SaveXmlssToXLSXPath(var XMLSS: TZEXMLSS; PathName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string): integer; overload;
|
Сохраняет незапакованный документ в директорию PathName в формате Office Open XML (xlsx).
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
Путь должен существовать!
|
function SaveXmlssToXLSXPath(var XMLSS: TZEXMLSS; PathName: string): integer; overload;
|
Сохраняет незапакованный документ в директорию PathName в формате Office Open XML (xlsx).
XMLSS - хранилище.
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
Путь должен существовать!
|
function SaveXmlssToXLSX(var XMLSS: TZEXMLSS; FileName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string; TextConverter: TAnsiToCPConverter; CodePageName: string; BOM: ansistring = ''): integer; overload;
|
Внимание: только для Lazarus!
Сохраняет документ в формате (xlsx) в файл FileName.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
TextConverter - конвертер текста из из локально в нужную кодировку.
CodePageName - имя кодировки. BOM - Byte Order Mark кодировки.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToXLSX(var XMLSS: TZEXMLSS; FileName: string; const SheetsNumbers: array of integer;
const SheetsNames: array of string): integer; overload;
|
Внимание: только для Lazarus!
Сохраняет документ в формате (xlsx) в файл FileName.
XMLSS - хранилище. SheetsNumbers - массив номеров страниц в нужной последовательности (если массив пустой - берутся все листы из хранилища).
SheetsNames - массив названий страниц (количество элементов в двух массивах должны совпадать).
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
|
function SaveXmlssToXLSX(var XMLSS: TZEXMLSS; FileName: string): integer; overload;
|
Внимание: только для Lazarus!
Сохраняет документ в формате (xlsx) в файл FileName.
XMLSS - хранилище.
Кодировка - UTF-8.
Возвращает 0 при успешном сохранении.
|
function ReadEXMLSS(var XMLSS: TZEXMLSS; Stream: TStream): integer; overload;
|
Читает из потока Stream Excel XML SpreadSheet в хранилище XMLSS.
Возвращает 0 при успешном чтении.
|
function ReadEXMLSS(var XMLSS: TZEXMLSS; FileName: string): integer; overload;
|
Читает из файла FileName Excel XML SpreadSheet в хранилище XMLSS.
Возвращает 0 при успешном чтении.
|
function ReadODFSPath(var XMLSS: TZEXMLSS; DirName: string): integer;
|
Читает распакованный ODS из директории DirName в хранилище XMLSS.
Возвращает 0 при успешном чтении.
|
function ReadODFS(var XMLSS: TZEXMLSS; FileName: string);
|
Внимание: только для Lazarus!
Читает ODS из файла FileName в хранилище XMLSS.
Возвращает 0 при успешном чтении.
|
function ReadXLSXPath(var XMLSS: TZEXMLSS; DirName: string): integer;
|
Читает распакованный xlsx из директории DirName в хранилище XMLSS.
Возвращает 0 при успешном чтении.
|
function ReadXLSX(var XMLSS: TZEXMLSS; FileName: string): integer;
|
Внимание: только для Lazarus!
Читает xlsx из файла FileName в хранилище XMLSS.
Возвращает 0 при успешном чтении.
|
Наследован от TComponent. Является контейнером для содержимого электронной таблицы.
Свойства:
Наследован от TPersistent. Содержит листы документа.
Свойства:
Property
|
Краткое описание
|
Count: integer;
|
Кол-во листов в документе.
|
Sheet[num: integer]: TZSheet;
|
Доступ к листу документа по номеру num.
|
Наследован от TPersistent. Содержит лист документа.
Свойства:
Property
|
Краткое описание
|
Cell[ACol, ARow: integer]: TZCell;
|
Ячейка на пересечении столбца ACol и строки ARow.
|
ColCount: integer;
|
Количество столбцов в листе.
|
Columns[num: integer]: TZColOptions;
|
Настройки столбца num.
|
ColWidths[num: integer]: real;
|
Ширина столбца num.
|
DefaultColWidth: real;
|
Ширина столбца по-умолчанию.
|
DefaultRowHeight: real;
|
Высота строки по-умолчанию.
|
MergeCells: TZMergeCells;
|
Объединённые ячейки.
|
Protect: boolean;
|
Признак защиты листа.
|
RightToLeft: boolean;
|
Просматривать лист справа налево.
По-умолчанию false.
|
RowCount: integer;
|
Количество строк.
|
RowHeights[num: integer]: real;
|
Высота строки num.
|
Rows[num: integer]: TZRowOptions;
|
Настройки строки num.
|
Selected: boolean;
|
Признак выбора листа.
|
SheetOptions: TZSheetOptions;
|
Настройки листа.
|
ConditionalFormatting: TZConditionalFormatting;
|
Условные форматирования, применяемые к листу.
|
Title: string;
|
Заголовок листа.
|
Наследован от TPersistent. Представляет собой ячейку.
Свойства:
Property
|
Краткое описание
|
AlwaysShowComment: boolean;
|
Всегда показывать примечание.
По-умолчанию False.
|
CellStyle: integer;
|
Номер стиля ячейки.
По-умолчанию -1.
|
CellType: TZCellType;
|
Тип ячейки.
По-умолчанию ZEansistring (string).
|
Comment: string;
|
Текст примечания.
|
CommentAuthor: string;
|
Автор примечания.
|
Data: string;
|
Отображаемое содержимое ячейки.
|
Formula: string;
|
Формула в стиле адресации R1C1.
|
Href: string;
|
Гиперссылка.
|
HRefScreenTip: string;
|
Отображаемая на экране подпись гиперссылки.
|
ShowComment: boolean;
|
Показывать примечание.
По-умолчанию False.
|
Наследован от TPersistent. Параметры страницы.
Свойства:
Property
|
Краткое описание
|
ActiveCol: word;
|
Номер активного столбца.
По-умолчанию 0.
|
ActiveRow: word;
|
Номер активной строки.
По-умолчанию 0.
|
CenterHorizontal: boolean;
|
При печати центрировать таблицу горизонтально.
По-умолчанию False.
|
CenterVertical: boolean;
|
При печати центрировать таблицу вертикально.
По-умолчанию False.
|
FooterMargin: word;
|
Размер поля нижнего колонтитула в миллиметрах.
По-умолчанию 13 мм.
Устаревший! Используйте FooterMargins.Height!
|
HeaderMargin: word;
|
Размер поля верхнего колонтитула в миллиметрах.
По-умолчанию 13 мм.
Устаревший! Используйте HeaderMargins.Height!
|
FooterMargins: TZHeaderFooterMargins;
|
Размеры и отступы поля нижнего колонтитула.
|
HeaderMargins: TZHeaderFooterMargins;
|
Размеры и отступы поля верхнего колонтитула в миллиметрах.
|
FooterData: string;
|
Текст нижнего колонтитула.
Устаревший! Используйте Footer.Data!
|
HeaderData: string;
|
Текст верхнего колонтитула.
Устаревший! Используйте Header.Data!
|
IsEvenFooterEqual: boolean;
|
Признак того, что нижний колонтитул на чётных и нечётных страницах одинаковый.
По-умолчанию True.
|
IsEvenHeaderEqual: boolean;
|
Признак того, что верхний колонтитул на чётных и нечётных страницах одинаковый.
По-умолчанию True.
|
Footer: TZSheetFooterHeader;
|
Нижний колонтитул.
|
Header: TZSheetFooterHeader;
|
Верхний колонтитул.
|
EvenFooter: TZSheetFooterHeader;
|
Нижний колонтитул для чётных страниц. Используется только при IsEvenFooterEqual = true.
|
EvenHeader: TZSheetFooterHeader;
|
Верхний колонтитул для чётных страниц. Используется только при IsEvenHeaderEqual = true.
|
HeaderBGColor: TColor;
|
Цвет фона верхнего колонтитула.
По-умолчанию clWindow.
|
FooterBGColor: TColor;
|
Цвет фона нижнего колонтитула.
По-умолчанию clWindow.
|
MarginBottom: word;
|
Нижнее поле в миллиметрах.
По-умолчанию 25 мм.
|
MarginLeft: word;
|
Левое поле в миллиметрах.
По-умолчанию 20 мм.
|
MarginTop: word;
|
Верхнее поле в миллиметрах.
По-умолчанию 25 мм.
|
MarginRight: word;
|
Правое поле в миллиметрах.
По-умолчанию 20 мм.
|
PaperSize: byte;
|
Размер бумаги (Таблица размеров бумаги).
По-умолчанию 9 (А4).
|
PaperWidth: byte;
|
Ширина листа бумаги в мм. Используется только при PaperSize = 0!
|
PaperHeight: byte;
|
Высота листа бумаги в мм. Используется только при PaperSize = 0!
|
PortraitOrientation: boolean;
|
Ориентация листа (True - портретная, False - альбомная).
По-умолчанию True.
|
StartPageNumber: integer;
|
Номер первой страницы.
По-умолчанию 1.
|
SplitVerticalMode: TZSplitMode;
|
Способ разбиения/закрепления колонок. Делает то же самое, что и в LibreOffice Calc
команды "Окно - Фиксировать"/
"Окно - Разделить"
По-умолчанию ZSplitNone.
|
SplitHorizontalMode: TZSplitMode;
|
Способ разбиения/закрепления строк в качестве заголовков.
По-умолчанию ZSplitNone.
|
SplitVerticalValue: integer;
|
Если SplitVerticalMode = ZSplitFrozen, то кол-во столбцов для закрепления.
Если ZSplitSplit, то отступ в пикселях.
По-умолчанию 0.
|
SplitHorizontalValue: integer;
|
Если SplitHorizontalMode = ZSplitFrozen, то кол-во строк для закрепления.
Если ZSplitSplit, то отступ в пикселях.
По-умолчанию 0.
|
ScaleToPercent: integer;
|
Масштабирование документа в процентах (100 - документ не масштабируется).
По-умолчанию 100.
|
ScaleToPages: integer;
|
Масштабирование: поместить нужное кол-во страниц на листе (1 - не масштабируется).
По-умолчанию 1.
|
Наследован от TPersistent. Нижний или верхний колонтитул.
Свойства:
Property
|
Краткое описание
|
ADataLeft: string;
|
Текст колонтитула слева.
|
Data: string;
|
Текст колонтитула по центру.
|
DataRight: string;
|
Текст колонтитула с права.
|
IsDisplay: boolean;
|
Нужно ли показывать колонтитул.
|
Наследован от TPersistent. Отступы колонтитулов.
Свойства:
Property
|
Краткое описание
|
MarginTopBottom: word;
|
Отступ снизу/сверху для колонтитула в мм.
По-умолчанию 13.
|
MarginLeft: word;
|
Отступ слева в мм.
По-умолчанию 0.
|
MarginRight: word;
|
Отступ справа в мм.
По-умолчанию 0.
|
Height: word;
|
Высота колонтитула в мм.
По-умолчанию 7.
|
UseAutoFitHeight: boolean;
|
Автоподбор высоты.
По-умолчанию true.
|
Наследован от TPersistent. Общие настройки столбцов и строк. Предок для TZColOptions
и TZRowOptions.
Свойства:
Property
|
Краткое описание
|
Hidden: boolean;
|
Скрыт ли столбец/строка.
По-умолчанию False (не скрыт).
|
StyleID: integer;
|
Номер стиля для столбца/строки.
По-умолчанию -1.
|
Breaked: boolean;
|
Разрыв страницы после строки/столбца.
По-умолчанию False (без разрыва).
|
Наследован от TZRowColOptions. Настройки строки.
Свойства:
Property
|
Краткое описание
|
AutoFitHeight: boolean;
|
Автоматически увеличивать высоту строки.
|
Height: real;
|
Высота строки в типографских пунктах (1 пункт = 1/72" = 0.3528 мм).
|
HeightMM: real;
|
Высота строки в миллиметрах.
|
HeightPix: real;
|
Высота строки в пикселях.
|
Наследован от TZRowColOptions. Настройки столбца.
Свойства:
Property
|
Краткое описание
|
AutoFitWidth: boolean;
|
Автоматически увеличивать ширину столбца.
|
Width: real;
|
Ширина столбца в типографских пунктах.
|
WidthMM: real;
|
Ширина столбца в миллиметрах.
|
WidthPix: real;
|
Ширина столбца в пикселях.
|
Наследован от TPersistent. Объединённые ячейки.
Свойства:
Property
|
Краткое описание
|
Count: integer;
|
Количество объединённых ячеек
Read Only!
|
Items[Num: Integer]: TRect;
|
Возвращает координаты объединённой области Num.
(Left, Top) - левая верхняя ячейка,
(Right, Bottom) - правая нижняя ячейка.
Num - номер объединённой ячейки.
Read Only!
|
Методы:
Методы TZMergeCells
|
Краткое описание
|
function AddRect(Rct: TRect): byte;
|
Добавляет объединённую область/ячейку, заключённую прямоугольником Rct.
Возвращает:
  0 - всё нормально, область добавилась
  1 - указанная область выходит за границы листа
  2 - указанная область пересекается(входит) в введённые ранее области
  3 - область из одной ячейки не добавляет
  4 - попытка объединить фиксированные и не фиксированные ячейки
|
function AddRectXY(x1, y1, x2, y2: integer): byte;
|
Добавляет объединённую область/ячейку, заключённую прямоугольником (x1, y1, x2, y2).
(x1, y1) - левая верхняя ячейка, (x2, y2) - правая нижняя ячейка.
Возвращает тоже, что и AddRect(Rct: TRect).
|
procedure Clear();
|
Удаляет все объединённые области/ячейки
|
function DeleteItem(num: integer): boolean;
|
Удаляет область num.
Возвращает True если область успешно удалена.
|
function InLeftTopCorner(ACol, ARow: integer): integer;
|
Возвращает номер объединённой ячейки/области, в которой ячейка [ACol, ARow] является
левой верхней. Если возвращает отрицательное значение, значит такая область не существует.
|
function InMergeRange(ACol, ARow: integer): integer;
|
Возвращает номер объединённой ячейки/области, в которую входит ячейка [ACol, ARow].
Если возвращает отрицательное значение - ячейка [ACol, ARow] не содержится в Merge области.
|
Наследован от TPersistent. Содержит стили документа.
Свойства:
Property
|
Краткое описание
|
Count: integer;
|
Кол-во стилей в документе.
|
Items[num: integer]: TZStyle;
|
Стиль num (-1 - DefaultStyle).
|
DefaultStyle: TZStyle;
|
Стиль по-умолчанию (аналог Items[-1]).
|
Методы:
Методы TZStyles
|
Краткое описание
|
function Add(const Style: TZStyle; CheckMatch: boolean = false): integer;
|
Добавляет стиль.
Style - стиль, CheckMatch - проверять ли вхождение данного стиля ранее.
Возвращает номер добавленного (или, если CheckMatch = True, введённого ранее) стиля.
|
procedure Clear();
|
Удаляет все стили.
|
function DeleteStyle(num: integer): integer;
|
Удаляет стиль num, стили с большим номером сдвигаются. num - номер стиля.
Возвращает: 0 - удалился успешно -1 - стиль не удалился
|
function Find(const Style: TZStyle): integer;
|
Ищет совпадение стиля Style с введёнными стилями.
Возвращает:
-2 - стиль не найден
-1 - совпадает со стилем по-умолчанию
0..Count-1 - номер стиля
|
Наследован от TPersistent. Стиль ячейки.
Свойства:
Property
|
Краткое описание
|
Alignment: TZAlignment;
|
Выравнивание ячейки.
|
BGColor: TColor;
|
Цвет заливки ячейки. По-умолчанию clWindow.
|
Border: TZBorder;
|
Рамка ячейки.
|
CellPattern: TZCellPattern;
|
Шаблон заливки ячейки. По-умолчанию ZPNone.
|
Font: TFont;
|
Шрифт.
|
HideFormula: boolean;
|
Скрывает формулу, если установлено в True.
По-умолчанию False.
|
NumberFormat: string;
|
Формат числа.
|
PatternColor: TColor;
|
Цвет шаблона заливки.
По-умолчанию clWindow.
|
Protect: boolean;
|
Защищена-ли ячейка от редактирования.
По-умолчанию True.
|
Метод:
function IsEqual(Source: TPersistent): boolean; - Возвращает True,
когда стиль совпадает с Source.
Наследован от TPersistent. Выравнивание в ячейке.
Свойства:
Property
|
Краткое описание
|
Horizontal: TZHorizontalAlignment;
|
Горизонтальное выравнивание текста в ячейке.
По-умолчанию ZHAutomatic.
|
Indent: integer;
|
Отступ.
|
Rotate: integer;
|
Угол поворота текста в ячейке (от -90 до 90).
По-умолчанию 0.
|
ShrinkToFit: boolean;
|
True - уменьшает размер шрифта, чтобы текст поместился в ячейку.
По-умолчанию False.
|
Vertical: TZVerticalAlignment;
|
Вертикальное выравнивание текста в ячейке.
По-умолчанию ZVAutomatic.
|
VerticalText: boolean;
|
True - текст по одной букве в строке вертикально.
По-умолчанию False.
|
WrapText: boolean;
|
перенос текста.
По-умолчанию False.
|
Метод:
function IsEqual(Source: TPersistent): boolean; - Возвращает True,
когда выравнивание совпадает с Source.
Наследован от TPersistent. Настройка рамок ячейки в стиле.
Свойства:
Property
|
Краткое описание
|
Border[Num: integer]: TZBorderStyle;
|
Устанавливает рамки ячейки, где num:
- 0 - Left (левая граница)
- 1 - Top (верхняя граница)
- 2 - Right (правая граница)
- 3 - Bottom (нижняя граница)
- 4 - DiagonalLeft (диагональ от верхнего левого угла до нижнего правого)
- 5 - DiagonalRight (диагональ от нижнего левого угла до правого верхнего)
|
Left: TZBorderStyle;
|
Левая граница рамки.
|
Top: TZBorderStyle;
|
Верхняя граница рамки.
|
Right: TZBorderStyle;
|
Правая граница рамки.
|
Bottom: TZBorderStyle;
|
Нижняя граница рамки.
|
DiagonalLeft: TZBorderStyle;
|
Диагональ от верхнего левого угла до нижнего правого.
|
DiagonalRight: TZBorderStyle;
|
Диагональ от нижнего левого угла до правого верхнего.
|
Метод:
function IsEqual(Source: TPersistent): boolean; - Возвращает True,
когда содержимое совпадает с Source.
Наследован от TPersistent. Стиль границы рамки ячейки.
Свойства:
Property
|
Краткое описание
|
LineStyle: TZBorderType;
|
Стиль линии.
По-умолчанию ZENone.
|
Weight: byte;
|
Толщина рамки (0-3).
По-умолчанию 0.
|
Color: TColor;
|
Цвет линии рамки.
По-умолчанию ClBlack.
|
Метод:
function IsEqual(Source: TPersistent): boolean; - Возвращает True,
когда содержимое совпадает с Source.
Наследован от TPersistent. Свойства документа.
Свойства:
Property
|
Краткое описание
|
Author: string;
|
Имя автора документа.
|
LastAuthor: string;
|
Имя автора последних изменений в документе.
|
Created: TdateTime;
|
Дата и время создания документа.
|
Company: string;
|
Имя организации.
|
ModeR1C1: boolean;
|
Включает адресацию R1C1.
По-умолчанию False.
|
Наследован от TPersistent. Класс-писатель, записывает xml в строку,
поток или файл в кодировках CP866 (и ASCII), Windows-1251, UTF-8, UTF-16 (BE и LE).
Можно записать в любой другой кодировке (свойство TextConverter).
Свойства:
Property
|
Краткое описание
|
Attributes: TZAttributes;
|
Атрибуты тэга.
|
AttributeQuote: ansichar;
|
Кавычки атрибутов (двойные или одинарные).
По умолчанию двойные - ".
|
Buffer: ansistring;
|
Буфер. (только чтение)
|
InProcess: boolean;
|
Возвращает True, если ведётся запись. (только чтение)
|
MaxBufferLength: integer;
|
Размер буфера (>0). Только для чтения при InProcess = True.
По-умолчанию 4096 байт.
|
NewLine: boolean;
|
True - каждый тэг с новой строки. Только для чтения при InProcess = True.
По-умолчанию True.
|
TabLength: integer;
|
На сколько знаков табуляции перед каждым уровнем отступает от начала строки новый тэг.
Только для чтения при InProcess = True.
По-умолчанию 0.
|
TabSymbol: ansichar;
|
Символ табуляции (#32 (пробел) или #9 (таб)).
Только для чтения при InProcess = True.
По-умолчанию #32.
|
TagCount: integer;
|
Количество открывающих тэгов до текущего тэга. (только чтение)
|
Tags[num: integer]: ansistring;
|
Возвращает открытый тэг num. (только чтение)
|
TextConverter: TAnsiToCPConverter;
|
Устанавливает конвертер текста. Если началась запись - конвертер менять нельзя.
|
UnixNLSeparator: boolean;
|
Если True, то разделитель строк = #10, иначе - #13#10.
|
Методы:
Методы TZsspXMLWriter
|
Краткое описание
|
function BeginSaveToStream(Stream: TStream): boolean;
|
Начать запись в поток Stream.
Возвращает:
True - запись началась, устанавливает InProcess в True.
False - запись не возможна.
|
function BeginSaveToFile(FileName: ansistring): boolean;
|
Начать запись в файл FileName.
Возвращает:
True - запись началась, устанавливает InProcess в True.
False - запись не возможна.
|
function BeginSaveToString(): boolean;
|
Начать запись в строку Buffer.
Возвращает:
True - запись началась, устанавливает InProcess в True.
False - запись не возможна.
|
procedure EndSaveTo();
|
Закончить запись в строку/файл/поток. Устанавливает InProcess в False.
|
procedure FlushBuffer();
|
Принудительно записывает данные из буфера в поток/файл и очищает Buffer.
|
procedure WriteCDATA(CDATA: ansistring; CorrectCDATA: boolean; StartNewLine: boolean = true); overload;
|
Записать секцию CDATA. CDATA - содержимое секции.
CorrectCDATA - при true заменяет в CDATA все вхождения ']]>' на ']]>'
StartNewLine - начинать с новой строки (игнорируется, если NewLine = false).
|
procedure WriteCDATA(CDATA: ansistring); overload;
|
Записать секцию CDATA. CDATA - содержимое секции (CorrectCDATA = true; StartNewLine = true).
|
procedure WriteComment(Comment: ansistring; StartNewLine: boolean = true);
|
Записать комментарий. Comment - содержимое комментария. StartNewLine - начинать с новой строки (игнорируется, если NewLine = false).
|
procedure WriteEmptyTag(TagName: ansistring; SAttributes: TZAttributes; StartNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать пустой тэг. TagName - имя тэга. SAttributes - атрибуты тэга. StartNewLine - начинать с новой строки (игнорируется, если NewLine = false).
CheckEntity - проверяет и корректирует спецсимволы.
|
procedure WriteEmptyTag(TagName: ansistring; StartNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать пустой тэг. TagName - имя тэга. StartNewLine - начинать с новой строки (игнорируется, если NewLine = false).
CheckEntity - проверяет и корректирует спецсимволы. Атрибуты берёт из Attributes.
|
procedure WriteEmptyTag(TagName: ansistring); overload;
|
Записать пустой тэг. TagName - имя тэга. (StartNewLine = True; CheckEntity = True)
Атрибуты берёт из Attributes.
|
procedure WriteEndTagNode();
|
Записать окончание корневого/узлового элемента.
|
procedure WriteInstruction(InstructionName: ansistring; SAttributes: TZAttributes; StartNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать инструкцию (<?instructionname ...?>). InstructionName - имя инструкции. SAttributes - атрибуты.
StartNewLine - начинать с новой строки (игнорируется, если NewLine = false).
CheckEntity - проверяет и корректирует спецсимволы.
|
procedure WriteInstruction(InstructionName: ansistring; StartNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать инструкцию (<?instructionname ...?>). InstructionName - имя инструкции.
StartNewLine - начинать с новой строки (игнорируется, если NewLine = false).
CheckEntity - проверяет и корректирует спецсимволы. Атрибуты берёт из Attributes.
|
procedure WriteInstruction(InstructionName: ansistring); overload;
|
Записать инструкцию (<?instructionname ...?>). InstructionName - имя инструкции. (StartNewLine = True; CheckEntity = True)
Атрибуты берёт из Attributes.
|
procedure WriteRaw(Text: ansistring; UseConverter: boolean; StartNewLine: boolean = true);
|
Записать необработанный текст.
Text - текст, UseConverter - использовать конвертер TextConverter, StartNewLine - начинать с новой строки (игнорируется,
если NewLine = false).
ПРЕДУПРЕЖДЕНИЕ: при использовании WriteRaw XML может оказаться некорректным/испорченным!
|
procedure WriteTag(TagName: ansistring; Text: ansistring; SAttributes: TZAttributes; StartNewLine: boolean; CloseTagNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать тэг (<tag ...>text</tag>). TagName - имя тэга. SAttributes - атрибуты. StartNewLine - начинать с новой строки
(игнорируется, если NewLine = false). CloseTagNewLine - начинать закрывающий тэг с новой строки. CheckEntity - проверяет и корректирует спецсимволы.
|
procedure WriteTag(TagName: ansistring; Text: ansistring; StartNewLine: boolean; CloseTagNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать тэг. TagName - имя тэга. StartNewLine - начинать с новой строки (игнорируется, если
NewLine = false). CloseTagNewLine - начинать закрывающий тэг с новой строки. CheckEntity - проверяет и корректирует спецсимволы. Атрибуты берёт из Attributes.
|
procedure WriteTag(TagName: ansistring); overload;
|
Записать тэг. TagName - имя тэга. Атрибуты берёт из Attributes. (StartNewLine = True; CloseTagNewLine = False; CheckEntity = True)
|
procedure WriteTagNode(TagName: ansistring; SAttributes: TZAttributes; StartNewLine: boolean; CloseTagNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать корневой/узловой элемент. TagName - имя тэга. SAttributes - атрибуты. StartNewLine - начинать с новой строки
(игнорируется, если NewLine = false). CloseTagNewLine - начинать закрывающий тэг с новой строки. CheckEntity - проверяет и корректирует спецсимволы.
|
procedure WriteTagNode(TagName: ansistring; StartNewLine: boolean; CloseTagNewLine: boolean; CheckEntity: boolean = true); overload;
|
Записать корневой/узловой элемент. TagName - имя тэга. StartNewLine - начинать с новой строки
(игнорируется, если NewLine = false). CloseTagNewLine - начинать закрывающий тэг с новой строки. CheckEntity - проверяет и корректирует спецсимволы.
Атрибуты берёт из Attributes
|
procedure WriteTagNode(TagName: ansistring); overload;
|
Записать корневой/узловой элемент. TagName - имя тэга.
Атрибуты берёт из Attributes. (StartNewLine = True; CloseTagNewLine = False; CheckEntity = True)
|
Наследован от TPersistent. Класс-читатель, читает XML из строки,
потока или файла в кодировках CP866 (и ASCII), Windows-1251, UTF-8, UTF-16 (BE и LE).
Свойства:
Property
|
Краткое описание
|
Attributes: TZAttributes;
|
Атрибуты тэга.
|
ErrorCode: integer;
|
Возвращает ошибку чтения/обработки тэга. 0 - всё нормально, 1 - значение параметра без кавычек, и т.д. (RO)
|
IgnoreCase: boolean;
|
При True игнорирует регистр тэгов. Только для чтения при InProcess = True.
По-умолчанию False.
|
InProcess: boolean;
|
Возвращает True, если идёт обработка XML. (только чтение)
|
MaxBufferLength: integer;
|
Размер буфера (>=512). Только для чтения при InProcess = True.
По-умолчанию 4096 байт.
|
RawTextTag: ansistring;
|
Необработанный текст прочитанного тэга. (RO)
|
TagCount: integer;
|
Количество открывающих тэгов до текущего тэга. (RO)
|
Tags[num: integer]: ansistring;
|
Возвращает открытый тэг num. (RO)
|
TagName: ansistring;
|
Возвращает имя прочитанного тэга/инструкции/комментария. (RO)
|
TagValue: ansistring;
|
Возвращает текст CDATA или комментария. (RO)
|
TagType: byte;
|
Возвращает тип тэга:
- 0 - что-то непонятное
- 1 - <?...?>
- 2 - <![CDATA[..]]>
- 3 - <!--..-->
- 4 - <...>
- 5 - <.../>
- 6 - </...>
|
Методы:
Методы TZsspXMLReader
|
Краткое описание
|
function BeginReadFile(FileName: ansistring): integer;
|
Начать читать XML из файла FileName.
Возвращает:
- 0 - всё нормально
- 1 - данный объект уже работает над чтением
- 2 - ошибка
- 3 - Stream = nil
|
function BeginReadStream(Stream: TStream): integer;
|
Начать читать XML из потока Stream.
Возвращает 0 при отсутствии ошибок.
|
function BeginReadString(Source: ansistring; IgnoreCodePage: boolean = true): integer;
|
Начать чтение из строки Source. При IgnoreCodePage = True игнорирует кодировку.
Возвращает 0 при отсутствии ошибок.
|
function ReadTag(): boolean;
|
Читает тэг.
|
procedure EndRead();
|
Закончить чтение.
|
Eof(): boolean;
|
Возвращает True при достижении конца файла/потока/строки.
|
Наследован от TPersistent. Построитель атрибутов для тэгов.
Свойства:
Property
|
Краткое описание
|
Count: integer;
|
Количество атрибутов. (RO)
|
Items[num: integer]: TZAttrArray;
|
Доступ к паре Атрибут-Значение по номеру num.
|
ItemsByName[Att: ansistring]: ansistring;
|
Доступ к значению атрибута по его имени Att.
|
ItemsByNum[num: integer]: ansistring;
|
Доступ к значению атрибута по его номеру num.
|
Методы:
Методы TZAttributes
|
Краткое описание
|
procedure Add(AttrName: ansistring; Value: ansistring; TestMatch: boolean = true); overload;
|
Добавляет атрибут с именем AttrName и значением Value. При TestMatch = true проверяет, был ли раннее введёт атрибут AttrName, если был, то
меняет значение, иначе добавляет новый атрибут.
|
procedure Add(Attr: TZAttrArray; TestMatch: boolean = true); overload;
|
Добавить атрибут Attr.
|
procedure Clear();
|
Удаляет все атрибуты.
|
procedure DeleteItem(Index: integer);
|
Удаляет атрибут c номером Index. Атрибуты, стоящие правее удаляемого, сдвигаются на единицу влево.
|
procedure Insert(Index: integer; AttrName: ansistring; Value: ansistring; TestMatch: boolean = true); overload;
|
Добавляет атрибут AttrName со значением Value в позицию Index.
|
procedure Insert(Index: integer; Attr: TZAttrArray; TestMatch: boolean = true); overload;
|
Добавляет атрибут Attr в позицию Index.
|
function ToString(quote: ansichar; CheckEntity: boolean; addempty: boolean): ansistring; overload;
|
Возвращает строку из атрибутов. quote - кавычка для значения атрибута. Если CheckEntity = true, то корректирует спецсимволы в значениях атрибутов. Если addempty = true,
то атрибуты с пустыми значениями не добавляются.
|
function ToString(CheckEntity: boolean): ansistring; overload;
|
Возвращает строку из атрибутов. Если CheckEntity = true, то корректирует спецсимволы в значениях атрибутов. (quote = "; addempty = true)
|
function ToString(): ansistring; overload;
|
Возвращает строку из атрибутов. (quote = "; CheckEntity = true; addempty = true)
|
Типы:
Тип данных ячейки
TZCellType = (ZENumber, ZEDateTime, ZEBoolean, ZEansistring, ZEError);
Стиль начертания линий рамки ячейки
TZBorderType = (ZENone, ZEContinuous, ZEDot, ZEDash, ZEDashDot, ZEDashDotDot,ZESlantDashDot, ZEDouble);
Горизонтальное выравнивание
TZHorizontalAlignment = (ZHAutomatic, ZHLeft, ZHCenter, ZHRight, ZHFill, ZHJustify, ZHCenterAcrossSelection, ZHDistributed, ZHJustifyDistributed);
Вертикальное выравнивание в ячейке
TZVerticalAlignment = (ZVAutomatic, ZVTop, ZVBottom, ZVCenter, ZVJustify, ZVDistributed, ZVJustifyDistributed);
Шаблон заливки ячейки
TZCellPattern = (ZPNone, ZPSolid, ZPGray75, ZPGray50, ZPGray25, ZPGray125, ZPGray0625, ZPHorzStripe, ZPVertStripe,
ZPReverseDiagStripe, ZPDiagStripe, ZPDiagCross, ZPThickDiagCross, ZPThinHorzStripe, ZPThinVertStripe,
ZPThinReverseDiagStripe, ZPThinDiagStripe, ZPThinHorzCross, ZPThinDiagCross);
Конвертер текста из локальной кодировки в нужную
TAnsiToCPConverter = function (AnsiText: ansistring): ansistring;
Конвертер текста из читаемой кодировки в локальную
TCPToAnsiConverter = TAnsiToCPConverter;
Атрибут-значение
TZAttrArray = array [0..1] of ansistring;
Способ разбиения/закрепления строк и столбцов в качестве заголовков.
TZSplitMode = (ZSplitNone, ZSplitFrozen, ZSplitSplit);
Для совместимости с юникодными дельфами (>= RAD Studio 2009) введены:
- TZAttrArrayH
- TZAttributesH
- TZsspXMLWriterH
- TZsspXMLReaderH
Для Free Pascal-а и Delphi < 2009 они эквиваленты типам без постфикса "H", для юникодных дельфей в этих типах все ansistring заменены на string.
|