.xlsx). Объявлено в
lxHandleX. Содержит коллекцию TXLSXSheets
и предоставляет точки входа SaveAs / Open для рабочих книг OOXML, импорта CSV / TSV и рабочих процессов чтения/записи OpenDocument Spreadsheet (.ods)
type
TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet,
xlsxOpenXMLTemplate, xlsxOpenXMLMacroEnabledTemplate, xlsxExcelBinaryWorkbook);
TODSExportOptions = class
constructor Create;
property Generator: WideString;
property IncludeCharts: Boolean;
property IncludeImages: Boolean;
end;
TXLSXWorkbook = class
constructor Create;
destructor Destroy; override;
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
function CreateReadOnlyView: IXLSReadOnlyWorkbookView;
property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
function SaveAs(const FileName: WideString): Integer; overload;
function SaveAs(const FileName: WideString; FileFormat: TXLSXFileFormat): Integer; overload;
function SaveAs(Stream: TStream): Integer; overload;
function SaveAs(Stream: TStream; FileFormat: TXLSXFileFormat): Integer; overload;
function GetConversionReport(ATarget: TXLSConversionTarget): TXLSConversionReport;
function SaveAsChecked(Stream: TStream; FileFormat: TXLSXFileFormat;
AllowLossy: Boolean = False): Integer; overload;
function SaveAsChecked(const FileName: WideString; FileFormat: TXLSXFileFormat;
AllowLossy: Boolean = False): Integer; overload;
function Open(const FileName: WideString): Integer; overload;
function Open(const FileName: WideString; const Password: WideString): Integer; overload;
function Open(Stream: TStream): Integer; overload;
function OpenCSV(const FileName: WideString): Integer; overload;
function OpenCSV(const FileName: WideString; ASeparator: WideChar;
ADetectTypes: Boolean): Integer; overload;
function OpenCSV(Stream: TStream): Integer; overload;
function OpenCSV(Stream: TStream; ASeparator: WideChar;
ADetectTypes: Boolean): Integer; overload;
function OpenODS(const FileName: WideString): Integer; overload;
function OpenODS(Stream: TStream): Integer; overload;
function SaveAsODS(const FileName: WideString): Integer; overload;
function SaveAsODS(Stream: TStream): Integer; overload;
function SaveAsODS(const FileName: WideString; Options: TODSExportOptions): Integer; overload;
function SaveAsODS(Stream: TStream; Options: TODSExportOptions): Integer; overload;
function GetODSSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
function GetODSSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
function GetSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
function GetSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
function SaveAsCSV(const FileName: WideString): Integer; overload;
function SaveAsCSV(const FileName: WideString; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
function SaveAsCSV(Stream: TStream): Integer; overload;
function SaveAsCSV(Stream: TStream; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
function SaveAsHTML(const FileName: WideString): Integer; overload;
function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(const FileName: WideString; SheetIndex: Integer): Integer; overload;
function SaveAsHTML(const FileName: WideString; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(Stream: TStream): Integer; overload;
function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(Stream: TStream; SheetIndex: Integer): Integer; overload;
function SaveAsHTML(Stream: TStream; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsRTF(const FileName: WideString): Integer; overload;
function SaveAsRTF(const FileName: WideString; SheetIndex: Integer): Integer; overload;
function SaveAsRTF(Stream: TStream): Integer; overload;
function SaveAsRTF(Stream: TStream; SheetIndex: Integer): Integer; overload;
// AES encryption (ECMA-376 Standard Encryption) write path.
// OpenEncrypted still raises for encrypted packages.
function SaveAsEncrypted(const FileName, APassword: WideString): Integer;
function OpenEncrypted(const FileName, APassword: WideString): Integer;
function CanReadEncrypted(const FileName: WideString): Boolean;
function Calculate(const Formula: WideString): Variant;
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out AMismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
property OnUserFunction: TXLSUserFunctionEvent;
property OnUserFunctionEx: TXLSUserFunctionExEvent;
property AllowUnsafeFormulaCallbacks: Boolean;
// Document properties (docProps/core.xml + docProps/app.xml).
property Title, Author, Subject, Keywords, Description,
Category, LastModifiedBy, Company,
Application, AppVersion: WideString;
property Created, Modified: TDateTime;
// Workbook protection (16-bit legacy hash).
procedure ProtectWorkbook; overload;
procedure ProtectWorkbook(const APassword: WideString); overload;
procedure ProtectWorkbook(const APassword: WideString; ALockStructure, ALockWindows: Boolean); overload;
procedure UnProtectWorkbook;
property IsWorkbookProtected: Boolean;
property LockStructure, LockWindows: Boolean;
// VBA project payload (round-trips byte-for-byte). Workbook is saved
// with macro-enabled content type when HasVbaProject is True.
procedure LoadVbaProjectFromFile(const AFileName: WideString);
procedure ClearVbaProject;
function HasVbaProject: Boolean;
property VbaProjectDefined: Boolean;
property VbaProject: AnsiString;
property ParsedVBAProject: TXLSVBAProject;
// Unknown package and workbook extension preservation
procedure ClearUnsupportedParts;
function UnsupportedPartCount: Integer;
function UnsupportedPartBytes: Int64;
property PreserveUnsupportedParts: Boolean;
// Chart sheet helper — creates a sheet flagged IsChartSheet and
// seeds Charts[0] with a default full-page anchor.
function AddChartSheet(const AName: WideString;
AChartType: TXLSXChartType; const ATitle: WideString): TXLSXWorksheet;
// Streaming SaveAs path (TXLSWideStringBuilder + one sheet at a time).
property StreamingWrite: Boolean;
// Streaming parallel Open path
property ParallelParse: Boolean;
property ParallelParseThreads: Integer;
// Workbook-level collections.
property ActiveSheet: Integer;
property Minimized: Boolean;
property WindowHidden: Boolean;
property ShowHorizontalScroll: Boolean;
property ShowVerticalScroll: Boolean;
property ShowSheetTabs: Boolean;
property XWindow: Integer;
property YWindow: Integer;
property WindowWidth: Integer;
property WindowHeight: Integer;
property TabRatio: Integer;
property FirstSheet: Integer;
property AutoFilterDateGrouping: Boolean;
property Date1904: Boolean;
// Workbook calculation policy
property Iterate: Boolean;
property IterateCount: Integer;
property IterateDelta: Double;
property CalcId: Integer;
property FullCalcOnLoad: Boolean;
property CalcMode: WideString;
property RefMode: WideString;
property ForceFullCalc: Boolean;
property CalcCompleted: Boolean;
property CalcOnSave: Boolean;
property FullPrecision: Boolean;
property ConcurrentCalc: Boolean;
property ConcurrentManualCount: Integer;
function CreateWorkspaceWorkbook: IXLSWorkspaceWorkbook;
procedure RegisterExternalWorkbook(const AWorkbookName: WideString;
AWorkbook: TXLSXWorkbook);
procedure UnregisterExternalWorkbook(const AWorkbookName: WideString);
property SourceFormat: TXLSXFileFormat;
property IndexedColor[Index: Integer]: LongWord;
function NearestIndexedColor(AArgb: LongWord;
out AMatch: TXLSNearestIndexedColorMatch): Boolean;
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
function BuildBiffPalettePlan: TXLSBiffPalettePlan;
function ApplyBiffPalettePlan(
const APlan: TXLSBiffPalettePlan): Boolean;
function HasCustomIndexedColor(Index: Integer): Boolean;
function CustomIndexedColorCount: Integer;
procedure ResetIndexedColors;
property Sheets: TXLSXSheets;
property Fonts: TXLSXFonts;
property Fills: TXLSXFills;
property Borders: TXLSXBorders;
property NumberFormats: TXLSXNumberFormats;
property Alignments: TXLSXAlignments;
property DefinedNames: TXLSXDefinedNames;
property ExternalLinks: TXLSXExternalLinks;
property ExternalWorkspace: TXLSWorkbookWorkspace;
end;
| Sheets | лист коллекция. See TXLSXSheets |
| Fonts | Техническое описание и идентификаторы: HotXLS. TXLSXCell.FontIndex в индекс этой
коллекции (отсчёт с 1). См. TXLSXFont / TXLSXFonts |
| Fills | Палитра заливок уровня книги. Ячейки выбирают заливку,
задавая TXLSXCell.FillIndex в индекс этой
коллекции (отсчёт с 1). См. TXLSXFill / TXLSXFills |
| Borders | Палитра границ уровня книги. Ячейки выбирают границу,
задавая TXLSXCell.BorderIndex в индекс этой
коллекции (отсчёт с 1). См. TXLSXBorder / TXLSXBorders |
| NumberFormats | Палитра пользовательских числовых форматов уровня книги. Ячейки
выбирают формат, задавая TXLSXCell.NumberFormatIndex в индекс этой
коллекции (отсчёт с 1). См
TXLSXNumberFormat / TXLSXNumberFormats |
| DefinedNames | Именованные диапазоны уровня книги (с областью действия на книгу или лист). См TXLSXDefinedName / TXLSXDefinedNames |
| Calculate | Компилирует и вычисляет строку формулы Excel для активного листа, а ведущий = принимается
Ссылки на ячейки, диапазоны, формулы в ячейках, на которые ссылаются формулы, межлистовые ссылки, вложенные имена, заданные формулами, широковещательные массивы с поячеечными ошибками, массивы многомерной регрессии и предсказания, а также поддерживаемые текстовые функции, функции дат и рабочих дней, инженерные функции и функции преобразования систем счисления, битовые, статистические, агрегатные и математические функции вычисляются общим движком формул HotXLS
См. OnUserFunction для обработки пользовательских или неподдерживаемых функций |
| CreateLoadedCellCursor | Создаёт курсор с константным состоянием и порядком «строка за строкой» по сохранённым значениям и формулам XLSX, с перегрузкой, которая также выдаёт независимо оформленные пустые ячейки как xlckBlank. Разреженные блоки и упакованное хранилище проходятся без материализации упакованного представления. См. CreateLoadedCellCursor method |
| CreateReadOnlyView | Создаёт представление общей модели с константным временем доступа, локальным активным листом, снимками по значению, кэшированными результатами формул, опциональной изолированной оценкой формул, прямыми чтениями упакованных ячеек и временем жизни с подсчётом ссылок через IXLSXWorkbookOwner, and fail-fast write exclusion; the IXLSReadOnlyWorkbookView also reports SheetCount Техническое описание и идентификаторы: HotXLS. TXLSXFill / TXLSXFills |
| SaveSemanticSnapshot, ComputeSemanticHash | Техническое описание и идентификаторы: HotXLS. TXLSXBorder / TXLSXBorders |
| RenderCalibration, CaptureRenderCalibration, ResetRenderCalibration | Техническое описание и идентификаторы: HotXLS TXLSXNumberFormat / TXLSXNumberFormats |
| CreateRenderGeometry | Техническое описание и идентификаторы: HotXLS TXLSXDefinedName / TXLSXDefinedNames |
| OnUserFunction, OnUserFunctionEx | Техническое описание и идентификаторы: HotXLS. Calculate когда формула
вызывает пользовательскую или неподдерживаемую функцию. Подробности:
OnUserFunction |
| AllowUnsafeFormulaCallbacks | По умолчанию false и не даёт опасным внешним или макро-именам функций доходить до обработчиков пользовательских функций до вычисления аргументов. См. callback safety policy |
| GetSheetNames(FileName, AList), GetSheetNames(Stream, AList) | Reads xl/workbook.xml и добавляет
имена листов в AList в порядке книги, не
загружая XML листов. Перегрузка для потока ожидает полный поток
пакета XLSX. Возвращает количество прочитанных имён или
-1 к handle custom или unsupported функции |
| Alignments | Callback используемый через TXLSXCell.AlignmentIndex когда
формула calls custom или unsupported функция. See
OnUserFunction / OnUserFunctionEx callback |
| Document properties | Техническое описание и идентификаторы: XML, XLSX
docProps/core.xml + docProps/app.xml при
SaveAs (иначе книга сохраняет минимальный набор частей) |
| ProtectWorkbook / UnProtectWorkbook | Переключатель защиты книги с необязательным
16-битным хэшем устаревшего пароля и LockStructure /
LockWindows flags. Reflected as
<workbookProtection> in xl/workbook.xml |
| LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefined | LoadVbaProjectFromFile imports a raw vbaProject.bin payload; VbaProject exposes the bytes; HasVbaProject and read-only VbaProjectDefined оба сообщают, присутствуют ли данные. Сохраняйте с расширением .xlsm , когда макросы должны быть включены в Excel |
| ParsedVBAProject | Read-only parsed view of the current
vbaProject.bin данные. Когда данные — валидное OLE-хранилище
VBA, возвращает TXLSVBAProject с именами
модулей и исходным текстом; иначе возвращает nil. The raw
VbaProject данные остаются эталонными байтами, которые используются
для циклов SaveAs/Open |
| AddChartSheet(Name, Type, Title) | Creates a worksheet flagged
IsChartSheet = True and seeds Charts[0]
с разумным якорем по умолчанию на всю страницу. SaveAs записывает такие листы
в xl/chartsheets/sheetN.xmlТехническое описание и идентификаторы: HotXLS
TXLSXAlignment |
| ParallelParse | Техническое описание и идентификаторы: LastModifiedBy, AppVersion, SaveAs Open направляет
записи ZIP листов напрямую в локальные для воркеров распаковщики и XML-ридеры
Промежуточные копии распакованного XML листов не сохраняются, а
источник пакета блокируется только на каждое позиционированное чтение. Задайте False,
чтобы разбирать по одному листу за раз. По умолчанию True |
| ParallelParseThreads | Задаёт максимальное количество потоков листов, разбираемых
параллельно во время Open. Ноль выбирает автоматическое
количество воркеров, положительные значения задают явный предел. Активные
рабочие наборы распаковщиков и XML-ридеров ограничены этим числом |
| StreamingWrite | When True, SaveAs uses
WriteWorksheetXmlStreaming на лист — кэш sheetXmls
не удерживается, sharedStrings.xml выдаётся последним, после того как каждый лист
наполнит SST. В сочетании с построчным
TXLSWideStringBuilder это сохраняет память линейной на
больших листах. По умолчанию False (существующее поведение) |
| PreserveUnsupportedParts / ClearUnsupportedParts | PreserveUnsupportedParts по умолчанию
True и сохраняет неизвестные части пакета, достижимые через связи, а также
чужеродные объявления пространств имён корня книги, атрибуты
markup-compatibility и полные элементы уровня книги <extLst>
книга protection toggle с optional
16-bit legacy пароль hash и
ClearUnsupportedParts/
UnsupportedPartCount flags. Reflected as UnsupportedPartBytes
в xl/книга.xml |
| PreserveRawParts | Техническое описание и идентификаторы: HotXLS |
| SaveAsEncrypted / OpenEncrypted / CanReadEncrypted | Техническое описание и идентификаторы: OLE, VBA, SaveAs
SaveAsEncrypted AddChartSheet(Name, Type, Title) CanReadEncrypted Техническое описание и идентификаторы: SaveAs OpenEncrypted TXLSXChart Open StreamingWrite
EXlsxEncryptionNotImplemented Техническое описание и идентификаторы: ECMA, AES, OLE, NI, OLE2 |
| SaveAs(FileName) | Записывает книгу в указанный файл. Возвращает
1 при успехе и отрицательное значение при сбое. Если в книге нет листов, перед записью добавляется стандартный Sheet1 is added before writingЭта перегрузка и SaveAs(FileName, FileFormat) сначала пишут вывод во временную область и только потом заменяют целевой файл
Если замена не удалась, возвращается -1 , а LastDiagnostic сообщает xlsDiagnosticOutputCommitFailed (1005), исходный Windows-код NativeCodeи системное сообщение об ошибке
Старый целевой файл и свойство книги FileName остаются без изменений; временный вывод освобождается, а следующее сохранение сбрасывает предыдущую диагностику |
| SaveAs(FileName, FileFormat) | Принимает xlsxOpenXMLWorkbook для обычного вывода в OOXML, xlsxOpenDocumentSpreadsheet для ODS, xlsxOpenXMLTemplate для шаблона XLTX без макросов или xlsxOpenXMLMacroEnabledTemplate для шаблона XLTM; для всех вариантов OOXML поддерживаются буферизованный и потоковый выводШаблонный вывод записывает application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml для /xl/workbook.xml; для файлов используйте расширение .xltx , а при отдаче пакета по HTTP — application/vnd.openxmlformats-officedocument.spreadsheetml.template when serving the package over HTTPФормат нужно выбирать явно: ни расширение файла, ни импортированный шаблон не меняют вывод SaveAs по умолчаниюЕсли в книге есть VBA-проект, вывод XLTX вернет -1 с диагностикой о неподдерживаемом формате еще до записи целевого файла; XLTM сохраняет существующий VBA-проект и также принимает книгу без макросовSaveAsODS остается именованным ярлыком для вывода ODS с опциональным управлением через TODSExportOptions control |
| GetConversionReport / SaveAsChecked | Осматривает принадлежащий вызывающему коду отчёт конвертации известных функций без мутаций или отклоняет деградированные и отброшенные функции до записи, оставляя AllowLossy=False
Явное сохранение с потерями всё равно отклоняет неподдерживаемые конвертации; о целях, владении, диагностике и границах сохранения см. точность вычислений и конвертации |
| SaveAs(Stream) / SaveAs(Stream, FileFormat) | Записывает книгу напрямую в любой TStream, а перегрузка FileFormat принимает xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplate или xlsxOpenXMLMacroEnabledTemplate для OOXML-книг в памяти, таблиц ODS, шаблонов XLTX или шаблонов XLTMВозвращает 1 при успехе, а сохранение в поток соблюдает RecalcBeforeSave: ручной режим сохраняет существующие кэши формул, а политики dirty и always обновляют их перед сериализациейВладение потоком остаётся у вызывающего; отмена до начала записи сохраняет содержимое и позицию потока, а сбой после начала сериализации может оставить частичный вывод |
| Open(FileName) | Читает архив OOXML .xlsx и заменяет
Sheets collection with its contents. Returns 1
on success |
| Open(FileName, Password) | Зарезервировано для будущей поддержки шифрованного XLSX. Ведёт
себя как Open(FileName) today — the password is ignored |
| Open(Stream) | Reads an OOXML .xlsx archive from a
TStream. Returns 1 on success |
| OpenCSV(FileName) / OpenCSV(Stream) | Импортирует текст CSV или TSV в книгу с
автоматическим определением разделителя (,, ;,
табуляция или вертикальная черта), определение кодировки UTF-8 / UTF-16 по BOM, поля в кавычках
в стиле RFC 4180 и опциональный вывод типов значений через
ADetectTypes overloads. Calling
Open(FileName) on .csv or
.tsv направляется в этот импортёр автоматически. См.
OpenCSV method |
| OpenODS(FileName) / OpenODS(Stream) | Imports an OpenDocument Spreadsheet (.ods) пакет из файла или потока. Читатель загружает content.xml, shared style information from styles.xml, и настройки вида при наличии, сохраняя имена листов, скалярные значения, кэшированные результаты формул, базовое преобразование ссылок формул, повторяющиеся строки/столбцы/ячейки, объединённые диапазоны, rich text, гиперссылки, примечания, встроенные изображения, встроенные диаграммы, скрытые строки/столбцы/листы, высоты строк, ширины столбцов, унаследованные/стандартные стили, форматы чисел/дат/времени/валюты/научные/дробные, состояние защиты ячеек и листов, именованные диапазоны, области печати, ручные разрывы страниц, закреплённые области, диапазоны автофильтра, группы структуры строк/столбцов, колонтитулы, проверки данных с подсказками, условные форматы, включая формулы/цветовые шкалы/data bars, и цвет ярлыка листа. Полная семантика OpenFormula, ключи защиты ODS, геометрия примечаний, расширенное форматирование примечаний и функции пакета вне содержимого таблиц не преобразуются |
| SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptions | Сохраняет книгу как валидный пакет OpenDocument Spreadsheet. Он записывает ODF mimetype, манифест, метаданные, стили и содержимое листов напрямую, перенося типизированные значения, формулы, стили, rich text, размеры, объединения, гиперссылки, изображения, диаграммы, именованные диапазоны, диапазоны автофильтра, условные форматы, проверки данных, закреплённые области, параметры страницы, колонтитулы, области печати, ручные разрывы страниц, группы структуры, цвет ярлыка и видимость листов там, где эти возможности представлены в модели книги HotXLS. Передача опций экспорта, включая nil, сохраняет обычную политику пересчёта, отмену по прогрессу, диагностику и защиту от записи. Вывод в файл сначала готовит соседний файл и заменяет место назначения только после успешной сериализации; сбой сериализации и отмена до фиксации сохраняют прежнее место назначения. Прогресс записи сообщает о каждой завершённой таблице, а ppsEnd — терминальное уведомление, чей запрос Abort не может отменить уже завершённое сохранение. Вывод в поток сохраняет владение вызывающего и обычное поведение потокового сохранения, которое может оставить частичный вывод после начала сериализации |
| TODSExportOptions | Controls ODS export. Generator overrides the meta:generator value in meta.xml; пустое значение использует встроенную строку генератора HotXLS. IncludeCharts and IncludeImages по умолчанию True и при False удаляют соответствующие рамки рисунков, части пакета и записи манифеста вместе, чтобы вывод не содержал осиротевших ссылок на диаграммы или изображения. Экземпляр опций принадлежит вызывающему и должен быть освобождён им |
| GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList) | Reads only ODS table names from content.xml into AList без сброса или наполнения книги. Используйте, когда диалогу выбора файла или импортному сценарию нужны имена листов до загрузки книги |
| SaveAsCSV overloads | Четыре перегрузки (FileName или Stream ×
активный лист по умолчанию / явный SheetIndex + Delimiter). Записывает
выбранный лист как UTF-8 CSV с BOM. Значения дат выводятся как
yyyy-mm-dd hh:nn:ss; ячейки с формулами вычисляются перед
экспортом, а текст формулы используется, только когда вычисление недоступно
Возвращает 0 при успехе |
| SaveAsHTML overloads | Options overloads accept TXLSXHtmlExportOptions for Title, WriteDocument, IncludeStyles, IncludeBOM, and TableClass. Set WriteDocument to False for a table fragment; set IncludeBOM to False при встраивании вывода в существующий ответ UTF-8. Экспортированный вывод теперь сохраняет гиперссылки ячеек как <a> anchors and anchored images as inline data: URI изображений; экспорт уровня книги включает якоря вне заполненных ячеек. Примечания ячеек также выдаются как экранированные <td>title атрибуты, а экспорт уровня книги включает якоря, содержащие только примечания. Когда IncludeStyles is enabled, explicit ColWidth values are emitted as <col> widths and explicit RowHeight values as <tr> стили высоты. Фрагменты rich text в ячейках выдаются как экранированные <span> элементы со встроенными стилями шрифта, цвета, выделения и подчёркивания, когда IncludeStyles включён. Границы ячеек выдаются как CSS border-left, border-right, border-top, and border-bottom rules when IncludeStyles включён. Скрытые строки и столбцы, помеченные RowHidden / ColHidden, а также столбцы с явной нулевой шириной, пропускаются в сгенерированной таблице, а <colgroup>. Настройки вертикального выравнивания выдаются как CSS vertical-align rules when IncludeStyles is enabled |
| SaveAsRTF overloads | Четыре перегрузки (FileName или Stream ×
активный лист по умолчанию / явный SheetIndex). Записывает выбранный лист
как документ RTF 1.6 с простой таблицей. Ширины столбцов вычисляются
из ColWidth данных (1 символьная единица ≈ 96 twips;
по умолчанию 809 twips). Применяются полужирный / курсив / размер шрифта по ячейкам;
не-ASCII символы кодируются как знаковые 16-битные \uN?
RTF-escape-последовательности unicode. Объединённые ячейки не растягиваются. Возвращает 0 при
успехе |
| ActiveSheet | Записывает книгу прямо в любой ActiveSheetIndex. Перегрузка с SaveAs принимает activeTab="N" , <workbookView> или activeTab — для OOXML-книг, ODS-таблиц или шаблонов XLTX в памяти. При успехе возвращается tabSelected="1" |
| Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScroll | Техническое описание и идентификаторы: OOXML, xlsx <workbookView>Reserved для future encrypted XLSX поддержка. Behaves
like Minimized today — пароль является ignored minimized="1"Open(Stream) WindowHidden Техническое описание и идентификаторы: OOXML, xlsx visibility="hidden"OpenCSV(FileName) / OpenCSV(Stream) ShowHorizontalScroll Техническое описание и идентификаторы: CSV, TSV, BOM, UTF-8, UTF-16, RFC ShowVerticalScroll OpenCSV метод Open Техническое описание и идентификаторы: HotXLS |
| XWindow / YWindow / WindowWidth / WindowHeight | Сообщает семейство пакетов, загруженное последним успешным вызовом <workbookView>или XWindow . Для книг и шаблонов OOXML, включая XLTX, возвращается YWindow , для ODS — WindowWidth ; новая книга сообщает WindowHeight , пока не открыт файл. Это свойство не выбирает формат вывода |
| ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGrouping | Техническое описание и идентификаторы: ARGB, OOXML, SaveAs <workbookView>. ShowSheetTabs hides or shows the sheet-tab bar, TabRatio управляет разделением ширины между полосой ярлыков и полосой прокрутки и ограничивается диапазоном 0..1000, FirstSheet выбирает первый видимый ярлык как индекс листа с нулевой базой и ограничивается существующим листом, а AutoFilterDateGrouping управляет группировкой дат Excel в выпадающих списках автофильтра. Open round-trips all four values |
| Date1904 | Workbook date base. False (по умолчанию) =
эпоха Windows 1900; True = эпоха Mac 1904 (сдвигает каждый серийный номер даты на 1462 дня). Задайте это before assigning
TDateTime значения ячеек, чтобы Excel отображал те же
календарные даты |
| Iterate / IterateCount / IterateDelta | Управляет итеративным вычислением циклических ссылок
IterateCount ограничивается диапазоном 1..32767 и по умолчанию равен 100
IterateDelta принимает неотрицательные конечные значения и
по умолчанию равен 0.001
Ненулевые по умолчанию лимиты сохраняются, даже когда Iterate is
currently False |
| CalcMode / RefMode / CalcId | Управляет режимом вычисления книги, стилем
ссылок формул и идентичностью движка вычислений
CalcMode accepts auto,
manual, or autoNoTableRefMode accepts A1 or R1C1
с входом без учёта регистра и каноническим выводом
Вывод современных rich-error использует записанный CalcId не менее
191029, чтобы Excel интерпретировал кэшированные современные ошибки,
сохраняя более высокие запрошенные значения и оставляя in-memory свойство
неизменным |
| FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecision | Управляет полным пересчётом, завершением
кэшированных вычислений, пересчётом перед сохранением и политикой
точности Каждое значение, отличное от принятого по умолчанию, независимо выдаёт и проводит через запись/чтение соответствующий <calcPr> attribute |
| ConcurrentCalc / ConcurrentManualCount | Управляет параллельным вычислением книги и
ручной подсказкой количества рабочих потоков
ConcurrentManualCount is clamped to zero or greater |
| SourceFormat | Сообщает семейство пакетов, загруженное последним успешным Open или OpenODS, возвращая xlsxOpenXMLWorkbook для книг и шаблонов OOXML, включая XLTX и XLTM, xlsxOpenDocumentSpreadsheet для ODS и xlsxExcelBinaryWorkbook для поддерживаемого подмножества XLSB «значения и стили»Новая созданная книга сообщает xlsxOpenXMLWorkbook, пока файл не открыт, и это свойство не выбирает формат вывода |
| IndexedColor[Index] | значение ARGB для заданного слота (0..63) индексированной палитры цветов OOXML. Чтение возвращает пользовательское переопределение, если оно задано, иначе встроенное значение OOXML по умолчанию (XlsxDefaultIndexedPalette)
Writing overrides slot N; SaveAs then emits a full
<indexedColors> block with all 64 slots |
| ResolveIndexedColor | Classifies public color indexes, BIFF icv значения или индексированные цвета OOXML и вычисляет нормализованное значение ARGB, когда его поставляет палитра книги или явный callback системного цвета |
| NearestIndexedColor | Возвращает ближайшую физическую запись палитры через общий кэшированный OKLab-матчер, не меняя палитру и состояние книги |
| ScanIndexedColorUsage | Возвращает детерминированную опись 56 слотов с цветами палитры, количеством определений и ссылок, видами потребителей и блокировками сохранения, не материализуя ячейки и не меняя состояние книги |
| BuildBiffPalettePlan | Возвращает план палитры BIFF на 56 слотов без побочных эффектов: заблокированные слоты, агрегированные true-color цели, детерминированные отображения, идентичность источника и взвешенную статистику ошибок OKLab |
| ApplyBiffPalettePlan | Проверяет идентичность источника, метаданные слотов, блокировки и непрозрачные цели, затем атомарно применяет все изменившиеся записи палитры и один раз перестраивает кэшированный матчер |
| HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColors | HasCustomIndexedColor(N) returns
True when slot N was explicitly overridden
CustomIndexedColorCount возвращает количество переопределённых
слотов (0 = нет <colors> block emitted by SaveAs)
ResetIndexedColors Техническое описание и идентификаторы: SaveAs |
| ExternalLinks | Техническое описание и идентификаторы: HotXLS
TXLSXExternalLink
entry holds a Target URL and a SheetNames list. SaveAs
emits the <externalReferences> block in
xl/workbook.xml and the corresponding
xl/externalLinks/ части. Open проводит через цикл Target и
SheetNames; кэшированные значения ячеек внутри
<sheetDataSet> are not preserved |
| CreateWorkspaceWorkbook | Returns the revocable IXLSWorkspaceWorkbook адаптер для этой книги Адаптер сохраняет идентичность источника и поколение книги и отключается до уничтожения модели книги |
| ExternalWorkspace | Потокобезопасный реестр с сохранением путей, используемый живым вычислением внешних формул Точным идентичностям и алиасам отдаётся предпочтение, неоднозначный поиск по имени файла отклоняется, а нормализация идентичности не выполняет неявного доступа к файлам или сети См. Live workbook workspace |
| RegisterExternalWorkbook / UnregisterExternalWorkbook | Compatibility facade over ExternalWorkspace Техническое описание и идентификаторы: URL, SaveAs, SheetNames |
uses lxHandleX;
var
wb: TXLSXWorkbook;
begin
wb := TXLSXWorkbook.Create;
try
wb.Sheets.Add('Demo').Cells.Item[1, 1].Value := 'Hello';
wb.SaveAs('demo.xlsx');
wb.Open('demo.xlsx');
ShowMessage(wb.Sheets[0].Cells.Item[1, 1].Value);
finally
wb.Free;
end;
end;