Эта страница охватывает публичные члены классического XLS API, принадлежащие lxHandle, lxDataToXLS и lxGridToXLS
Свойства вычисления IXLSWorkbook
property CalculationMode: LongWord;
property FormulaArrayMemoryLimit: Int64;
property EnableIteration: Boolean;
property MaxIterations: LongWord;
property MaxIterationChange: Double;
property RecalcOnSave: Boolean;
property UseFullPrecision: Boolean;
| CalculationMode |
Управляет режимом вычислений книги, сохраняемым вместе с файлом |
| FormulaArrayMemoryLimit |
Ограничивает память, выделяемую под генерируемые формулы массивов, такие как MUNIT; по умолчанию 64 MiB; значения меньше размера одного элемента Double приводятся к этому минимуму |
| EnableIteration |
Включает итеративные вычисления для циклических формул |
| MaxIterations |
Максимальное число проходов Гаусса–Зейделя для каждой компоненты сильной связности с циклическими ссылками |
| MaxIterationChange |
Предельная числовая дельта, при которой итерации компоненты с циклическими ссылками останавливаются |
| RecalcOnSave |
Запрашивает пересчёт книги при сохранении файла Excel |
| UseFullPrecision |
Сохраняет полную точность формул; при отключении кэши формул и таблиц подстановки What-If округляются до фактически отображаемой числовой точности, прежде чем зависимые ячейки их прочитают |
Проверка ввода формул
property IXLSWorkbook.FormulaEntryPolicy: TXLSFormulaEntryPolicy;
function TXLSWorksheet.ValidateFormulaEntry(Row, Col: Integer;
const Formula: WideString): TXLSFormulaEntryValidationResult;
Единый контракт проверки классифицирует пустой ввод, неизвестные функции, неизвестные имена, синтаксические ошибки, недопустимые координаты и формулы, которые невозможно представить средствами классического XLS, не изменяя состояние листа; см.
политику проверки ввода формул
Калибровка рендеринга IXLSWorkbook
property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
Присваивание всей записи проверяет все шесть полей до изменения книги, CaptureRenderCalibration возвращает независимый снимок значений для одной операции измерения или экспорта, а ResetRenderCalibration восстанавливает стандартные значения 1/1/1/1/100/96
Эта настройка существует только во время выполнения: она не сериализуется в XLS-файл и не изменяет высоты строк и ширины столбцов листа
CreateRenderGeometry копирует текущую калибровку в сервис, принадлежащий конкретной операции, и привязывает идентичность его кэша к текущему поколению книги и выбранному бэкенду; последующие изменения калибровки книги не могут повлиять на уже созданный сервис
AutoFit диапазона и каждый вызов TXLSPaginationModel.Build захватывают калибровку книги один раз; AutoFit — единственный потребитель, который намеренно записывает подобранные размеры, тогда как разбиение на страницы сохраняет все имеющиеся высоты строк и ширины столбцов
Свойства документа IXLSWorkbook
property Title: WideString;
property Subject: WideString;
property Author: WideString;
property Keywords: WideString;
property Comments: WideString;
property Company: WideString;
property Manager: WideString;
Эти свойства читают и записывают поля сводной информации рабочей книги, сохранённые вместе с классическим XLS-файлом
Метод Close IXLSWorkbook
function Close: Integer;
Закрывает объект рабочей книги и освобождает содержимое, принадлежащее рабочей книге, которое удерживается классической объектной моделью XLS
property MetadataOnly: Boolean;
property SelectedSheets: TStringList;
property IncompleteLoad: Boolean;
| MetadataOnly |
Если установлено до Open, читаются только метаданные книги и дескрипторы листов, а данные ячеек пропускаются |
| SelectedSheets |
Список имён листов, загружаемых при открытии книги; пустой список загружает все листы |
| IncompleteLoad |
Равно True после Open, если данные ячеек были пропущены из-за использования MetadataOnly или SelectedSheets |
Книгу, открытую с MetadataOnly или непустым SelectedSheets, нельзя сохранить; Save вызывает ошибку, пока книга не будет открыта заново без этих опций
Свёрнутое состояние TXLSColumnInfo
property TXLSWorksheet._ColumnInfo: TXLSColumnInfoList;
property TXLSColumnInfo.Collapsed: Boolean;
property TXLSRowInfo.Collapsed: Boolean;
property TXLSColumnInfoList.Collapsed[Index: Integer]: Boolean;
Collapsed открывает доступ к маркеру структуры столбцов BIFF независимо от Hidden и OutlineLevel. Индекс в списке — это индекс столбца классического XLS с отсчётом от нуля. Отсутствующие столбцы читаются как False, а присваивание False отсутствующему столбцу не выделяет метаданные. Копирование форматов столбцов, копирование листов и циклы «сохранение — повторное открытие» сохраняют этот маркер
Базовые аксессоры хранилища открыты для низкоуровневого осмотра книги. TXLSRowInfo сообщает MinCol и MaxCol (охватываемый диапазон столбцов с отсчётом от 1), CustomHeight и CustomFormat (сохранена ли явная высота или индекс XF) и XFIndexSet; TXLSColumnInfo.isEqual сравнивает две записи метаданных столбцов поле за полем
TXLSColumnInfoList предоставляет ColCount, MinCol, MaxCol, StdWidth и MaxOutlineLevel для диагностики границ и ширины по умолчанию; CalcMaxOutLineLevel пересчитывает кэшированный максимальный уровень структуры после прямого изменения метаданных; CopyColFormat клонирует одну запись столбца на другой индекс; DeleteCol удаляет запись; а FindNextColToStore обходит сохранённые записи для писателей записей BIFF COLINFO, сообщая следующий диапазон в out-параметрах MinCol / MaxCol
Методы узлов структуры TXLSWorksheet
function TryGetOutlineNode(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; out ANode: TXLSOutlineNode): Boolean;
function SetOutlineNodeCollapsed(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; ACollapsed: Boolean; AChildMode: TXLSOutlineChildMode = xocPreserve): Boolean;
procedure SetOutlineDisplayLevel(AAxis: TXLSOutlineAxis; ADisplayLevel: Integer; AChildMode: TXLSOutlineChildMode = xocPreserve);
Эти методы адаптируют классические метаданные строк и столбцов к общей разреженной модели структуры, находят запрошенный итоговый узел по его направлению в структуре и применяют сжатые изменения скрытия и сворачивания, не затрагивая неиспользуемые координаты листа
ANodeIndex — физическая итоговая строка или столбец с отсчётом от 1, ADisplayLevel следует соглашению кнопок структуры с отсчётом от 1, а xocPreserve по умолчанию сохраняет независимость маркеров сворачивания вложенных дочерних узлов
Методы панелей и заголовков печати TXLSWorksheet
function ThawPanes(Y, X: Single; RowTop, ColLeft: Word): Integer;
function SplitPanes(Width, Height: Single): Integer;
function UnsplitPanes: Integer;
function GetSelectedAreas(APane: TXLSPanePosition; out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition; const Areas: array of WideString; ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition; out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition; ARow, ACol: Integer): Boolean;
function RepeatRows(FirstRow, LastRow: Word): Integer;
function RepeatColumns(FirstCol, LastCol: Word): Integer;
ThawPanes, SplitPanes и UnsplitPanes управляют состоянием разделённых панелей, а RepeatRows и RepeatColumns задают строки или столбцы заголовков печати для листа
GetSelectedAreas и перегрузка
SelectAreas, принимающая панель первым параметром, реализуют общий контракт выделения логических панелей, описанный в
выделении панелей листа
Последовательные записи выделения BIFF для одной панели образуют единую логическую группу; изменённые группы записываются порциями не более чем из 1369 областей, а копии листа сохраняют каждую группу панелей
Структурные изменения целых строк и столбцов перестраивают каждую допустимую группу панелей, сохраняя порядок уцелевших областей и идентичность активной области, с детерминированными запасными вариантами для последующей, предыдущей и граничной ячеек
Некорректные или противоречивые записи выделения остаются непрозрачными, воспроизводятся байт в байт при сохранении и сообщают диагностику xlsDiagnosticSelectionRecordInvalid вместо предоставления частично доверенного типизированного состояния
TryGetWindowScroll и ScrollWindow реализуют общий контракт прокрутки четырёх панелей с отсчётом от 1, отображая верхнюю и левую оси на Window2, а нижнюю и правую — на Pane
Типизированные методы проверки данных TXLSWorksheet
function AddWholeNumberValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDecimalValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDateValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTimeValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTextLengthValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddCustomValidation(ARange: WideString; const AFormula: WideString): TDataValidation;
Каждый вспомогательный метод создаёт типизированное правило проверки данных для ARange и возвращает созданный экземпляр TDataValidation, чтобы можно было настроить параметры подсказки, ошибки и обработки пустых значений
Члены сводных таблиц TXLSWorksheet
property PivotTables: TXLSPivotTables;
function AddPivotTable(const SourceRangeA1: WideString; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable;
function PivotSetDataFieldFormat(DataField: TXLSPivotDataField; const FormatStr: WideString): Word;
Используйте
AddPivotTable для создания типизированной сводной таблицы из исходного диапазона, затем используйте
PivotTables и
PivotSetDataFieldFormat для проверки или форматирования созданной модели. См.
API сводных таблиц классического XLS
function SetArrayFormula(const Formula: WideString): Integer;
function XFIndex: Integer;
property FirstRow: Word;
property LastRow: Word;
property FirstCol: Byte;
property LastCol: Byte;
SetArrayFormula присваивает формулу массива диапазону. FirstRow, LastRow, FirstCol и LastCol предоставляют доступ к сохранённым границам диапазона (отсчёт с 1), а XFIndex возвращает действующий индекс формата классического XLS для диапазона
Вспомогательные функции передачи IXLSRange
procedure PasteFrom(SrcRange: TXLSRange; PasteMode: LongWord; CopyMode: Boolean);
procedure ShiftTo(Row: Word; Col: Byte);
procedure ExtendRange;
procedure ContractRange;
PasteFrom применяет содержимое ячеек из другого классического XLS-диапазона с использованием выбранного режима вставки. ShiftTo перемещает объект диапазона, а ExtendRange и ContractRange корректируют сохранённый прямоугольник перед операциями над диапазоном, которым требуются расширенные или нормализованные границы
Интерфейсы диапазонов строк и столбцов IXLS
interface IXLSRowsRange = interface(IXLSRange)
property Item[Row: Integer]: IXLSRowRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = False);
interface IXLSRowRange = interface(IXLSRange)
property Item[Col: Integer]: IXLSColRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = False);
interface IXLSColsRange = interface(IXLSRange)
property Item[Col: Integer]: IXLSColRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = True);
procedure Group(Rows: Boolean = False);
procedure UnGroup(Rows: Boolean = False);
property OutlineLevel: Integer;
interface IXLSColRange = interface(IXLSRange)
property Item[Row: Integer]: IXLSRowRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = True);
procedure Group(Rows: Boolean = False);
procedure UnGroup(Rows: Boolean = False);
property OutlineLevel: Integer;
IXLSRowsRange, IXLSRowRange, IXLSColsRange и IXLSColRange возвращаются методами IXLSRange.Rows, IXLSRange.Columns, IXLSRange.EntireRow и IXLSRange.EntireColumn. Они сохраняют стандартный интерфейс редактирования IXLSRange, добавляя индексированный доступ к строкам или столбцам, управление видимостью, счётчики, автоподбор ширины/высоты и группировку структуры там, где это поддерживается направлением диапазона
Свойство DisplayText IXLSHyperLink
property DisplayText: WideString;
DisplayText читает или изменяет видимый текст, отображаемый Excel для классической XLS-гиперссылки, отдельно от целевого адреса и всплывающей подсказки
Свойства сопоставления ID TXLSWorksheets
property IndexByID[SheetID: Integer]: Integer;
property IDByName[SheetName: WideString]: Integer;
property NameByID[SheetID: Integer]: WideString;
Эти свойства только для чтения обеспечивают сопоставление между внутренним идентификатором листа, текущим индексом листа и видимым именем листа. Они полезны при сохранении формул, определённых имён или записей, которые ссылаются на листы по сохранённым идентификаторам, а не по текущему порядку вкладок
Свойство SheetTypeRaw TXLSWorksheet
property SheetTypeRaw: Byte;
SheetTypeRaw сохраняет необработанное значение BoundSheet8.dt классического XLS при загрузке и сохранении рабочих книг, чтобы записи о типах листов — макросах, VBA, рабочих листах, диалогах и других — могли сохраняться без приведения к стандартной вкладке рабочего листа
Расширенные свойства печати IXLSPageSetup
property PrintNotesAtEnd: Boolean;
property UseFirstPageNumber: Boolean;
property FirstPageNumber: Integer;
property PrintCellErrors: LongWord;
property PrintResolution: LongWord;
property PrintVResolution: LongWord;
property Copies: LongWord;
property HasSetupRecord: Boolean; read only
property PrinterSettingsInitialized: Boolean; read only
property PrinterDriverData: TBytes;
property HasPrinterDriverData: Boolean; read only
procedure ClearPrinterDriverData;
Эти свойства сохраняют расширенные параметры настройки страницы: примечания, напечатанные в конце, пользовательский номер первой страницы, отображение ошибок ячеек при печати, разрешение принтера и количество копий
HasSetupRecord сообщает, содержит ли загруженный классический XLS-лист запись BIFF Setup, а PrinterSettingsInitialized — определены ли этой записью размер бумаги, масштаб, ориентация, разрешение и количество копий
Сохранение нетронутого листа сохраняет как отсутствие записи Setup, так и существующую запись байт в байт; изменение поля настройки страницы при необходимости создаёт запись, а изменение поля, зависящего от принтера, инициализирует настройки принтера
PrinterDriverData читает или заменяет непрозрачные данные драйвера принтера в записи BIFF PLS, HasPrinterDriverData отличает случай отсутствия данных, а ClearPrinterDriverData удаляет их, не меняя типизированные поля настройки страницы
Массивы байтов в геттерах и сеттерах копируются, поэтому вызывающая сторона и копия листа владеют ими независимо; классические полезные данные должны включать обязательный двухбайтовый зарезервированный префикс и не могут превышать 1 MiB
SaveXLSWorkbookAsXLSX переносит типизированные значения настройки страницы и непрозрачные данные драйвера принтера в модель XLSX независимо друг от друга; типизированные стандартные поля остаются приоритетными, если приватные байты драйвера содержат дублирующие настройки принтера по умолчанию
Свойства кодировки шрифта IXLSFont
property CharSet: Byte;
property Family: Byte;
CharSet и Family предоставляют доступ к байтам кодировки и семейства шрифта классического XLS для вызывающих сторон, которым необходимо сохранять метаданные шрифта, специфичные для локали
Методы Abort TDataToXLS и TGridToXLS
procedure TDataToXLS.Abort;
procedure TGridToXLS.Abort;
Вызывайте Abort из обработчиков событий экспорта, когда выполняющийся экспорт набора данных или сетки необходимо прервать до завершения
Вспомогательные функции классических ссылок XLS
function GetCellRef(Cell: String; var Row, Col: Word): Integer;
function GetCellRange(CellRange: String; var StartRow, StartCol, EndRow, EndCol: Word): Integer;
function EncodeCellRef(Row, Col: Word): String;
function EncodeCellRange(StartRow, StartCol, EndRow, EndCol: Word): String;
function Width2Excel(Value: Single): Word;
function Excel2Width(Value: Word): Single;
function Height2Excel(Value: Single): Word;
function Excel2Height(Value: Word): Single;
function ColIndexToColName(Index: Integer): String;
function ColNameToColIndex(Name: String): Integer;
Эти вспомогательные функции преобразуют классические ссылки A1, диапазоны, метки столбцов, размеры строк или столбцов и единицы хранения Excel, используемые классической объектной моделью XLS