Библиотека Excel для RAD Studio

Читайте, записывайте, стилизуйте и экспортируйте рабочие книги Excel без автоматизации Office

HotXLS — это нативная библиотека Object Pascal для приложений Delphi и C++Builder; она напрямую работает с классическими процессами XLS и современным фасадом XLSX, предоставляя API рабочих книг, возможности редактирования листов, расширенное форматирование, помощники экспорта, демонстрационные примеры и офлайн-документацию в одном пакете

Снимок рабочей книги XLS + XLSX
Значения
Стили
Экспорт
Числа
Границы
CSV
Даты
Цвета темы
HTML
Формулы
Валидация
RTF

Текущие возможности

Текущая версия HotXLS объединяет оригинальный фасад XLS со специализированным механизмом XLSX, благодаря чему унаследованный код может продолжать использовать классический API, в то время как новые проекты могут напрямую обращаться к функциям OOXML

Нативный ввод/вывод рабочих книг

Создавайте, открывайте, изменяйте и сохраняйте рабочие книги Excel непосредственно из кода Delphi или C++Builder; не требуется установка Microsoft Excel, COM-автоматизация или внешние процессы электронных таблиц

Сохраняйте шаблоны XLTX без макросов через SaveAs(FileName, xlsxOpenXMLTemplate) или соответствующую стриминговую перегрузку, включая потоковый вывод; формат сохранения по умолчанию не изменился

Классический фасад XLS

Зрелый API для рабочих книг Excel 97-2003 (.xls), охватывающий полную классическую объектную модель с высокоточным BIFF8 Roundtrip, плюс чтение унаследованных файлов Excel 2.0/3.0/4.0 (BIFF2-4) ради их значений

  • Индексированные интервалы вывода формул избавляют от повторных сканирований предшествующих строк при перестроении больших графов зависимостей, включая ссылки на выходы массивов и зависимости, охватывающие листы
  • Сохранение классического XLS сохраняет загруженные или вычисленные кэши формул, включая корни общих формул и формул массива; отсутствующие кэши сохраняют fallback-расчет, а явный Recalculate обновляет существующие значения
  • Скалярные ссылки на определенные имена пересекаются с диапазонами из одной строки или одного столбца на уровне ячейки с формулой, а агрегирующие и поисковые аргументы-диапазоны сохраняют полные диапазоны; пересчет избегает ложных циклов по диапазонам, отдает приоритет завершенным кэшам поиска и сохраняет точность чисел с плавающей запятой в смешанной целочисленной и плавающей арифметике
  • XLSX Roundtrip сохраняет динамические формулы области печати, квалифицированные объединения диапазонов и обязательный фонетический индекс шрифта с нулевым значением; сгенерированные и сохраняемые части делят уникальные объявления content-type, а пользовательские свойства и непрозрачные корневые связи хранят отдельные идентификаторы связей
  • Классический XLS сохраняет отсутствие импортированных записей полей до явной установки соответствующего поля, не меняя вывод полей по умолчанию для новых книг
  • AGGREGATE независимо обрабатывает некэшированные ошибки и вложенные выделения, с раздельной семантикой ссылок и вычисленных массивов для опций с 0 по 7
  • XLSX Roundtrip сохраняет неизмененный XML диаграмм и смещения якорей диаграмм, имена, размеры и схемы шрифтов условного форматирования, явные флаги стиля и RGB-цвета, а также неуказанную ориентацию страницы, когда заданы только поля
  • Полная объектная модель: рабочая книга, лист, диапазон, формула, форматирование, изображение, гиперссылка, определенное имя, защита, параметры страницы и экспорт отчетов
  • Метаданные столбцов классического XLS раскрывают маркеры сворачивания структуры независимо от состояния скрытости и уровня группировки, сохраняя их при Roundtrip необработанного XLS, копировании форматирования столбцов и копировании листов
  • Параметры страницы классического формата раскрывают HasSetupRecord и PrinterSettingsInitialized, сохраняют нетронутую запись BIFF Setup байт в байт, оставляют отсутствующую запись отсутствующей и инициализируют зависящие от принтера поля только когда этого требуют их сеттеры
  • Конвертация XLS→XLSX и XLSX→XLS переносит типизированные параметры страницы и непрозрачные байты драйвера принтера независимо друг от друга, сохраняет приоритет стандартных полей над дублирующими приватными значениями по умолчанию и отклоняет непредставимые настройки BIFF8 до записи целевого файла
  • Книги классического XLS и XLSX раскрывают согласованные политики SaveExternalLinkValues и UpdateLinks; кэшированные значения внешних книг можно опустить без удаления определений ссылок или кэшей в памяти, недопустимые нетронутые объявления источников остаются без потерь, кросс-форматная конвертация сохраняет корректные значения политик, а предпочтения обновления никогда не инициируют доступ к файлам или сети
  • Книги XLSX раскрывают точное обнаружение областей задач Web Add-in, подсчет и атомарное удаление; удаление проверяет ограниченные внутренние замыкания связей до изменения, сохраняет любую часть, используемую другой связью, удаляет принадлежащие части связей и устаревшие записи content-type, предотвращает «воскрешение» через копии сжатого источника и остается идемпотентным, а классический XLS и ODS сообщают об операции как о неподдерживаемой без сканирования пакета
  • Листы классического XLS и XLSX раскрывают согласованные учитывающие панели методы выделения и прокрутки с отсчетом от единицы через TXLSPanePosition; TryGetWindowScroll и ScrollWindow отображают общие оси верхней, нижней, левой и правой панелей в нативное двухуровневое состояние просмотра каждого формата, сохраняют его при сохранении, открытии и копировании листов и атомарно отклоняют отсутствующие панели или недопустимые координаты; снимки выделения остаются упорядоченными, перекрывающимися и принадлежащими вызывающему коду, структурные правки целых строк или столбцов переназначают каждую панель, сохраняя идентичность активной области с детерминированными fallback для выживших и граничных ячеек, а операции над большими областями остаются амортизированно линейными; классический XLS дополнительно агрегирует последовательные записи выделения, сохраняет нетронутые или недопустимые тела записей, сообщает о некорректных группах через xlsDiagnosticSelectionRecordInvalid и разбивает выделения крупнее 1369 областей на части
  • Нейтральный к движкам юнит lxOutline строит геометрию структуры строк или столбцов из отсортированных разреженных диапазонов, находит узлы «итоги до» или «итоги после» за время O(log n + k) и создает сжатые идемпотентные планы для сворачивания узлов, изменения уровня отображения, сохранения вложенных потомков и рекурсивного обновления состояния потомков без сканирования неиспользуемых координат листа; оба движка листов раскрывают одинаковые методы запроса и управления узлами, а группы OpenDocument хранят нативное состояние отображения и конвертируются в маркеры итоговых узлов XLSX
  • Книги классического XLS и XLSX раскрывают одинаковый контракт ResolveIndexedColor без побочных эффектов для публичных индексов цвета, значений BIFF icv и индексированных цветов OOXML; палитровые, автоматические, системные и недопустимые токены остаются различимыми, нулевой индекс границы сохраняет свое неопределенное значение, вывод ARGB нормализуется, а цвета операционной системы разрешаются только через явный колбэк вызывающего кода
  • Оба движка книг раскрывают запрос NearestIndexedColor без побочных эффектов, опирающийся на учитывающий мутации кэш OKLab; он ищет только по 56 физическим записям палитры BIFF, возвращает публичные и физические индексы с метаданными расстояния и точного совпадения, отклоняет частичную альфу и при равных расстояниях выбирает наименьший публичный индекс
  • Оба движка книг раскрывают детерминированную инвентаризацию ScanIndexedColorUsage без побочных эффектов по всем 56 физическим слотам палитры, включая нормализованные значения ARGB, счетчики определений и ссылок, виды потребителей и блокировки сохранения для стилей, разреженных ячеек, объектов листов, диаграмм, комментариев и условного форматирования — без материализации неиспользуемых ячеек
  • Оба движка книг раскрывают предварительный просмотр BuildBiffPalettePlan без мутаций, который защищает индексированных потребителей, агрегирует прямые и разрешенные цвета темы по частоте отображения, сохраняет существующие точные совпадения, детерминированно отображает цвета через OKLab и сообщает об идентичности источника, изменениях слотов, точном покрытии, взвешенной ошибке и квантовании переполнения, не меняя книгу или поведение сохранения
  • Оба движка книг могут валидировать и атомарно применять актуальный план на 56 слотов через ApplyBiffPalettePlan, отклоняя устаревшие или подделанные входные данные до любой мутации и один раз перестраивая перцептуальный сопоставитель; классические книги дополнительно предоставляют явный BiffPaletteSavePolicy, значение по умолчанию которого сохраняет исторический вывод, режим оптимизации применяется только к BIFF8, а неудавшиеся или отмененные сохранения восстанавливают исходную палитру
  • Оба движка книг раскрывают валидированное значение TXLSRenderCalibration с элементами управления шириной, высотой, межстрочным интервалом, полями ячеек, масштабированием экрана и DPI измерений; присваивание атомарно, захват возвращает независимый снимок операции, значения по умолчанию детерминированы, а настройка времени выполнения никогда не сериализуется и сама по себе не используется для изменения геометрии листа
  • Оба движка книг создают принадлежащие операции сервисы IXLSRenderGeometry, у которых неизменяемые калибровка, поколение книги, бэкенд, полная сигнатура шрифтов, ширина переноса и текст образуют ограниченную локальную идентичность кэша метрик; общее измерение GDI и конверсии пикселей, пунктов, ширины столбцов, MDW и полезной ширины ячеек устраняют глобальные для процесса кэши DPI и базовой ширины в AutoFit, не допуская масштабирования экрана в масштабировании выходных координат
  • AutoFit классического XLS и XLSX захватывает один снимок геометрии рендеринга на операцию и применяет калиброванное измерение шрифтов, перенос, межстрочный интервал и поля ячеек; пагинация захватывает ту же локальную для книги геометрию на каждую сборку, поэтому размеры страниц по умолчанию остаются стабильными, более поздние изменения калибровки требуют явной пересборки, а вычисление страниц никогда не записывает сохраненные высоты строк или ширины столбцов
  • Пагинация PDF, SVG, растровых изображений, предпросмотра печати и просмотрщика книг идентифицирует собственный бэкенд рендеринга и удерживает неизменяемую калибровку книги на всю операцию; общее вписывание текста страниц и перенос SVG используют локальный для операции ограниченный кэш метрик с полными стилями шрифтов и идентичностью кодировки вместо глобальных для процесса объектов измерения
  • Экспорт наборов данных TDataToXLS может включать только выбранные поля или исключать чувствительные поля, сохраняя согласованность заголовков, строк данных, колбэков и ширин столбцов
  • Автоматические динамические массивы XLSX изменяют размер и владеют своими spill-ячейками, сохраняют пользовательские препятствия с #SPILL!, поддерживают A1# и унарный @ и восстанавливают владение после повторного открытия; фиксированные формулы CSE вычисляют «сырую» арифметику диапазонов поэлементно
  • Массивные MAP с несколькими массивами и вычисляемые FILTER сохраняют ошибки по элементам, а rich-value метаданные XLSX хранят типизированные ошибки #SPILL! и #CALC!
  • GetConversionReport инвентаризирует известные потери целевого формата без мутаций, а включаемый по выбору SaveAsChecked может отклонить их до записи; явный вывод xlsxOpenXMLMacroEnabledTemplate создаёт пакеты XLTM и сохраняет существующий VBA
  • Реализации TXLSQueryTableProvider, переданные вызывающим кодом, обновляют данные таблиц запросов с фиксированной схемой транзакционно, изменяя размеры таблиц и диапазонов фильтров с ограниченными результатами, прогрессом, отменой и откатом
  • Автоматические запросы к базам данных связывают ограниченные позиционные параметры из явно типизированных литералов или сохранённых ячеек листа, включая Unicode, пустой текст, даты, null и доступные кэши формул; Jet и ACE сохраняют типизированные даты без зависящего от локали преобразования меток времени, а обновление применяет результаты транзакционно
  • Автоматические текстовые запросы обновляют файлы с разделителями или фиксированной шириной с явным декодированием, типизированными полями, пропускаемыми столбцами, настроенными строками заголовков и старта и ограниченными транзакционными обновлениями; позиции фиксированной ширины используют декодированные кодовые единицы UTF-16, обрезают заполнение и сохраняют объявленные столбцы на коротких записях
  • Валидация импорта проверяет строгие скалярные типы, числовые и датные границы, составную уникальность и межстолбцовые связи по сохранённым значениям и кэшам формул, со структурированными нарушениями с адресом ячейки и явными операциями аннотации или книги-исправления
  • CELL читает фактическую идентичность ссылочного файла, поддерживаемые базовые числовые форматы, выравнивание, состояние блокировки и ширину столбца в XLS и XLSX; INFO("recalc") читает режим вычислений книги, а недоступная информация о среде приложения Excel возвращает явную ошибку
  • Повторяемые полосы отчётов клонируют полные ветки обсуждений с перемапленными идентичностями, а общая нативная пагинация рендерит объединённые диапазоны ячеек, при этом кэши диаграмм обновляются из поддерживаемых локальных диапазонов после правок и пересчёта
  • Встроенное вычисление формул с глобальными для процесса и локальными для книги реестрами пользовательских функций, семантикой переопределения локальных имен, вызовом обработчиков без блокировок, колбэками OnUserFunction и OnUserFunctionEx, плюс распространенные функции Excel для текста, дат, рабочих дней, инженерные/перевода систем счисления, побитовые, статистические, агрегирующие, математические и динамически-массивные функции, включая транслирующие массивные операторы с ошибками по ячейкам, полные многопеременные матрицы LINEST / LOGEST, структурированные прогнозы TREND / GROWTH, стабильную сортировку строк или столбцов SORT, стабильную многоключевую SORTBY по строкам или столбцам с независимыми направлениями и ключами-массивами, учитывающие массивы округления CEILING.MATH / FLOOR.MATH с трансляцией синглтонов и локальными ошибками, стабильное учитывающее массивы вычисление COT / ACOT / COTH / ACOTH / CSC / CSCH / SEC / SECH с локальными ошибками и безопасными при переполнении ветками для больших входов, проверенные на переполнение расчеты повторений COMBINA / PERMUTATIONA, ограниченные по памяти единичные матрицы MUNIT, конверсию Unicode-скаляров UNICHAR, тайский текст валюты через BAHTTEXT, инспекцию ISFORMULA с сохранением ссылок без пересчета цели, индексированные хешем UNIQUE по строкам или столбцам, «проливающиеся» результаты FREQUENCY, логарифмический бинарный XMATCH / XLOOKUP, обнаружение опциональных аргументов ISOMITTED, конверсию массивов ARRAYTOTEXT / VALUETOTEXT, валидированные расчеты XIRR / XNPV, сроки и ставки роста инвестиций PDURATION / RRI и амортизацию VDB с дробными периодами, плюс полные привязки LET и замыкания LAMBDA, вызываемые через определенные имена и лексически захваченные внутри LET
  • Нейтральный к движкам EvaluateFormulaAt вычисляет текст формулы A1 или R1C1 в явном контексте ячейки листа, не изменяя модель ячейки, кэш, состояние «грязности», активный лист или граф зависимостей; типизированные результаты сохраняют ошибки формул, массивы, пустые значения, волатильность, отмену, авторизацию внешних ссылок и стабильные категории сбоев, а IXLSFormulaEvaluationTemplate переиспользует неизменяемый скомпилированный якорь между целевыми ячейками в рамках настраиваемых бюджетов длины формулы, шагов, рекурсии и памяти массивов
  • Классический XLS и XLSX раскрывают согласованные свободные от мутаций методы ValidateFormulaEntry, политику уровня книги FormulaEntryPolicy и разобранные сканирования AuditFormulaSymbols по ячейкам и определенным именам, с более быстрыми разреженными сканированиями классического XLS и единым обходом символов, сохраняющим независимые находки функций и имён, область действия, дедупликацию и порядок находок; точный пустой ввод, формулы, возвращающие пустую строку, неизвестные функции, неизвестные имена, синтаксические сбои, недопустимые цели и ограничения целевого формата остаются различимыми, обычное присваивание формулы атомарно применяет строгое отклонение или сохранение, сохраненные неизвестные символы вычисляются и распространяются как #NAME?, изменения UDF или определенных имен делают устаревшие зависимости недействительными, классический BIFF хранит сохраненные неизвестные вызовы как пользовательские функции надстроек, валидация распознает зарегистрированные или колбэк-пользовательские функции, лексические и именные lambda, плейсхолдеры отчетов, зарегистрированные внешние ссылки и корректные структурированные ссылки без вызова обработчиков, а опасные внешние или макро-стилевые колбэки функций остаются заблокированными до вычисления аргументов, если явно не авторизованы
  • Инспекция токенов формул без потерь и защищенная мутация для обоих движков книг через TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText и SetFormulaTokens, с потоками во владении вызывающего кода, проекциями токенов только для чтения, «сырыми» полезными нагрузками BIFF, независимыми флагами ссылок, клонированием, атомарной заменой ссылок, провенансом контекста и валидацией перед записью
  • Таблицы данных What-If с одной переменной по строке, одной по столбцу и с двумя переменными, с изолированным пересчетом зависимостей, ошибками удаленных входов, структурными правками, копированием листов и поддержкой BIFF8 Roundtrip
  • Сканирование ячеек, поиск и замена в шаблонах, заполнение диапазонов через колбэки, прямая запись типизированных массивов через ForEachCell, FindText, ReplaceText, WriteCells и методы записи строк и столбцов для чисел, строк и variant, плюс ConvertFormulasToValues для целого листа или отдельной ячейки, который замораживает формулы в их вычисленные результаты, сохраняя кэшированное значение
  • Нейтральная к движкам инспекция кэша формул через IXLSFormulaCacheReader и CreateFormulaCacheReader каждого движка книг сообщает о наличии, происхождении (загружено или вычислено) и виде значения — пустое, число, дата-время, строка, Boolean или ошибка — без вычисления формул, вызова пользовательских функций, декомпиляции токенов или изменения состояния книги; аренда на время жизни безопасно делает ридеры недействительными после уничтожения книги, члены общих формул сохраняют независимые кэши, а XLSX и ODS сохраняют типизированные ошибки и явные пустые кэши при повторном открытии
  • Классический IXLSWorkbook.CreateReadOnlyView и XLSX IXLSXWorkbookOwner.CreateReadOnlyView создают экземпляры IXLSReadOnlyWorkbookView с общей моделью за константное время, локальными для представления активными листами, снимками сохраненных ячеек по значению, без раскрытия объектов для записи, с кэшированными результатами формул по умолчанию и опциональным текстом формул или изолированным вычислением формул; параллельные представления держат состояние рекурсии, скалярные и массивные кэши и скомпилированные формулы XLSX приватными, внешнее вычисление XLSX читает только локальные для файла кэши ссылок, упакованные ячейки остаются не материализованными, а каждое представление держит аренду на чтение, отклоняющую записи в модель до мутации
  • Начиная с 2.384.51, TXLSReadOnlyCellSnapshot.SheetName — доступное для чтения и записи свойство WideString на общем хранилище UnicodeString, что сокращает выделения памяти под имя на каждую ячейку; обычный синтаксис чтения и присваивания не меняется, но сырой адрес поля и прежняя раскладка записи больше не поддерживаются, и вызывающий код нужно перекомпилировать
  • TXLSWorkbookWorkspace принимает отзывные адаптеры классического XLS, XLSX или ODS из CreateWorkspaceWorkbook каждого движка, сохраняет полные идентичности путей или IRI, разрешает внешние листы по имени до позиции и вычисляет внешние формулы через явные живые регистрации, опциональный контролируемый вызывающим кодом загрузчик «один раз на идентичность», типизированные файловые кэши и #REF!; параллельные запросы загрузки делят один результат, типизированная диагностика раскрывает сбои и лимиты ресурсов, методы регистрации для совместимости остаются доступны на обоих фасадах книг, уничтоженные цели безопасно отключаются, а пересчет никогда не открывает файл или сетевой ресурс неявно
  • TXLSWorkbookWorkspace.BuildDependencyGraph извлекает один межкнижный граф формул из зарегистрированных моделей классического XLS, XLSX и ODS, сохраняет полные идентичности книг и листов, хранит символьные локальные и внешние определенные имена, по возможности разрешает локальные имена в их конкретные зависимости и хранит большие прямоугольные диапазоны как компактные интервалы; деревья строковых интервалов ускоряют построение ребер и поиск зависимых, а построение графа читает упакованное хранилище XLSX без материализации
  • TXLSWorkbookWorkspace.Recalculate удерживает и инкрементально помечает общий граф зависимостей, планирует ациклические узлы формул в межкнижном топологическом порядке, отклоняет настоящие сильно связанные циклы формул, не отклоняя безобидные двунаправленные ссылки между книгами, и делит локальный для прохода кэш внешних ячеек с явной диагностикой попаданий, промахов, инвалидаций и заблокированных узлов; вызовы внутри одного рабочего пространства сериализуются, удаление во время прохода возвращает статус изменившегося пространства через безопасные снимки адаптеров, уничтожение ждет активного вычисления, а неуспешные узлы остаются «грязными» для явного повторного запуска
  • CalculateAndVerify сравнивает сохраненные результаты формул со свежими не-волатильными вычислениями и сообщает диагностику по листам, ячейкам, формулам, ожидаемым и фактическим значениям, не заменяя кэш; RecalcAndVerifyEx добавляет глубокий аудит с изолированным наложением результатов графа зависимостей, типизированными категориями сбоев с ограниченными стеками вызовов, отменой по прогрессу и опциональным атомарным применением пересчитанных значений
  • Допуски глубокого аудита фильтруют отчеты о несовпадениях, не подавляя свежие промежуточные результаты: зависимые формулы используют проверенные значения, а явное применение обновляет изменившиеся кэши, даже если несовпадений не зафиксировано; к результатам двойной точности применяются и абсолютный, и относительный допуски
  • Глубокие аудиты формул классического XLS заранее резервируют ёмкость обхода и эффективно копируют подряд идущие закэшированные снимки «чистых» double, сохраняя остальные типы Variant и изолированную накладку вычисления
  • Пересчет классического формата использует лениво построенный граф зависимостей, распространяет «грязные» входы только к транзитивным зависимым, пересчитывает волатильные формулы на каждом проходе, вычисляет ациклические формулы в порядке зависимостей и применяет итерацию по сильно связанным компонентам для циклических ссылок; отключение полной точности округляет кэши формул и таблиц данных What-If до их эффективной отображаемой числовой точности до того, как их потребляют зависимые
  • Автофильтр, проверка данных списков, таблицы Excel с макетами без строки заголовков и комментариями на таблицу плюс вычисление формул со структурированными ссылками (Table[Col], диапазоны столбцов, [#Data] / [#All] / [#Headers] / [#Totals]), расширения условного форматирования (гистограмма с заливкой и границами отрицательных значений, цветовая шкала, набор значков) с уникальными для листа приоритетами при сохранении и правилами в области сводных таблиц, направляемыми в корзину расширений Excel 2010+, а также листы диаграмм
  • Текстовые поля, рисунки OfficeArt, типизированный импорт сводных таблиц на основе связей, материализация multi-value с фильтрацией и группировкой, вычисляемые поля, элементы и члены, промежуточные и общие итоги, стабильная сортировка, классические и расширенные вычисления ShowDataAs, плюс комментарии с форматированным текстом
  • Транзакционное обновление локального кэша сводной таблицы разрешает прямоугольные источники, определённые имена с областью действия листа и таблицы по их текущей геометрии, исключает физические итоги таблиц, сохраняет идентичность источника при перемещениях и переименованиях листа, бережёт существующие идентичности полей и членов при переупорядочении, удалении и повторном появлении источника, держит выборы общих представлений стабильными, обрабатывает типизированные значения ошибок и отклоняет неподдерживаемые схемы или новые unmapped члены дискретных групп до изменения кэша
  • Безопасная материализация сводной таблицы на листе вычисляет изолированный кэш, отклоняет небезопасные перекрытия, сохраняет объекты ячеек и форматирование и отслеживает точные принадлежащие значения при изменении размера, перемещении и повторном открытии XLSX
  • Типизированный выбор не-OLAP Pivot Slicer осматривает и меняет выборы импортированных общих членов, пересекает фильтры связанных представлений, сохраняет независимые ограничения на других полях и отклоняет неоднозначные или неподдерживаемые привязки до изменения данных
  • Высокоточный BIFF8 Roundtrip, сохраняющий созданные в Excel записи, точные цвета RGB и темы, пользовательские представления и метаданные общего доступа и ревизий
  • Книги, защищенные паролем через шифрование BIFF8 RC4, плюс сохранение и загрузка XLSX с Agile-шифрованием и проверенной HMAC целостностью данных поверх зашифрованного пакета, а также классические ограничения на запись (SetModifyPassword) с флагом рекомендации «только чтение», хешем пароля и именем резервирующего пользователя
  • Перегрузки AutoFit для объединенных ячеек могут назначить требуемый рост строки или столбца первому элементу, последнему элементу или распределить его равномерно по объединенному диапазону, сохраняя состояние скрытости и учитывая границы каждого элемента
  • Копирование листа между книгами (TXLSWorksheets.AddCopy), клонирующее в другую книгу значения ячеек, формулы (перекомпилированные под имена листов назначения), форматирование с точными цветами RGB / темы, объединенные ячейки, комментарии, гиперссылки, макет строк и столбцов, закрепленные области, защиту, параметры страницы, цвет ярлычка, условное форматирование, проверки данных, критерии автофильтра, таблицы, встроенные изображения, фрагменты форматированного текста (с переносом шрифтов по значению) и листы диаграмм (с перекомпилированными под назначение ссылками рядов); формулы, ссылающиеся на отсутствующие в целевой книге листы, перепозиционируются на книгу-источник как внешнюю ссылку, если у той есть файловая идентичность
  • Представления сводных таблиц с общим кэшем, локальное создание Pivot Slicer и явное удаление с учётом выбора, фиксированное обновление сгруппированных кэшей и превью метаданных нативной компактной структуры
  • Транзакционный нативный вывод сводной таблицы на лист поддерживает сгруппированные структуры и пользовательские промежуточные итоги строк; локальные вычисляемые поля SUM и принадлежащие кэшу элементы сохраняют суммы в контексте, порядок решения, поддерживаемые отображаемые вычисления и фильтрацию, а неподдерживаемые состояния отклоняются до изменения данных
  • Шкалы времени сводной таблицы и состояния данных Slicer предоставляют защищённую локальную фильтрацию по датам, жизненный цикл общих представлений и явное нативное обновление элементов без данных
  • Автоматические поставщики запросов явно обновляют поддерживаемые запросы Text, ADO, ODBC и Web, с ограниченными результатами и зарегистрированными пользовательскими поставщиками
  • Осмотр классических диаграмм декодирует поддерживаемые нативные таблицы заливок OfficeArt, открывает диаметры маркеров в пунктах и валидирует сохранённые пределы текста и аннотаций до применения типизированного состояния; сырое хранилище диаграммы сохраняется, а переносимый внешний вид классических диаграмм валидируется отдельно
  • Переносимый headless-вывод захватывает поддерживаемые прямоугольники Classic XLS или XLSX в неизменяемые снимки и рендерит PDF, SVG и PNG на Linux и macOS с явной геометрией шрифтов, rich text, смоделированными объектами рисования, изображениями в ячейках, Boolean-флажками, поддерживаемыми кэшированными диаграммами XLSX и ограниченными кэшированными диаграммами BIFF8 с заявленной вызывающим кодом раскладкой и эффективным размером легенды
  • Текстовые и статистические аргументы вычисленных массивов сохраняют зависящее от функции приведение типов и ошибки, сопоставляют ковариацию по исходным позициям и соблюдают бюджеты вычислений
  • Определённые имена в агрегатных вычислениях сохраняют приведение скаляров, массивов и ссылок, типизированные ошибки, зависимости и лимиты ресурсов

Современный фасад XLSX

Специализированный механизм OOXML на базе TXLSXWorkbook для рабочих книг Excel 2007+ (.xlsx)

  • Общие строки, стили, рисунки, свойства листов, упаковка ZIP/XML и метаданные Roundtrip, включая учитывающую поля обработку Xstring в SpreadsheetML, сохраняющую управляющие символы и литеральные токены _xHHHH_ без перезаписи синтаксиса формул
  • Параметры страницы листа сохраняют байт-в-байт точные бинарные настройки принтера через связь pageSetup и часть printerSettingsN.bin на лист, принимают нестандартные расположения исходных частей, записывают детерминированные канонические цели, глубоко копируют полезную нагрузку при копировании листов внутри книги и между книгами и сообщают об отсутствующих, не тех по типу или «висячих» связях принтера, не привязывая постороннюю бинарную часть
  • Типизированные писатели строк и столбцов для чисел, строк и variant геометрически наращивают емкость ячеек между повторными батчами, дописывают прямые батчи строк прямо в предразмеренные разреженные векторы строк, безопасно обрезаются на пределах листа, сохраняют стабильные дескрипторы при перекрытии и избегают диспетчеризации колбэков
  • Чтение и запись OpenDocument (.ods): импорт существующих электронных таблиц через Open / OpenODS, экспорт через SaveAsODS или SaveAs(xlsxOpenDocumentSpreadsheet), настройка вывода через TODSExportOptions и Roundtrip стилей, форматированного текста, изображений, диаграмм, проверок данных, условного форматирования, параметров страницы, областей печати, групп структуры, структуры листов и метаданных книги; опции экспорта сохраняют обычные политику пересчёта, отмену по прогрессу, диагностику и защиту от записи, а вывод в файл при сбое сериализации или отмене оставляет прежнее место назначения как есть
  • Правила сравнения ячеек и выражений ODS сохраняют дифференциальное оформление шрифта, сплошной или прозрачный фон и поддерживаемые числовые форматы на полных целострочных, целостолбцовых и широких целях с помощью компактных повторяющихся пустых носителей; явно очищенные атрибуты сохраняются, несвязанное базовое форматирование остаётся на каждой ячейке, а цвета темы и индексированные цвета экспортируются как уже разрешённые цвета
  • Многоформатный импорт: OpenDocument (.ods) и CSV / TSV с определением разделителей, обнаружением BOM и опциональным выводом типов значений
  • Определение по сигнатуре содержимого: DetectExcelContentFormat проверяет начальные байты файла или потока, чтобы отличить составные файлы BIFF, пакеты OOXML, пакеты OpenDocument и простой текст с разделителями независимо от расширения файла, а оба движка книг отклоняют несовпадающие контейнеры с ясным сообщением, называющим подходящий загрузчик
  • Форматированный отображаемый текст: свойство только для чтения FormattedText (на IXLSRange и TXLSXCell) пропускает значение ячейки через ее числовой формат — разделители, проценты, маски даты/времени, многосекционные маски, логические форматы — совпадая с тем, что Excel показывает в сетке
  • Мониторинг изменений файла: TXLSFileMonitor следит за книгой на диске и вызывает OnFileChanged, когда другой процесс сохраняет файл поверх; интервал опроса настраивается, события доставляются в основном потоке или в потоке наблюдения; обработчики могут остановить или уничтожить монитор либо переключить наблюдаемый файл
  • Запрос пароля: событие OnPassword классического движка XLS спрашивает у приложения пароль, когда Open встречает зашифрованную книгу без пароля или с неверным паролем, и повторяет открытие
  • Кисть форматирования: TXLSXCellFormat один раз описывает шрифт, заливку, границы, выравнивание, числовой формат и защиту, а затем штампует ячейки, диапазоны, строки, столбцы или целые листы — применяются только затронутые аспекты, а индексы пула разрешаются один раз на применение для быстрого массового форматирования
  • Единые потоковые строки: TXLSRowCursor проходит источники .xls, .xlsx, .xlsm, .ods, CSV или TSV построчно (FindFirst / FindNext), удерживая в памяти только текущую спроецированную строку или ODS-шаблон повторов, проталкивая границы строк и выбор столбцов до аллокации значений, сохраняя кэшированные результаты формул и сохраненные стилизованные пустые ячейки, отличая наличие формулы от доступности ее текста, опционально подавляя текст формул, пропуская покрытые ODF-яччейки, перескакивая напрямую между выбранными столбцами в повторяющихся ODS-диапазонах, декодируя BOM UTF-8 или UTF-16 и многострочные записи в кавычках, распознавая разделители запятая, точка с запятой, табуляция или pipe и обеспечивая поиск ValueByCol за константное время; явные состояния жизненного цикла, идемпотентная отмена, заимствованное или переданное владение потоком, проверяющие поколение zero-copy представления строк, PeakRowBufferedBytes и SheetPassesStarted делают долгие сканирования наблюдаемыми и безопасными, а TXLSForwardReader адаптирует те же бэкенды к колбэкам листов и ячеек с отсчетом от единицы, не открывая пропускаемые части листов
  • Прогресс и диагностика: книги классического XLS и XLSX предоставляют рабочие колбэки плюс колбэки начала/работы/конца с отменой, а IXLSWorkbookProgress и TXLSXWorkbook.Diagnostics раскрывают стабильные коды, серьезность, операцию, контекст листа или пакета, нативные коды возврата и детали исключений
  • Безопасные при сбоях сохранения: сбои фиксации классических листов, диаграмм, расширений стилей, VBA, управляющих потоков, хранилища и вывода распространяются к вызывающему коду, а дисковый вывод XLS, XLSX и ODS сначала пишется во временную staging-область, после чего цель атомарно заменяется
  • Замена цели в Windows терпит дескрипторы метаданных и читателей, допускающие удаление, в файловых системах с поддержкой POSIX rename, при этом существующие читатели сохраняют исходные байты; доступ на удаление, блокировки без совместного удаления и защита «только чтение» проверяются до единственной фиксации, без повторной попытки сохранения, а старые или неподдерживаемые файловые системы сохраняют унаследованный путь фиксации
  • Понятная диагностика при сохранении файлов: TXLSXWorkbook.SaveAs(FileName) и его перегрузка с явным форматом сохраняют нативную ошибку Windows при сбое замены цели, сообщают диагностический код 1005 и оставляют исходную цель нетронутой
  • Компактное хранение ячеек и стилей: ячейки XLSX живут в блоках по 256 строк со стабильными публичными дескрипторами и дружественной к кэшу сериализацией по строкам; записи строк не несут избыточного тега полезной нагрузки, а изменения значений, формул и форматированного текста избегают реклассификации индексов; импортированные стили ячеек разрешаются через один неизменяемый массив cellXf прямого индексирования; а автоматическая компакция пула стилей сбрасывает неиспользуемые шрифты, заливки, границы, числовые форматы, выравнивания и защиты перед каждым сохранением
  • Интервальные наложения стилей: форматирование строк, столбцов и прямоугольников остается компактным без материализации пустых объектов ячеек, разрешается лениво при доступе к ячейке, переживает структурные правки и проходит Roundtrip как компактные записи столбцов, строк и ячеек только со стилем
  • Построчная потоковая обычная запись: StreamingWrite (по умолчанию) записывает каждую строку листа прямо в deflate-поток пакета, поэтому пиковая память следует за самой большой одиночной строкой, а общие строки и вспомогательные XML-части передаются потоком по одной записи через единственный переиспользуемый UTF-8 сериализатор
  • Открытие только метаданных: TXLSXWorkbook.MetadataOnly разбирает свойства книги, определенные имена, имена и состояния видимости листов, стили, тему, подключения и внешние ссылки, но пропускает XML ячеек листов плюс общие строки, данные комментариев и персон, связи листов, рисунки, диаграммы, таблицы, query tables, сводные и достижимые с листов непрозрачные полезные нагрузки — для быстрого экономного по памяти обнаружения свойств и имен в больших книгах
  • Слоты внешних книг XLSX следуют порядку объявления в workbook.xml и удерживают пустые заполнители для сломанных связей, сохраняя стабильность последующих ссылок [N] в формулах при загрузке и сохранении
  • Выборочная загрузка листов: TXLSXWorkbook.SelectedSheets позволяет Open разбирать XML ячеек только для именованных листов, остальные листы сохраняют имена и видимость, но не ячейки; вызовите LoadSheet(Index), чтобы материализовать пропущенный лист по требованию из исходного архива
  • Инкрементальное копирование сжатых частей: TXLSXWorkbook.PreserveRawParts открывает один приватный валидированный исходный архив на операцию SaveAs и копирует неизмененные тему, проект VBA, подключения, внешние ссылки, изображения, диаграммы, сводные таблицы, сводные кэши и достижимые по связям непрозрачные записи с их исходными сжатыми полезными нагрузками; успешные сохранения в файл становятся следующей чистой базовой линией, а книги на потоках, измененные исходные файлы, модифицированные полезные нагрузки, неподдерживаемые методы сжатия и несовпадения сжатых размеров используют fallback транзакционной сериализации или пути отклонения
  • Сохранение расширений книги: открытие и сохранение XLSX удерживают чужие объявления пространств имен корня книги, атрибуты markup-compatibility, полные полезные нагрузки <extLst> уровня книги и их неизвестные связи, тогда как типизированные листы, имена, представления, свойства вычислений и сводные кэши остаются редактируемыми; ссылки на связи переназначаются при конфликтах сгенерированных ID
  • Slicer: Worksheet.Slicers.Add(Table, ColumnName) создает табличные Slicer (Excel 2013+) от начала до конца — включая кэш Slicer, зарезервированное определенное имя, расширение листа и drawing-якорь — с управлением позицией, подписью, количеством столбцов, стилем и высотой строки; книги с созданными в Excel Slicer (табличными или сводными) переносят их нетронутыми через открытие и сохранение, воспроизводя неизмененные части и якоря байт в байт, а сама книга остается полностью редактируемой
  • Несколько окон книги: TXLSXWorkbook.WorkbookViews раскрывает упорядоченную коллекцию с операциями добавления, вставки, удаления, перемещения и очистки, типизированным состоянием видимости и геометрии, редактируемыми неизвестными атрибутами и расширениями и переназначением workbookViewId листов; устоявшиеся свойства одиночного окна остаются совместимыми проекциями первого представления
  • Внешние определенные имена и сбои обновления: TXLSXExternalLink разбирает, хранит и проводит Roundtrip записей <definedNames> из связанных книг, а каждый TXLSXExternalSheetData отслеживает флаг RefreshError для состояния сбоя обновления без требования живого источника данных
  • Многоформатный импорт из буфера обмена: XLSPasteFromClipboardRich предпочитает буферный формат XML Spreadsheet (формулы, стили, объединения) простому тексту Unicode, с выделенными функциями определения формата, извлечения и разбора SpreadsheetML 2003
  • Нативный обмен Biff8 через буфер обмена: CopyToClipboard на обоих движках публикует собственную полезную нагрузку составного документа Excel «Biff8» рядом с текстом и HTML, а PasteFromClipboard сначала потребляет ее — значения приходят без зависящего от локали повторного разбора, относительные ссылки формул переанкориваются на цель вставки, а числовые форматы, шрифты, заливки, границы, выравнивание и объединенные ячейки проходят Roundtrip как между книгами HotXLS, так и из копий Excel
  • PasteFromClipboard в XLS и XLSX захватывает BIFF8 и резервный текст вместе, под одной блокировкой буфера обмена, сохраняя прежнюю политику повторов и используя читаемый захваченный текст без повторного открытия буфера, когда BIFF8 недоступен или не разбирается; если читаемый BIFF8 есть, он остается пригодным, даже когда его текстовый спутник получить не удалось, а недоступный только текст не вставляет ни одной ячейки
  • Сбои обязательной публикации текста и BIFF8 в буфер обмена сохраняют исходную диагностику Win32 GetLastError через всю очистку — вызывающий может посмотреть ее сразу же
  • Разметка форматированного текста: свойство ячейки TaggedText в обе стороны конвертирует между фрагментами rich-text и легковесными тегами (<b>, <i>, <u>, <s>, <sub>, <sup>, <color=#RRGGBB>, <font=Name>, <size=N>)
  • Безопасные на 64 бит ридеры буфера обмена с повтором при конкуренции, кэшированным сопоставлением целей условного форматирования и проверки данных для абсолютных, развёрнутых, целострочных, целостолбцовых и разделённых пробельными символами областей, единообразным поиском правил, удалением, условным вычислением и проверками валидации, а также бинарно-поисковым индексом гиперссылок PDF
  • Расширяемость вычислений: регистрация пользовательских функций по имени, API аудита неизвестных функций, открытие в режиме восстановления, пропускающее поврежденные части, нативный обмен Biff8 через буфер обмена и кэшированное сопоставление диапазонов проверки данных
  • PDF-изображения: картинки листов встраиваются как Flate RGB XObjects с passthrough JPEG и переиспользованием PNG-потоков (без перекодирования, альфа-канал сохраняется через soft masks), побайтово идентичные изображения встраиваются один раз, блоки keep-together и XlsxAutoPageBreaks синхронизируют пагинацию, а ZipCompressionLevel и DeterministicOutput управляют выводом сохранения
  • Конвейер вывода PDF: потоки содержимого страниц сжимаются Flate, последовательные текстовые операции делят батчированные текстовые блоки с дедупликацией выбора шрифтов и цветов, равные смежные заливки сливаются в одиночные прямоугольники, а коллинеарные сегменты границ обводятся объединенными прогонами — файлы меньше и генерация быстрее; OnProgress и способный прервать OnProgressEx сообщают состояния начала, страницы и конца, а Cancel останавливает долгие экспорты, не фиксируя частичный PDF в целевом потоке
  • Точность текста ячеек в PDF: настоящий перенос слов с вертикальным выравниванием блоков и выключенными или распределенными строками, повернутый и вертикальный стопочный текст, сжатие по размеру, переполнение в стиле Excel в пустые соседние ячейки с отсечением, выравнивание чисел вправо при общем выравнивании, отступы, rich-text фрагменты со стилем, размером, цветом, подчеркиванием, зачеркиванием, над- и подстрочностью каждого фрагмента, диагональные и двойные границы и текст поверх объединенных ячеек — всё позиционируется через откалиброванные по GDI ширины символов Helvetica
  • Точность печати PDF: стилизованные колонтитулы с кодами Excel для размера и цвета шрифта, полужирного/курсива/подчеркивания/зачеркивания и над-/подстрочности, черно-белый режим печати, печатаемые заголовки строк и столбцов, горизонтальное и вертикальное центрирование печати, индикаторы комментариев плюс страница списка комментариев в конце через PrintCommentsAtEnd, внутридокументные GoTo-ссылки для внутренних гиперссылок, предпочтение PageLayout просмотрщика с XMP-метаданными, точные как в Excel ширины столбцов MDW и встраивание TrueType-коллекций с синтезированными полужирными/курсивными начертаниями Unicode-гарнитуры
  • Диаграммы в PDF: диаграммы листов рисуются как нативные векторы — сгруппированные, накопительные и процентные накопительные столбчатые/линейчатые, линия с маркерами, область, круговая и кольцевая с процентными подписями, точечная и лепестковая — с рамками с заголовками, автомасштабируемыми осями и подписями делений, линиями сетки, легендами, подписями данных, заливками по рядам и акцентной палитрой Excel по умолчанию; диаграммы, закрепленные за последней ячейкой данных, расширяют печатную поверхность
  • Интерактивный PDF: гиперссылки листов превращаются в кликабельные аннотации-ссылки, и каждый экспортированный лист получает закладку в оглавлении документа
  • Расширяемость на уровне пакета: типизированные пользовательские свойства документа, части пользовательских XML-данных, сопутствующие SVG-изображения, подписи данных диаграмм по рядам из ячеек с индексированными кэшами и переопределением видимости точек, определяемые пользователем табличные стили с цветами по секциям и API аудита проверки данных, перечисляющий каждую нарушающую ячейку
  • Улучшения точности форматов: числовые форматы затраченного времени [h]:mm:ss и дробей # ??/?? рендерятся везде, скобки [Red] перекрашивают текст PDF, градиентные заливки ячеек проходят Roundtrip и рендерятся в HTML/PDF/просмотрщике, закрепленные области и прокрутка панелей читаются обратно, DispBlanksAs/PlotVisibleOnly — свойства диаграмм, блоки комментариев размеряются через WidthPt/HeightPt/AutoSizeFromText, а ValidateNumberFormat проверяет строки пользовательских форматов
  • Поиск с семантикой Excel: FindText / ReplaceText поддерживают подстановочные знаки (*, ?, экранирование ~), совпадение всей ячейки, учет регистра, поиск по тексту формулы, обратное сканирование, порядок обхода по столбцам, оконные FindTextIn / ReplaceTextIn, ограничивающие поиск прямоугольным диапазоном, и колбэк замены на каждое совпадение; группировка с семантикой Excel через AddSubtotals (строки с метками SUBTOTAL, общий итог, уровни структуры, разрывы страниц и режим замены), A1ToR1C1 и R1C1ToA1, конвертирующие формулы между стилями ссылок A1 и R1C1 в обе стороны, плюс WriteAutoValue для определения типов текста в стиле Excel (ISO, американские даты m/d/yyyy и европейские d.m.yyyy с опциональным временем AM/PM), агрегирование диапазонов GetRangeStatistics, нечувствительная к регистру SortRange, сохраняющая формулы с семантикой ссылок Excel (части с $ остаются, относительные ссылки переанкориваются), фрагменты HTML одной ячейки GetHtmlFromCell и SetCellFromHtml — HTML-фрагменты как rich-фрагменты
  • Фоны листов: SetBackgroundImage создает мозаичные изображения в обоих движках книг; XLSX сохраняет владение медиа пакета при копировании листов, а Classic читает и пишет типизированные фоновые записи BIFF8 с непрерывным разбиением полезной нагрузки, точным сохранением неизвестного формата, изоляцией копий и конверсией известных форматов между движками; просмотрщик книг отображает корректные фоны за незаполненными ячейками, а печать, PDF, SVG, растровые изображения, метафайлы и оба HTML-экспортера держат фоны отключенными по умолчанию и раскрывают ExportSheetBackgroundImages для явного вывода с непрерывностью фаз между страницами и переиспользованием ресурсов в рамках сессии
  • Глубина движка форматов: условные секции числового формата ([>=100]) выбирают по значению, текстовые секции (@) шаблонируют строки, TaggedText принимает <br>, <strong>/<em> и атрибутную форму <font color=...>, ConvertFormulasToValues предлагает режим «только внешние» на обоих фасадах, блоки неразрывности столбцов дополняют строковые, классические form controls Spinner/ScrollBar записываются в XLS, а автоподбор строк обрабатывает объединенные ячейки
  • Обмен через буфер обмена: PasteFromClipboard читает текст с табуляцией в ячейки с повышением типов число/дата/логическое и распознаванием формул, а CopyToClipboard на уровне диапазона публикует и табличный текст Unicode, и стилизованный HTML с формулами, объединенными ячейками, ссылками, отображаемым форматированием и сохранением встроенных разделителей
  • Редактируемый просмотрщик книг: TXLSWorkbookViewer напрямую привязывается к любому из движков книг, загружает файлы XLS, XLSX, XLSM, XLTX, XLTM или ODS, рендерит стили и условное форматирование без материализации разреженных ячеек XLSX и добавляет редактирование на месте с учетом защищенных ячеек, ввод через строку формул, автоматический пересчет, прямоугольное выделение, события ссылок формул и ограниченные undo/redo за O(1)
  • Кэши сводных таблиц классического XLS используют независимые потоки хранения с уникальными идентификаторами, ссылками на листы или именованные источники, именами листов Unicode и шифрованным чтением/записью кэша; существующие расширения кэша сохраняют свои исходные байты при записи
  • Многоразовый конструктор макета сводной таблицы: TXLSPivotDesigner раскрывает зоны доступных полей, строк, столбцов, фильтров и значений, детерминированное переупорядочивание полей, учитывающее тип агрегирование по умолчанию, явные изменения агрегирования, валидацию макета и применение результата для моделей сводных таблиц XLS и XLSX
  • Классические form controls: листы и коллекции фигур могут создавать, перечислять, редактировать, удалять и проводить Roundtrip элементов управления — кнопок, переключателей, флажков, выпадающих списков и списков — с типизированными подписями, состояниями флажков, плоским или 3D-рендерингом, привязками макросов, связанными ячейками, исходными диапазонами, видами элементов и якорями ячеек
  • Инспекция диаграмм классического XLS через GetChartModel декодирует семейство диаграммы, 3D-состояние, заголовки диаграммы и осей, легенду, оси с их основной или вторичной группой осей, имена рядов, категории, формулы значений и флаги показа подписей данных рядов с разделителями, привязку каждого ряда к основной или вторичной группе диаграммы, именованные или внешние ссылки категорий и значений, стили линии, заливки и маркеров каждого ряда с заливками цветов темы, переносимыми расширением цвета темы GelFrame OfficeArt (индекс цвета темы плюс оттенок), полные параметры 3D-сцены из потока диаграммы и связи сводных диаграмм (имя представления исходной сводной таблицы плюс флаг скрытия подписей полей через записи SXViewLink / PivotChartBits), а также встроенные объекты диаграмм, закрепленные на обычных листах через AddChartObject, вместе с линиями тренда каждого ряда (вид регрессии, порядок или период, автоматическая или фиксированная интерсепта, показ уравнения и R-квадрата, прогноз и ретропрогноз, отображаемое имя) и планками погрешностей (сторона направления, тип значения, концевые ограничители, величина)
  • Типизированные изображения колонтитулов XLSX через TXLSXWorksheet.HeaderFooterImages, покрывающие все левые, центральные и правые слоты на нечетных, четных и первых страницах с байтами изображений, форматами, заголовками, размерами в пунктах, полями в пунктах, автоматическими кодами полей картинок, копированием листов и безопасными по связям Roundtrip открытия/сохранения рядом с комментариями
  • Редактируемые эффекты изображений XLSX через TXLSXImage, включая процентные края обрезки, прозрачность, яркость, контраст, заливку растягиванием или tiling, поворот в градусах и структурное сохранение постороннего импортированного DrawingML
  • Продвинутое построение диаграмм XLSX и Roundtrip с упорядоченными группами построения — столбчатые, линейчатые, линии, круговые, области, точечные, пузырьковые, лепестковые, биржевые, поверхности и 3D, — настоящие комбинированные диаграммы с явным порядком отрисовки групп построения, парами основных и вторичных осей, типизированными осями дат и рядов, настраиваемыми 3D-видами, стилями галереи Excel, стилями текста заголовка, легенды и осей, ручными макетами области построения, заголовка, легенды и заголовков осей, разреженными кэшами рядов со строками или числами, разреженными многоуровневыми кэшами категорий с живым разрешением двумерных диапазонов и редактируемым сохранением неизвестных расширений и форматирования ChartML
  • Выборочные патчи форматирования: TXLSXRange.ApplyFormatPatch копирует только запрошенные компоненты шрифта, заливки, границ, числового формата, выравнивания или защиты, раскладывает меньшие исходные паттерны по большим целям методом tiling и не трогает значения ячеек
  • Экспорт данных master-detail: TDataToXLS.ReadDetailTables рекурсивно экспортирует активные связанные детальные наборы данных под каждой мастер-записью, а IndentDetailTables добавляет по одному столбцу отступа на каждый уровень связи, и унаследованные настройки экспорта сохраняют визуальную согласованность иерархии; события записей и значений с опережающей записью могут фильтровать записи и преобразовывать значения полей, не тревожа курсоры наборов данных
  • Создание WordArt: TXLSXWorksheet.AddWordArt создает привязанный к ячейкам текст DrawingML с настраиваемой предустановкой warp, цветом заливки текста и цветом контура, а последующие циклы открытия/сохранения сохраняют полный якорь фигуры
  • Сохранение неподдерживаемых частей пакета OOXML: пользовательские части, достижимые из неизвестных связей корня пакета, книги, листа или рисунка, сохраняют безопасные относительно коллизий идентификаторы связей, типы содержимого, дочерние связи, выбор сжатия и точные байты полезной нагрузки через Roundtrip открытия/сохранения, с opt-out и диагностикой удержанных частей на TXLSXWorkbook
  • Таблицы в стиле Excel со стилями, диапазоном и критериями фильтра, состоянием сортировки, стабильными идентификаторами столбцов, подписями и функциями строки итогов, формулами вычисляемых столбцов, формулами строки итогов, учитывающими структуру правками строк и столбцов и помощниками коллекций с Roundtrip
  • Типизированные правила игнорируемых ошибок листа через TXLSXWorksheet.IgnoredErrors, покрывающие каждую стандартную категорию ошибок, многообластные ссылки на ячейки, копирование листов, правки строк и столбцов и Roundtrip открытия/сохранения
  • Типизированное создание сценариев What-If (Scenario Manager) через TXLSXWorksheet.Scenarios, включая активные и показанные сценарии, диапазоны изменяемых ячеек, состояния блокировки и скрытости, пользовательские комментарии, входные значения и числовые форматы, копирование листов, структурные правки и Roundtrip открытия/сохранения без последующего ремонта
  • Типизированные таблицы данных What-If через TXLSXWorksheet.AddDataTable и DataTables, покрывающие семантику ввода по строке, ввода по столбцу, двух переменных, удаленных входов, порядка вычислений, копирования листов, структурных правок и SpreadsheetML Roundtrip
  • Типизированные внешние подключения к данным через TXLSXWorkbook.Connections и результаты запросов листов через TXLSXWorksheet.QueryTables, включая политику обновления, учетные данные, настройки базы данных, веба и текста, точные типизированные значения параметров, привязки таблиц и полей, структурные правки, копирование листов и безопасные для расширений OOXML Roundtrip
  • Полная политика вычислений книги через CalcMode, RefMode, настройки итераций, флаги пересчета, управление полной точностью и настройки параллельных вычислений, со значениями по умолчанию из схемы и независимым сохранением нестандартных значений, плюс опциональные memo-кэши RecalcLookupCache и RecalcAggregateCache, позволяющие повторным сканированиям XLOOKUP/XMATCH, VLOOKUP/HLOOKUP/MATCH и SUMIF/COUNTIF/AVERAGEIF, а также безусловным SUM/AVERAGE/MIN/MAX/COUNT по одному простому диапазону переиспользовать первый результат в течение прохода пересчета; включаются только когда граф зависимостей доказуемо стабилен по ссылкам, поэтому результаты никогда не расходятся
  • Политика пересчета при сохранении через RecalcBeforeSave (вручную, если «грязно», всегда) плюс инспекция состояния «грязности» RecalcNeeded и получение значения отдельной ячейки RecalcCell после полного пересчета
  • Плейсхолдеры значений отчета с fallback {{name;default}}, выражениями dbvalue/dbcount/tonumber/ref поверх зарегистрированного DataContext и изолированной сессии данных на запуск, голые ячейки {{=formula(...)}}, записываемые как живые формулы, и структурные директивы {{#imgsize}}, {{#comment}}, {{#html}}, {{#sheetvisible}}, {{#deletesheet}}
  • Типизированные ленивые пользовательские таблицы через точные ячейки {{#usertable(alias, logicalName, providerKey, name=expression)}}, с проверками синтаксиса на этапе компиляции, статическим preflight без резолверов, динамическими типизированными параметрами, требованием зарегистрированных провайдеров, диагностикой конфликтов без учета регистра, лимитами объявлений и загрузкой при первом использовании через dbvalue или dbcount; TXLSReportGenerator.DataContext и TXLSReportTemplateChecker.DataContext несут тот же реестр в генерацию и валидацию
  • Формирование данных отчета через комбинаторы: ленивый Filter, стабильный многоключевой Sort и Distinct; адаптеры FromDataSet и FromObjects привязывают открытые наборы данных и списки объектов с опубликованными свойствами как таблицы отчета; полосы RunBidirectional дают каждой мастер-строке собственные столбцы, управляемые дочерними данными; PreprocessAndRun позволяет шаблонам самостоятельно модифицироваться по данным перед финальным заполнением
  • Опции вставки из буфера обмена (только значения, вставка строк/столбцов) на обоих движках книг и диагностика OnSkippedRecord на прямом ридере, курсоре строк и forward-ридере, раскрывающая пропущенные некорректные ссылки на ячейки и прерванные сканирования листов BIFF
  • Защита общих ревизий классического XLS проходит Roundtrip через SharedRevisionProtected и SharedRevisionPasswordHash, а отчеты обрабатывают шифрование от начала до конца: зашифрованные шаблоны открываются по паролю, а RunToEncryptedFile выдает зашифрованный результат за один шаг
  • Межкнижные CopyRangeTo/CloneRangeTo переназначают стили ячеек по значению между пулами, а классические XLS CreatedDate, LastSavedDate, RevisionNumber и EditTimeMinutes проходят Roundtrip через поток OLE summary
  • Рендеринг диаграмм учитывает GapWidth, Overlap и группировку «накопительная / процентная накопительная» у группы линейчатых диаграмм, поэтому отрисованные линейчатые и столбчатые диаграммы соответствуют семантике макета модели
  • Диаграммы проходят Roundtrip форматирования chart-space (скругленные углы, цвета фона/границы/области построения) и пяти переключателей защиты диаграммы, причем рендерер использует эти цвета; Smooth на уровне рядов и цвета заливки/границ маркеров проходят Roundtrip и рендерятся как криволинейные сегменты; оси несут режим пересечения и стили делений, а AutoTitleDeleted подавляет производные заголовки
  • TXLSPDFWriter строит PDF без каких-либо электронных таблиц: явный размер страницы, многостраничный поток, прямоугольники/линии/эллипсы, измеренный текст, трансформации, отсечение и управление состоянием графики
  • AutoFit предлагает двухфазный процесс MarkSheet/ApplyMarked с инспектируемыми отложенными измерениями, границами области подгонки, IgnoreStrings, KeepHeightAutomatic, нижней границей DefaultRowHeightVisual и одновызовным FitWorkbook
  • Шрифты Unicode в PDF поддерживают политики встраивания automatic, required-subset, complete-program и map-only, автономные программы OpenType CFF, общее позиционирование GPOS/kern для измерения и рисования, колбэк OnFontEmbed до разрешения и рекурсивно кэшируемый резолвер семейства/стиля OnGetFontDirectories; вывод PDF/A по-прежнему требует встроенных программ шрифтов
  • Вспомогательные методы коллекций для поиска, удаления и изменения порядка листов, таблиц, диаграмм, изображений, объединенных диапазонов и внешних ссылок по имени или позиции
  • Создание диаграммы одним вызовом из диапазона данных: AddChartFromRange и шорткаты AddColumnChart / AddBarChart / AddLineChart / AddPieChart / AddAreaChart автоматически выводят ряды и категории из блока данных, как вставка диаграммы из выделения в Excel
  • Вставка и удаление строк и столбцов, которые корректируют формулы, столбцы таблиц и их метаданные фильтра или сортировки, делают недействительными структурированные ссылки удаленных столбцов таблиц у потребителей формул, разделяют условное форматирование по значениям и выражениям ячеек плюс проверки данных, когда редактируемые области требуют разных якорей формул, сохраняют агрегирующие домены условного форматирования нетронутыми и автоматически перемещают определенные имена, гиперссылки, ряды диаграмм, включая размеры пузырьков, и якоря изображений, диаграмм, текстовых полей и WordArt
  • Вычисление формул на базе классического XLS-вычислителя с глобальными для процесса и локальными для книги реестрами пользовательских функций, семантикой локальных для книги переопределений, безопасным при параллелизме вызовом обработчиков без блокировок, транслирующими массивными операторами и ошибками по ячейкам, полными многопеременными матрицами LINEST / LOGEST, структурированными прогнозами TREND / GROWTH, покрытием функций для текста, дат, рабочих дней, инженерных задач/перевода систем счисления, побитовых операций, статистики, агрегирования и математики, инспекцией ISFORMULA с сохранением ссылок без пересчета цели, логарифмическим бинарным XMATCH / XLOOKUP, обнаружением опциональных аргументов ISOMITTED, конверсией массивов ARRAYTOTEXT / VALUETOTEXT, валидированными расчетами XIRR / XNPV, сроками и ставками роста инвестиций PDURATION / RRI, амортизацией VDB с дробными периодами и колбэками пользовательских функций OnUserFunction; AnalyzeFormulaIssues предоставляет структурированный preflight для отсутствующих функций, внешних ссылок и точных компонентов циклических зависимостей
  • Структурированные ссылки в форме текущей строки (Table[@Col]) вычисляются относительно собственной строки ячейки с формулой при последовательном и параллельном пересчете
  • Анализ зависимостей раскрывает именованные формулами имена с областью действия и вложенные, включая многообластные ссылки, и использует защиту от циклов только когда статическое разрешение зависимостей невозможно
  • Общие формулы, созданные в Excel, открываются с раскрытием каждого последователя в его корректное относительное к ячейке выражение на путях полной книги, потокового прямого ридера и курсора строк, а якоря и последователи CSE-массивов переживают безопасные структурные правки целых массивов, копии полных диапазонов, дублирование листов и копии листов между книгами
  • Динамические массивы можно создавать через TXLSXRange.SetDynamicArrayFormula, они удерживают диапазоны формул и метаданные XLDAPR через циклы открытия и сохранения, делят одну дедуплицированную запись метаданных между корнями, переназначают эту запись при копировании между книгами и удаляют ее после очистки последнего корня
  • Композиция вычисленных массивов включает типизированные TRANSPOSE, вычисляемое матричное умножение, определители и обращение, отрицательные и векторные селекторы для CHOOSECOLS / CHOOSEROWS, вычисляемые векторы поиска и запросы-массивы для XLOOKUP / XMATCH / MATCH, а также операции stack и reshape с лимитами шагов вычисления и памяти массивов
  • Создание form controls на листах XLSX (AddFormButton / AddFormCheckBox / AddFormRadioButton / AddFormComboBox / AddFormListBox) с фигурами VML, частями ctrlProps и дословным Roundtrip файлов с элементами управления
  • Живое межкнижное вычисление XLSX через сохраняющий пути ExternalWorkspace и совместимый фасад RegisterExternalWorkbook: полные цели связей и расширения остаются различимыми, неоднозначные псевдонимы падают явно, уничтожение цели безопасно отзывает живой адаптер, а локальные для файла типизированные кэши остаются fallback без неявного доступа к файлам или сети
  • Сравнение книг через TXLSXWorkbookCompare с отчетом о различиях листов, ячеек, формул и объединений в виде структурированного списка или отчета «одна строка на различие»
  • Генерация кода из книги через TXLSCodeGen (диалекты Delphi и C++Builder) и валидация импорта правил столбцов через TXLSImportCheck с аннотированием красным шрифтом и комментариями плюс компакцией «только нарушения»
  • Нераспознанные записи листов XLS проходят Roundtrip дословно — зависящие от вендора или более новых спецификаций записи захватываются при чтении и воспроизводятся при сохранении
  • Фигуры с предустановленной геометрией через AddPresetShape — любой токен OOXML ST_ShapeType проходит через рисунок дословно и переживает Roundtrip
  • Обработка шаблонов: ApplyTemplate подставляет плейсхолдеры {{key}} по всему листу, а FillTemplateBand клонирует блоки шаблона на каждую запись с трансляцией формул, зависимым условным форматированием, проверками данных, ссылками, комментариями, изображениями, диаграммами, клонированием объединений и построчными условиями #skip; CloneRangeTo раскрывает тот же учитывающий зависимости путь копирования с выбираемыми полезными нагрузками; TXLSCompiledReportTemplate один раз компилирует расположения плейсхолдеров и текстовые фрагменты для повторных прогонов по ячейкам, форматированному тексту, комментариям, гиперссылкам, тексту рисунков, колонтитулам, именам листов, определенным именам и свойствам документа без повторного сканирования книги, поддерживает адресную preflight-диагностику, строгую валидацию до мутации и диагностические листы; TXLSCompiledReportRunner добавляет прогресс на уровне целей, отмену, детерминированные счетчики применений, переиспользуемое состояние завершения или сбоя, парные события жизненного цикла книги и листа, восстанавливаемые снимки проблем и атомарный вывод в поток, файл или зашифрованный файл; TXLSReportGenerator добавляет события чтения шаблона, источники из книги, файла, потока и зашифрованного файла плюс модификацию на месте или атомарным клоном; IXLSReportTable, IXLSReportCursor, ленивые провайдеры и резолверы на прогон и индексы связей по составным ключам поставляют переиспользуемые виртуальные или хранящиеся в памяти источники данных, не заставляя нессылаемые таблицы загружаться, а TXLSReportTableFactory компонует представления top, проекций, подсчета, минимумов, агрегатов, объединений, разделений и hash-join без копирования полных промежуточных полезных нагрузок строк; запускаемые галереи Delphi и C++Builder демонстрируют тот же контекст данных, скомпилированный раннер, диагностический лист, LastResult и путь RunToFile
  • Именованные структурные полосы отчета: TXLSCompiledReportBand разрешает точное прямоугольное определенное имя с областью действия книги или листа и разворачивает его вниз, вправо или по обеим осям из однопроходных ограниченных снимков строк и столбцов, сохраняя типы значений, формулы со смешанными ссылками, объединения, правила, проверки данных, гиперссылки, комментарии, рисунки и явные метаданные макета строк или столбцов, отклоняя неподдерживаемые частичные структуры до мутации
  • Повторные копии диапазонов и полос отчета повторно используют поиск по суффиксам определенных имен с областью действия, сохраняя именование по первому свободному варианту после удаления, переименования или смены области действия
  • Расширяемые полосы отчета по таблицам Excel через TXLSCompiledTableReportBand используют один ограниченный снимок курсора, чтобы развернуть одну строку шаблона данных, сохраняя заголовки, итоги, диапазоны таблицы и автофильтра, состояние фильтра и сортировки, метаданные столбцов, формулы вычисляемых столбцов и итогов, стили, структурированные ссылки и зависимые объекты листа; представимые пустые результаты удаляют строку шаблона данных, а таблицы на запросах и небезопасные макеты отклоняются до структурных записей
  • Полосы отчета по диапазонам и таблицам Excel делят ErrorMode, StrictDataAccess, RuntimeLimits и неизменяемую диагностику LastResult; WriteAndContinue сохраняет явно восстанавливаемый сбой строки как литеральный текст с ее входной строкой и фактическим выходным адресом, затем продолжает оставшиеся цели и строки, а фатальные структурные и ресурсные сбои откатывают развертывание
  • Сканирование ячеек и строк с колбэками «сырого» значения или отображаемого текста, поиск и замена в шаблонах, а также массовая запись
  • Централизованное управление временными файлами (зарегистрированные temp-файлы выметаются при финализации), опциональная проверка расшифровки после записи VerifyEncryptedSave и константы сеточных лимитов для каждого формата с событием OnExportLimit у экспортера наборов данных
  • Помощники проверки данных со списковыми выпадающими списками в один вызов из массива строк, общими типизированными режимами IME для Classic XLS и XLSX, табличными формулами, сохраняющими независимые атрибуты массивов, расширениями условного форматирования, настраиваемым экспортом в HTML с централизованными CSS-классами стилей, а также сохранением и загрузкой с шифрованием AES — ECMA-376 Standard Encryption (AES-128) с ускорением AES-NI плюс чтение используемого Excel по умолчанию Agile Encryption (деривация ключей SHA-512, AES-128/192/256)
  • HTML-экспортеры Classic и XLSX используют принадлежащие операции снимки геометрии xlsrgbHtml, чтобы конвертировать ширины символов через метрики максимальной ширины цифры Normal-шрифта в фиксированные длины CSS, переиспользуют один ограниченный кэш на многолистовую операцию, раскрывают активный снимок для диагностики и сохраняют хранимые размеры листов
  • Подготовленное вычисление условного форматирования XLSX со слоением приоритетов и StopIfTrue, относительными формулами, общей многообластной статистикой, правилами Top/Bottom и среднего, дублирующимися и уникальными значениями, относительными периодами дат, учитывающими тему дифференциальными стилями, цветовыми шкалами, направленными гистограммами и всеми встроенными семействами наборов значков
  • Толерантное открытие XLSX: префиксы пространств имен нормализуются при разборе, поэтому листы, диаграммы, рисунки и свойства документа, привязанные к неканоническим или строгим пространствам имен ISO 29500, загружаются как обычные файлы, а листы, чьи строки или ячейки пропускают атрибуты позиции, выводят каждую ячейку после ее предшественницы в порядке сканирования
  • Строгий вывод Open XML через StrictOOXML: весь пакет XLSX — листы, общие строки, стили, тема, рисунки, диаграммы, комментарии, свойства документа и сохраненные части — записывается в строгом соответствии ISO/IEC 29500 со словарями purl.oclc.org, а строгие типы связей разрешаются при открытии так же, как transitional-типы
  • Открытие полной книги XLSX передает ZIP-записи листов потоком напрямую в локальные для воркеров inflater'ы и XML-ридеры, не удерживая staging-копий распакованного XML листов и ограничивая переходную память ввода листов активными воркерами разбора
  • Потоковый прямой ридер (TXLSDirectReader), сканирующий .xlsx / .xlsm поячеечно с событиями на ячейку и на лист и почти константным потреблением памяти для очень больших книг, сообщая значение, тип, текст формулы и индекс стиля каждой ячейки с опциональным определением дат, ранним прерыванием, распространяющимся в ZIP-ввод и декомпрессию, pushdown диапазонов строк и проекцией столбцов за константное время до декодирования значений; опциональные события макета раскрывают размеры листа, размеры по умолчанию, диапазоны столбцов, метаданные строк, закрепленные или разделенные панели и объединенные диапазоны до зависимых ячеек; ограниченный параллельный разбор передает локальные для воркеров inflater'ы листов в независимо бюджетируемые очереди «производитель-потребитель», сохраняя порядок колбэков на вызывающем потоке; сохранение rich-строк раскрывает форматированные фрагменты, фонетические диапазоны и фонетические свойства, а ограниченное хранилище общих строк держит малые таблицы в памяти, перенося большие таблицы и rich-полезные нагрузки в индексированное временное хранилище с удалением при закрытии
  • Потоковый прямой райтер (TXLSDirectWriter), создающий книги .xlsx поячеечно и записывающий каждый лист прямо в пакет по мере поступления строк, так что очень большие файлы генерируются с почти константным потреблением памяти; покрывает встроенные или дедуплицированные общие строки, rich-строки с форматированными и фонетическими фрагментами, числа, логические значения, даты, формулы, переиспользуемые стили ячеек на уровне пакета с клонированными дескрипторами, дедуплицированные шрифты/заливки/границы/числовые форматы, выделение шрифта, подчеркивание, контур и тень, 19 шаблонов заливки, 14 стилей границ на пяти сторонах, горизонтальное и вертикальное выравнивание, перенос, сжатие, отступы, поворот, префиксы кавычек, защиту locked/hidden, встроенные и пользовательские числовые форматы, ширины столбцов, высоты строк, скрытые строки и столбцы, объединенные диапазоны, диапазоны автофильтра листа и таблицы с фильтрами по значению, пустому, группе дат, пользовательским, динамическим, top/bottom и состояниями сортировки, защиту листа с тонкозернистыми разрешениями, метаданные паролей старого или нового типа и редактируемые защищенные диапазоны, защиту структуры книги и окна, закрепленные области, цвета ярлычков листов, представления листов справа налево, переключатели отображения представления листа, поля страницы, текст колонтитулов, опции печати, параметры страницы, настройки вписывания в страницу, ручные разрывы страниц, гиперссылки листов через несколько листов, определенные имена книги и уровня листа, сгенерированные определенные диапазоны, области печати, повторяемые строки или столбцы заголовков, проверки данных с подсказками и предупреждениями об ошибках, условное форматирование с восемью операторами значений ячеек, выражениями, сопоставлением текста, ранжированием top/bottom, средним, дубликатами/уникальными, предикатами пустых/ошибок, гистограммами, двух- и трехцветными шкалами, 17 семействами наборов значков, дифференциальными стилями шрифта/заливки, управлением приоритетами и stop-if-true, части таблиц Excel с именами столбцов, флагами строк заголовка/итогов, комментариями таблицы, подписями столбцов и функциями строки итогов, формулами вычисляемых столбцов, формулами строки итогов и опциями отображения табличного стиля, плюс боковые каналы текущего листа для классических комментариев, потоковых источников изображений, якорного DrawingML, типизированных диаграмм на формулах и предоставляемого вызывающим кодом ChartML
  • Опциональное продолжение с переполнением (AutoSplitRows) разбивает экспорт по листам <name>_2, когда приходит строка за пределом листа, а FillTableCalculatedColumn проталкивает формулу столбца таблицы в каждую строку данных так, как это делает Excel при создании
  • Патчинг листа на месте через BeginPatch: потоковый райтер перезаписывает один лист существующего пакета, пока каждая нетронутая часть копируется со своими сжатыми байтами дословно — замените лист данных или добавьте новый без пересоздания шаблона; при неудачной инициализации и финализации освобождаются дескрипторы источников, ответственность за временные регистрации источников остаётся на вызывающем коде, а райтер можно использовать повторно после неудачной инициализации
  • Объекты камеры через AddCamera: живые снимки-изображения, привязанные к диапазону ячеек, в соответствии с документированным расширением рисунка camera-tool; привязка проходит Roundtrip через сохранение и повторное открытие
  • Вложения PDF через AddAttachment — файлы едут в экспорте как записи /EmbeddedFiles с деревом имен, а IXLSPDFAttachmentSource может поставлять каждую полезную нагрузку лениво, один раз на сохранение, через ограниченный spool; финальная сборка передает объекты в целевой поток последовательно, поэтому полезные нагрузки вложений копируются фиксированными кусками с косвенным объектом длины, а пиковая память остается плоской
  • Явный вывод PDF/A-1a, 1b, 2a, 2b, 3a и 3b через PDFAProfile, включая специфичные для профиля идентификацию, управление цветом, тегирование, вложения и атомарные правила валидации; UsePDFA остается переключателем совместимости для PDF/A-2b
  • Экспорт PDF работает в классическом макете или в опциональном макете PDF 1.5 со сжатыми потоками объектов и бинарным потоком перекрестных ссылок (UseXRefStream) для меньших файлов
  • Экспорт PDF поддерживает переиспользуемые колбэки прогресса начала, страницы и конца с отменой и без фиксации частичного потока, плюс опциональные позиционированные по ячейкам аннотации комментариев Unicode, которые могут сосуществовать со страницами комментариев в конце
  • Градиенты и прозрачность PDF используют нативные осевые или радиальные затенения со сшитыми многостоповыми функциями, альфа-масками на стоп, шаблонами заливки ячеек, тенями изображений, отсечением на уровне страницы и кэшами ресурсов на уровне документа; выбранные профили PDF/A применяют свои графические ограничения до фиксации вывода
  • Учитывающие стиль цепочки font fallback PDF через SetFontFallbackChain, AddFontFallback и ClearFontFallbackChains выбирают встроенные гарнитуры по исходному семейству, уровню стиля и покрытию глифов, кэшируют загруженные гарнитуры и выборки, сохраняют supplementary-скаляры и межфрагментные кластеры графем, различают Unicode-последовательности с общими глифами через CID-отображения и атомарно отклоняют вывод PDF/A, а не используют невстроенный шрифт
  • TXLSPageImageExporter строит пагинацию один раз и инкрементально экспортирует выбранные страницы XLS или XLSX в PNG или JPEG с настраиваемыми DPI, масштабом, качеством, прогрессом, отменой и временем жизни битмапа на страницу; ExportRange записывает один плотный прямоугольник ячеек, а события до или после отрисовки раскрывают фактический холст страницы через контекст только для чтения с пиксельными границами, размером страницы, разрешением, масштабом, номерами страниц и исходным листом, срабатывая ровно один раз на отрисованный кадр, включая кадры многостраничного TIFF
  • TXLSCellImageExporter измеряет, рендерит и сохраняет любой прямоугольник ячеек классического формата или XLSX как одно компактное изображение без артефактов пагинации, с настраиваемыми разрешением, масштабом, форматом и качеством JPEG, прозрачным PNG или цветными фонами, независимыми переключателями объектов, линий сетки и границ ячеек, проверенными до аллокации бюджетами пикселей и байтов и сохранением в файл через атомарную замену в той же папке, которая при сбое никогда не повреждает существующую цель
  • Экспорт ODS транслирует поддерживаемые скалярные формулы, квалифицированные ссылки A1, пользовательскую Boolean-валидацию, границы со значениями формул и источники списков в OpenFormula; неподдерживаемые диалекты формул ячеек сохраняют fallback совместимости, а неподдерживаемые определения и ссылки проверок опускаются вместе
  • Повторяющиеся высоты строк ODS и стили пустых ячеек используют компактные диапазоны; вывод ODS удерживает высоты строк и повторяющиеся стилизованные хвосты, а одиночные правки строк, очистка, копирование листов, сдвиги строк, tiling и экспорт XLSX сохраняют эффективные высоты
  • Поставка строк в режиме pull (OnNeedRow + RunRows) управляет потоковым райтером из конвейера данных по одной строке за раз
  • Листы справа налево зеркалятся в экспорте PDF и переключаются через dir="rtl" в HTML, замыкая Roundtrip флага отображения
  • Режим нулевого отображения листа скрывает фактический числовой ноль, включая результаты формул, значения валют и ноль базы дат, во всех просмотрщиках и визуальных экспортах до форматирования чисел или измерения текста; режим отображения формул имеет приоритет, визуал условного форматирования и гиперссылки остаются активными, а сохраненные значения, публичный форматированный текст, вывод CSV и ODS сохраняют свои существующие контракты
  • Опциональный потоковый режим отслеживания ширин (TrackColumnWidths) держит лист в памяти, чтобы готовый файл нес подсказку <dimension> используемого диапазона и ширины столбцов, подогнанные под самое длинное значение, увиденное в каждом столбце, аппроксимируя автоподбор для данных, известных только пока они текут потоком
  • Безопасные по ссылкам структурные правки строк и столбцов XLSX, обновляющие формулы, определенные имена, правила, ссылки, рисунки, настройки печати, защищенные диапазоны, якоря классических комментариев и обсуждений, спарклайны, типизированные источники и представления сводных таблиц и распознаваемые сохраненные ссылки расширений в одной охраняемой транзакции, с упорядоченным API участников для метаданных приложения
  • Компактное XML-дерево произвольного доступа (TSimpleDomReader), строящееся из того же pull-ридера за один проход для запросов метаданных книги, связей, тем и других частей пакета по пути QName или локального имени с учетом регистра
  • Пошаговое вычисление формул через TXLSFormulaTracer с точными переходами стека операндов, плюс интерактивная диагностика через TXLSFormulaDebugger, раскрывающий разобранные узлы, значения операндов, порядок вычисления, зависимости ячеек и диапазонов, ленивые выборы ветвей, пропущенные выражения и источники распространенных ошибок
Версия 2.384.120

Полный набор возможностей книг, отчетности и рендеринга

Текущий выпуск расширяет поддерживаемые API книг, отчетности и рендеринга ограниченными путями выполнения и явными правилами безопасности формата

Форматы книг и вычисления

  • Редактируемые XML-карты и привязки схемы для отдельных ячеек через TXLSXXmlMaps и TXLSXXmlCellBindings, включая двунаправленное преобразование связей и проверку перед сохранением
  • Упорядоченное состояние книги с несколькими окнами через TXLSXWorkbookViews, включая активные вкладки, геометрию, видимость, флаги отображения, расширения и безопасное переназначение индексов листов
  • Многообластные выделения и независимые активные ячейки для каждой панели в XLS и XLSX, со структурным переназначением и атомарным отклонением недопустимых диапазонов
  • Токены формул без потерь во владении вызывающего кода через TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText и SetFormulaTokens
  • Заморозка формул в классическом XLS классифицирует скомпилированные ссылки BIFF без декомпиляции текста формул, в режиме OnlyExternal конвертирует только подтвержденные ссылки на внешние книги, сохраняет сомнительные формулы и атомарно замораживает группы массивов, не трогая строковые литеральные результаты
  • Формулы внешних книг в XLSX используют один лексер числовых слотов, учитывающий грамматику, для строгого преобразования, диагностики, пересчета, копирования между книгами и генерируемых сохранений; совместимость имен файлов нормализуется только когда зарегистрированной цели соответствует ровно одна
  • TXLSXExternalLink раскрывает идентификаторы связей источника, слоты с отсчетом от единицы и виды ссылок — на книгу, DDE, OLE или неразрешенные, — а изменения цели или списка листов делают скомпилированные внешние привязки недействительными через обновление ревизии за константное время
  • ConvertExternalDefinedNamesToRefErrors атомарно заменяет подтвержденные определения внешних книг на нативные #REF! в классическом XLS и XLSX, сохраняя идентичность имен, область действия, видимость, комментарии, метаданные макросов и встроенных имен, неизвестные атрибуты XLSX, обычные формулы ячеек и части внешних ссылок
  • Стабильная сортировка по строкам или столбцам с TXLSSortFormulaMode, горизонтальными ключами, пользовательскими компараторами и выбором между сохранением логических зависимостей и физическим перемещением формул
  • Редактируемые шрифты BIFF2–BIFF4, числовые форматы, стили XF и формулы, конвертируемые при загрузке в текущие модели книги и вычислений
  • Единый колбэк-фасад TXLSForwardReader для XLS, XLSX, CSV и TSV с проекцией на уровне бэкенда, границами строк, состоянием наличия формул, опциональным подавлением текста формул, определением формата и отменой
  • Типизированные пользовательские представления для панелей, выделений, фильтров, параметров страницы и разрывов страниц, при этом неизвестные записи BIFF сохраняют исходные полезные нагрузки
  • Типизированные свойства OLAP, селекторы веб-таблиц, поля фиксированной ширины и параметры подключений с сохранением содержимого расширений
  • Диагностика AnalyzeFormulaIssues для отсутствующих функций, ссылок на внешние книги и точных компонентов циклических зависимостей
  • Потокобезопасные глобальные и локальные для книги реестры UDF с локальным переопределением, поиском в среднем за O(1) и вызовом обработчиков вне блокировок
  • XLSBidiVisualOrder для смешанного арабского или иврита, латиницы, цифр, комбинируемых знаков и зеркальной пунктуации без изменения логического текста ячеек
  • Стратегии автоподбора для объединенных ячеек, назначающие увеличение первому или последнему элементу либо распределяющие его по всему объединению, для XLS и XLSX
  • Типизированное сохранение макролистов Excel 4 плюс предназначенные только для инспекции результаты ScanMacroCommands с адресами листов
  • Поддержка вычислений для ISOMITTED, ARRAYTOTEXT, VALUETOTEXT, PDURATION и RRI с совместимым с Excel хранением и поведением ошибок
  • Групповые итоги на листах через TXLSXWorksheet.Subtotal, включая вставляемые формулы, настраиваемый общий итог, унаследованное видимое форматирование и иерархию структуры
  • Инспекция эффективного стиля без материализации через GetCellVisibleFormat, плюс проверка на уровне кандидатов и атомарная фиксация через CheckDataValidation
  • Открытие классического XLS в режиме только метаданных и с выбранными листами использует смещения BOUNDSHEET, ограниченное хранилище переполнения SST и единый контракт прямого чтения, общий с XLSX, CSV и TSV
  • Динамические массивы передаются потоком напрямую в скалярные агрегаты, повторные поиски переиспользуют типизированные инкрементальные кэши диапазонов, а неизменяемые токены формул делят объекты без состояния между компиляциями
  • Нативная локальная материализация сводных таблиц поддерживает компактные, табличные и структурные сетки отчётов, повторяющиеся подписи, позиции промежуточных итогов по умолчанию и несколько осей мер с кэшированными ячейками и wire-метаданными, проверенными по открытию в Excel и явному обновлению
  • Нативные отображаемые вычисления сводных таблиц включают сравнения с базовыми элементами, накопительные итоги, проценты по строкам и столбцам, родительские проценты, накопительные проценты и плотные ранги с нативным кэшированным выводом и метаданными обновления
  • REGEXTEST, REGEXEXTRACT и REGEXREPLACE используют встроенный бэкенд UTF-16 с общими бюджетами формул; GROUPBY и PIVOTBY поддерживают callback с областью действия, несколько мер, фильтры, сортировку, иерархические итоги и относительные проценты
  • Очистка диапазона и вставка Unicode-текста используют одну ограниченную транзакцию отмены или повтора с проверками защиты, разреженными снимками содержимого и восстановленными метаданными современных ячеек
  • Типизированные локальные изображения PNG/JPEG в ячейке и разреженные форматы Checkbox ячеек, строк и столбцов сохраняют метаданные доступности, приоритет, стили, владение содержимым и структурные правки через круговые преобразования XLSX
  • Расширенное чтение и запись XLSB сохраняет поддерживаемые формулы и кэши, имена, объединения, гиперссылки, панели, таблицы и фильтры с явным preflight неподдерживаемых функций
  • Нативные API книг Linux x64 и macOS ARM64 загружают, редактируют, вычисляют и сохраняют поддерживаемые файлы XLSX, XLSB и ODS, используя реальные платформенные службы
  • Нативные классические книги BIFF8 поддерживают редактирование, вычисление, крупные вложенные составные контейнеры, свойства документа и стандартный вывод RC4 или 128-бит CryptoAPI на Linux x64 и macOS ARM64
  • Нативный вывод сводных таблиц поддерживает числовую, датную и ручную группировку и одиннадцать пользовательских функций промежуточных итогов в поддерживаемых структурах отчётов
  • Сравнение книг сохраняет строгие типы значений и точные большие целые, конечные числовые допуски, опциональные кэши формул, эффективные стили, геометрию, rich text и ограниченные поддерживаемые определения функций, включая локальное состояние Pivot, Slicer и Timeline, при этом сберегая разреженное хранилище и предыдущие результаты при сбое
  • ODS сохраняет обычный текст примечаний и авторов, представимые фильтры значений и пользовательские фильтры и эквивалентную защиту без пароля, с точными отчётами о потерях конвертации; отменённые сохранения в поток сохраняют место назначения, а сохранения с ненулевой позицией удерживают валидные смещения ZIP
  • FORMULATEXT читает сохранённые выражения, не вычисляя цель, а GETPIVOTDATA запрашивает поддерживаемые видимые агрегаты из ограниченных отсоединённых локальных кэшей в XLS, XLSX и изолированных вычислителях; нативные inline-значения кэша XLS и ссылки на фильтры отчётов сохраняют свои идентичности, а неполные или неподдерживаемые кэши дают явные ошибки
  • INDEX, SORT и UNIQUE принимают вычисленные массивы и константы, поэтому фильтрация, сортировка, дедупликация и извлечение строк или столбцов компонуются напрямую с автоматическим изменением размера spill в XLSX и вычислением фиксированных диапазонов CSE; INDEX принимает массивы селекторов строк, столбцов и областей с трансляцией с учётом ориентации и типизированными ошибками по ячейкам, принимает область 1 для вычисленного источника и сохраняет поддерживаемую скалярную идентичность многообластных ссылок через определённые имена, LET и скалярный CHOOSE; примеры и границы см. в выборе области INDEX
  • Именованные стили сохраняют связанные части форматирования и локальные переопределения, при этом каждый встроенный табличный стиль — светлый, средний и темный — разрешается в эффективный формат, который используют пути редактирования и экспорта
  • Единый фасад рисования группирует и разгруппировывает объекты DrawingML и меняет порядок смешанных изображений, диаграмм, текстовых полей, сохраненных якорей и вложенных групп без потери связей
  • TXLSFormatSnapshot захватывает полное классическое форматирование независимо от исходной книги, а IXLSRange.ApplyFormat применяет его к ячейкам, строкам или столбцам
  • Классические и XLSX книги предоставляют одинаковые потоковые SaveSemanticSnapshot и инкрементальный SHA-256 ComputeSemanticHash с профилями Content и SecurityComplete плюс явные опции состояния просмотра, изменяемых метаданных и кэша формул
  • Новые листы XLSX сохраняют совместимую типизированную массовую запись по строкам в упакованном RLE-хранилище, отвечают на запросы существования и статистики хранения без материализации и единожды разворачиваются в стабильные объекты ячеек только когда объектный доступ этого требует
  • Хранилища ячеек и коллекции листов классического XLS и XLSX раскрывают независимые структурные поколения, поэтому долгоживущие читатели могут обнаруживать изменения топологии, не считая правки значений, формул, форматирования, переименований или активации структурной инвалидацией
  • Дескрипторы ячеек хранят состояние стиля по умолчанию без аллокаций, а одинаковые пустые ячейки с одним стилем делят полезную нагрузку со подсчетом ссылок и изоляцией copy-on-write для последующих локальных правок, с измеримой экономией байтов в статистике хранения

Скомпилированная отчетность и композиция данных

  • TXLSCompiledReportTemplate один раз компилирует плейсхолдеры для ячеек, форматированного текста, комментариев, обсуждений, гиперссылок, рисунков, диаграмм, колонтитулов, имен листов, определенных имен и свойств документа
  • TXLSCompiledReportBand разворачивает строковые, столбцовые и кросс-табличные полосы на основе определенных имен из ограниченных однопроходных снимков данных, сохраняя формулы, зависимые объекты и явные метаданные осей
  • TXLSCompiledTableReportBand разворачивает шаблоны таблиц Excel из одной строки, сохраняя заголовки, итоги, фильтры, сортировку, формулы, стили, структурированные ссылки и безопасные результаты при полном отсутствии строк
  • IXLSReportTable, IXLSReportCursor, IXLSReportRandomAccessTable и TXLSReportMemoryTable предоставляют единый контракт для виртуальных и хранящихся в памяти источников
  • TXLSReportRelationIndex единожды строит точные типизированные корзины составных ключей для поиска master-detail в среднем за O(1) без копирования полезной нагрузки строк
  • IXLSReportTableProvider и TXLSReportDataContext регистрируют явные и ленивые таблицы, а BeginRun создает изолированную IXLSReportDataSession с хеш-поиском без учета регистра, негативным кэшированием, детерминированным кэшированием ошибок провайдеров и немедленным обнаружением рекурсии по одному псевдониму; скомпилированные шаблоны, раннеры, полосы диапазонов и полосы таблиц Excel автоматически используют одну сессию на логический запуск, оба прохода PreprocessAndRun делят один снимок, параллельные запуски остаются изолированными, а каждый путь — успех, отмена или сбой — освобождает свой снимок перед возвратом
  • TXLSReportDataRequest и IXLSReportDataResolver добавляют именованные или пользовательские запросы с упорядоченными типизированными параметрами, метаданными источника, управлением запуском только для чтения и явными результатами: необработано, разрешено, не найдено или ошибка данных; резолверы регистрируются по ключу провайдера без учета регистра для диспетчеризации за O(1), устаревшие провайдеры остаются совместимыми через адаптер, явные таблицы сохраняют приоритет, а запуск отклоняет конфликтующие отпечатки для одного псевдонима до второго вызова резолвера
  • TXLSReportDataLimits ограничивает кэшируемые псевдонимы, именованные и устаревшие провайдеры, схемы таблиц, имена, параметры, строки и сообщения об ошибках; некорректные координаты источника, управляющие символы, дубликаты имен параметров, неподдерживаемые Variant-контейнеры, недопустимые комбинации результатов, рекурсия и отмена посреди разрешения завершаются ошибкой до фиксации цели, при этом отмена удаляет незавершенную запись кэша для чистого повторного запуска
  • TXLSReportTableFactory поставляет ленивые курсоры top, проекции, объединения и разделения, а также хеш-соединения с подсчетом строк, минимумом, агрегатами и сохранением дубликатов
  • TXLSReportQueryProvider раскрывает шаблонам только зарегистрированные определения запросов только для чтения и передает хост-исполнителю типизированные параметры с ограниченными таймаутами
  • TXLSCompiledSheetReportBand и TXLSCompiledOverflowReportBand создают листы на запись с учетом зависимостей и ограниченные листы продолжения из курсора прямого доступа
  • TXLSReportIncludeLibrary разрешает рекурсивные именованные включения, детерминированно сообщает о циклах и замораживается в неизменяемую переиспользуемую библиотеку
  • Условия, поиск, регулярные выражения и динамические формулы скомпилированных отчетов переиспользуют разобранные узлы выражений и разрешенные индексы столбцов
  • TXLSReportDynamicFormat и TXLSReportFormatEvent применяют числовые форматы, высоты строк и ширины столбцов с учетом записей с гранулярностью скомпилированной цели
  • IXLSReportImageDataProviderV2 и TXLSReportImageBinder разрешают типизированные цели изображений из ограниченных байтов или принадлежащих потоков со стабильным контекстом листа, полосы, таблицы, логической строки, строки курсора, текущей строки только для чтения, якоря, трансформации, отмены и лимита размера; раннеры, генераторы, полосы диапазонов и полосы таблиц Excel привязывают каждую цель напрямую, не сканируя ячейки сгенерированного листа
  • Изображения отчетов V2 извлекают физический размер и DPI из ограниченных заголовков PNG, JPEG, GIF, BMP, EMF или WMF, поддерживают вписывание Natural, центрированное Contain, обрезающее Cover и растягивающее Stretch, отклоняют небезопасную растровую геометрию до изменений и сохраняют смещения относительно якоря через двунаправленное преобразование XLSX и ODS
  • IXLSXImageBlob и TXLSXImageBlob позволяют повторяющимся изображениям делить один неизменяемый растр и SVG-полезную нагрузку с одноразовой SHA-256 сводкой и опциональным ключом кэша; XLSX и ODS переиспользуют раздельные медиа-полезные нагрузки между листами и восстанавливают общие нагрузки при повторном открытии
  • Перепривязка диаграмм с учетом зависимостей транслирует ряды, формулы, имена и якоря при разворачивании полос диапазонов и листов
  • TXLSCompiledReportRunner сообщает о фазах начала, цели, сохранения и завершения, поддерживает отмену, вывод в поток и атомарную запись в файл, точные счетчики применений и повторное использование между изолированными сессиями данных; ErrorMode выбирает совместимое поведение остановки или продолжение обработки явно типизированных сбоев данных, провайдера, деления на ноль и недопустимых регулярных выражений, StrictDataAccess раскрывает отсутствующие данные вместо привычных пустых значений или сигнальных счетчиков, а неизменяемые снимки LastResult хранят упорядоченные проблемы времени выполнения и терминальное состояние между повторными использованиями раннера
  • Вывод отчета в поток, файл и зашифрованный файл использует одну поэтапную транзакцию; фатальные, отмененные, сериализационные сбои, сбои частичной записи в поток и замены файла сохраняют прежнюю цель нетронутой, успешный незашифрованный вывод сохраняет формат исходной книги, а большие снимки отката потоков вытесняются в управляемое временное хранилище
  • Вывод отчета пропускает резервные снимки для пустых целевых потоков, сохраняя откат содержимого и позиции цели, если вывод завершается неудачей
  • Скомпилированные цели вычисляются до динамического форматирования, затем атомарно фиксируют содержимое, числовые форматы, высоты строк и ширины столбцов с точным откатом; восстанавливаемая диагностика ячеек очищает формулы, сохраняет остальной базовый стиль и делит пул производных красного шрифта и желтой заливки между одинаковыми базовыми шрифтами, безопасные не-ячеечные цели сохраняют исходное значение, а структурные цели остаются fail-fast
  • TXLSReportRuntimeLimits ограничивает количество хранимых проблем, длину очищенных сообщений и память под проблемы до изменения цели; сообщения однострочные и маскируют распространенные учетные данные, а RuntimeDiagnosticsSheetName опционально записывает один структурированный диагностический лист, проходящий двунаправленное преобразование вместе со сгенерированной книгой
  • TXLSReportGenerator владеет полным жизненным циклом чтения и генерации для шаблонов из книги, файла, потока и зашифрованного файла, с парными событиями, стабильным контекстом листа, безопасной отменой, изоляцией вывода через атомарное клонирование и тем же контрактом восстанавливаемых ошибок и неизменяемого результата, что и у скомпилированного раннера
  • CloneRangeTo клонирует выбранные ячейки и зависимости с идентичностью с трансляцией смешанных ссылок, предварительной проверкой перекрытий и линейным повторяющимся замощением из фиксированного источника; условные и валидационные цели на целые оси следуют структурным правкам и клонам, полностью содержащим каждую цель, а копии ячеек на целые строки, столбцы и листы сохраняют разреженное хранилище и безопасные перекрывающиеся снимки источника; пересекающиеся виртуальные наложения стилей тоже копируются и перемапятся без расширения пустых координат, а наложенное форматирование приёмника вне скопированного прямоугольника остаётся нетронутым
  • TXLSReportPaginationPlanner предоставляет фиксированные нижние колонтитулы, группы неразрывности, разбиение строк, объединение похожих диапазонов и сбалансированные колонки отчета
  • Анализ скомпилированных отчетов, строгое выполнение и WriteDiagnostics сообщают о некорректных плейсхолдерах и отсутствующих значениях с указанием вида цели и точных адресов
  • TXLSReportTemplateChecker и TXLSReportTemplateMigrator переиспользуют семантику компилятора для валидации шаблонов и преобразования поддерживаемых устаревших форм плейсхолдеров

Доступный, векторный, растровый и веб-вывод

  • TXLSPDFTagMode и DocumentLanguage генерируют автоматические деревья структуры PDF с таблицами, строками, семантическими ячейками заголовков и данных, информативными Figure для изображений XLSX с альтернативным текстом Unicode, плотными идентификаторами размеченного содержимого на страницу, диапазонами объединенных ячеек, точными деревьями родителей и изоляцией артефактов для декоративных изображений и другого несемантического рисунка
  • TXLSPDFSignature поддерживает видимые и невидимые поля подписи, PNG-представления contained, covered или stretched, предоставляемые хостом данные CMS, колбэки дайджестов, патчи диапазонов байтов и явные политики сертификации DocMDP — без изменений, с заполнением форм и подписью или с заполнением форм, подписью и аннотациями — без хранения приватных ключей
  • TXLSPDFAProfile выбирает PDF/A-1a, 1b, 2a, 2b, 3a или 3b с валидацией профиля до фиксации вывода; связанные файлы PDF/A-3 несут имя Unicode, MIME-тип, описание, размер в байтах, время изменения и связь Source, Data, Alternative, Supplement или Unspecified через подробную перегрузку AddAttachment
  • Многоразовые колбэки прогресса начала, страницы и конца PDF плюс отмена предотвращают частичные потоки назначения
  • Цепочки fallback-шрифтов PDF с учетом стиля кэшируют покрытие глифов и встроенные гарнитуры, сохраняя дополнительные символы, кластеры графем и карты извлечения
  • Контекстный шейпинг сложных текстов применяет лигатуры, позиционирование комбинируемых знаков, арабское соединение и отображения исходных кластеров до вывода глифов
  • Нативные осевые и радиальные многостоповые градиенты PDF, альфа-маски на стоп, шаблоны заливки ячеек, отсечение и тени изображений переиспользуют кэшированные графические ресурсы
  • Комментарии ячеек могут превращаться в позиционированные текстовые аннотации Unicode в PDF, при этом вывод комментариев в конце документа остается доступным
  • TXLSSvgExport рендерит диапазоны, листы, книги, страницы и именованные объекты с векторным текстом, опциональными безопасными ссылками, диаграммами, фигурами и изображениями; колбэки страниц возвращают по одному полному SVG, детерминированные префиксы ID изолируют встроенные документы, а общий рендерер страниц рисует заливки ячеек Excel, схлопнутые границы, шрифты и выравнивание по ячейкам, сжатие по размеру и переполнение в соседние ячейки
  • TXLSPageImageExporter переиспользует одну сессию пагинации, инкрементально выдавая выбранные страницы PNG или JPEG, или атомарно записывает выбранные страницы одним LZW-сжатым многостраничным TIFF
  • TXLSGraphicsBackend и общая геометрия пагинации выравнивают предпросмотр, печать, PDF, SVG, изображения, HTML и размещение объектов, при этом сериализаторы сохраняют специфичное для формата кодирование
  • Ограниченный декодер EMF и WMF проверяет конверты записей и отклоняет escape-записи перед воспроизведением своего безопасного подмножества через общую геометрию Canvas и SVG: стеки состояния DC, трансформации окна, области просмотра и мировые, таблицы объектов перьев, кистей и расширенных перьев со стандартными объектами, прямоугольники, эллипсы, цепочки линий, многоугольники, кривые Безье, скобки путей с проходами заливки, обводки и комбинированными, скругленные прямоугольники, дуги, хорды, сектора и угловые дуги, заливки и рамки регионов, ограниченные фрагменты текста со шрифтами и выравниванием и изображения stretch-DIB, перекодируемые в PNG; отсечение и приватные записи остаются вне белого списка и закрываются в ограниченный растровый fallback
  • HTML-экспортеры классического формата и XLSX предоставляют явное табличное представление с семантическими заголовками строк и столбцов и типизированным hot tracking на чистом CSS; внешние ссылки проходят через единый санитайзер URI, отклоняющий цели script, data, blob, file, UNC и с управляющими символами
  • Диаграммы с осью дат в XLSX используют серийные номера книги как непрерывные координаты, сохраняют совместимый слот високосного дня 1900 года, учитывают систему дат 1904 и двигают деления на реальные календарные дни, месяцы или годы в общем рендеринге пагинации, SVG, PDF, изображений, предпросмотра, печати, просмотрщика и HTML; пропущенные единицы выводятся один раз для всех видимых рядов, автоматическая плотность использует видимый диапазон, ширину оси, измеренный шрифт подписей, числовой формат и поворот, а настроенные основные и промежуточные линии сетки переиспользуют одни и те же ограниченные коллекции делений
  • Модели осей дат XLSX сохраняют независимое присутствие базовых, основных и промежуточных календарных единиц плюс флаг автоматических категорий оси дат, поэтому пропущенные элементы ChartML остаются пропущенными, а явные единицы дней и ложные Boolean-значения проходят двунаправленное преобразование; типизированные поля расширения осей дат классического формата хранят каждое исходное значение и флаг, при этом активные значения можно отобразить в модель оси XLSX
  • Многоуровневые оси категорий сохраняют разреженные кэши с листьями впереди и живые двумерные диапазоны, наследуют пропущенные подписи, считая явные пустые подписи границами, объединяют равные подписи только внутри родительского диапазона, учитывают обратный порядок и порядок справа налево плюс скрытые категории и предоставляют NoMultiLevelLabels для одноуровневого вывода
  • Подписи данных диаграмм из ячеек сохраняют независимые формулы и индексированные кэши для каждого ряда, обновляют локальный отображаемый текст листа один раз за генерацию книги, удерживают внешние кэши без неявного доступа, транслируют формулы через копирование листов и разворачивание отчетов и учитывают общую и по-точечную видимость в рендеринге пагинации, SVG, PDF, изображений, предпросмотра, печати, просмотрщика и HTML
  • Книги классического XLS и XLSX делят одну трехсостояную политику отображения объектов без потерь; скрытые объекты исключаются до разворачивания диапазонов и работы с медиа, просмотрщик рисует легковесные именованные заполнители, а экспортеры PDF, SVG, растра, печати и HTML могут включить вывод заполнителей, сохраняя по умолчанию вывод полных объектов
  • Ручные макеты диаграмм сохраняют независимое присутствие полей и недопустимые исходные токены, разрешают режимы factor и edge с ограниченным размещением с сохранением размера, различают внутренние и внешние цели области построения, делят геометрию заголовка, легенды, области построения и заголовков осей между выводом пагинации, SVG, PDF, изображений, предпросмотра, печати, просмотрщика и HTML и преобразуют поддерживаемые позиции ODF через абсолютные расстояния диаграммы
  • Оси дат XLSX сохраняют числовые форматы подписей и состояние привязки к источнику, применяют стилизование текста оси и поворот по часовой стрелке, учитывают обратное направление и сохраняют непрерывный интервал для дублирующихся и разреженных дат в рендеринге пагинации, SVG, PDF, изображений, предпросмотра, печати, просмотрщика и HTML
  • Режим отображения формул выдает одинаковый окончательный текст с учетом защищенных ячеек, выравнивание и ограниченную двукратную эффективную ширину макета во всех путях — просмотрщик книги, предпросмотр, печать, изображения, EMF, SVG, PDF, классический HTML и HTML XLSX — не меняя сохраненные значения, кэши формул и ширины столбцов
  • Адаптивные кубические дуги Безье, управляемые flatness, делят один контракт точности между выводом PDF, SVG и изображений, выделяя дополнительные сегменты только когда этого требуют масштаб или эксцентриситет
  • Оглавления PDF поддерживают вложенные закладки Unicode, цвета, полужирный или курсивный текст и развернутых или свернутых потомков, с колбэками страниц для фонов и наложений
  • Разрешенные именованные и встроенные табличные стили проходят через общее форматирование HTML, PDF, изображений, предпросмотра и просмотрщика без материализации пустых ячеек
  • TXLSSvgExport.SaveObjectAsSVG рендерит одну именованную диаграмму, изображение или фигуру по ее точным границам объекта, не обрезая полную страницу
  • HTML-экспорт выдает диаграммы и фигуры как встроенный SVG и сохраняет SVG-изображения, якоря рисунков, ссылки и поддерживаемые эффекты без растеризации целого листа
  • TXLSXHtmlExportSession один раз сканирует общие стили, а затем экспортирует листы инкрементально с прогрессом, отменой и сбросом
  • TXLSImageRenderEffects одинаково применяет обрезку, яркость, контраст, гамму, поворот, непрозрачность и тень во всех графических бэкендах
  • Предустановленные фигуры, маркеры настройки, выноски, блок-схемы, текстовые поля и WordArt используют общую векторную геометрию во всех форматах вывода
  • Продвинутый рендеринг диаграмм покрывает планки погрешностей, линии тренда, оси дат, числовые интервалы, подписи из ячеек с упорядочиванием компонентов custom-first и финансовые бары high-low и up-down
  • Плотные подписи и подписи круговых диаграмм получают детерминированную коррекцию коллизий и маршрутизацию выносных линий перед финальным векторным выводом

Функции XLSX, готовые для кода приложения

Теперь API XLSX охватывает практические сценарии генерации книг, создания отчетов и изменения документов, а не ограничивается простой записью ячеек

  • Структура листа Ячейки, вычисление формул, полные и объединенные диапазоны с прямым поиском и удалением, размеры строк и столбцов с ограниченным автоподбором, структуры листов, скрытые строки и столбцы, закрепленные области, состояние активного листа, скрытые и глубоко скрытые листы
  • Стили и оформление Шрифты, заливки, границы, числовые форматы, выравнивание, форматированный текст, цвета темы, индексированные цвета, оттенок и тень, диагональные границы и пулы повторно используемых стилей
  • Объекты Excel Гиперссылки и комментарии с помощниками поиска ячеек и удаления диапазонов, изображения и отдельные текстовые поля рисунка с помощниками поиска привязок и удаления диапазонов, условное форматирование и проверки данных с помощниками поиска и удаления с учетом диапазонов, таблицы в стиле Excel с поиском по имени и удалением, критерии автофильтра с прямым поиском и удалением столбцов, объекты диаграмм с поиском по заголовку и удалением, листы диаграмм, определенные имена с поиском по области видимости и удалением, сохранение проектов VBA с запросами HasVbaProject / VbaProjectDefined плюс инспекцией и редактированием исходного кода существующих модулей, а также внешние ссылки на книги с помощниками поиска целевых объектов и удаления
  • Поддержка страниц и метаданных Режимы просмотра листов, области печати, строки и столбцы заголовков, параметры печати сетки и заголовков, ручные разрывы страниц с помощниками поиска индексов и удаления диапазонов, книги с системой Date1904, свойства документа, метаданные приложения, а также потоковое сохранение и открытие

Форматы вывода из одних и тех же данных

HotXLS не ограничивается бинарными файлами книг; текущие API предлагают прямые пути экспорта для общих задач интеграции и отчетности

XLS Чтение, запись и изменение классических книг Excel 97-2003, курсор загруженных ячеек в константном состоянии со снимками во владении получателя, опциональными независимо стилизованными пустыми ячейками и fail-fast валидацией топологии, быстрое обнаружение имен листов в файлах или потоках, поиск листов по имени, помощники панелей, активная вкладка книги, метаданные «сохранено кем», помощники загрузки/сохранения/очистки полезной нагрузки VBA плюс инспекция и редактирование исходного кода существующих модулей, управление геометрией и состоянием окон, ярлычками, полосами прокрутки, настройки группировки дат автофильтра, представление листа, цвет сетки и точность флага Window2 закрепленных панелей, управление стилем структуры, права защиты листов, флаги параметров страницы с ограниченным побайтовым сохранением полезной нагрузки драйвера принтера BIFF, доступ к публичной полезной нагрузке с изоляцией копий, конвертация в XLSX с приоритетом типизированных полей, многоключевая сортировка диапазонов, встроенные стили ячеек, свойства документа и процессы экспорта
XLSX Генерация книг OOXML, вычисление формул с расширенным покрытием функций и ссылками A1 по всей сетке листа 1,048,576 × 16,384 и OnUserFunction/OnUserFunctionEx, курсор загруженных ячеек в константном состоянии поверх материализованных разреженных блоков или упакованного хранилища со снимками во владении получателя, опциональными независимо стилизованными пустыми ячейками и fail-fast валидацией времени жизни, сканирование загруженных ячеек и запись через колбэки, ограниченные пределы AutoFit для ширин столбцов и высот строк отчетов, детерминированная конвертация разреженного XLSX в BIFF8 через SaveXLSXWorkbookAsXLS с сохранением заблокированных индексированных цветов, взвешенной квантизацией палитры OKLab и preflight типизированных настроек принтера, побайтовое сохранение части настроек принтера листа с доступом к публичной полезной нагрузке с изоляцией копий, точной семантикой очистки и диагностикой висячих связей, Excel-совместимое сохранение и загрузка с шифрованием AES (ECMA-376 Standard Encryption) с ускорением AES-NI и программным fallback, сохранение проекта VBA с запросами HasVbaProject / VbaProjectDefined плюс инспекцией и редактированием исходного кода существующих модулей, поиск и замена текста в шаблонах, настраиваемый экспорт книг/диапазонов в HTML, прямой поиск/удаление критериев автофильтра с предварительной оценкой, прямой поиск/удаление привязок встроенных изображений, поиск/удаление условного форматирования и проверок данных с учетом диапазонов, а также Roundtrip через выделенный фасад lxHandleX
XLSB Валидированные значения и базовые стили через фасад XLSX, включая типизированные числа, Boolean-значения, текст Unicode, обычные ошибки, стилизованные пустые ячейки, видимость листов, обычные представления, размеры строк и столбцов, поля страницы, сжатие ZIP и детерминированные метки времени; полная подготовка пакета и обязательные проверки функций отклоняют неподдерживаемые формулы, имена, объекты функций и нестандартные настройки вычислений до фиксации места назначения
ODS Импорт электронных таблиц OpenDocument с данными styles.xml, размерами строк/столбцов, унаследованными стилями ячеек, базовым преобразованием формул, защитой листов, именованными диапазонами, бестиповыми кэшированными скалярными значениями, дробными секундами в датах и отрицательными значениями времени; полный экспорт через SaveAsODS, записывающий в валидный пакет ODF типизированные значения ячеек, формулы, форматированный текст, объединенные диапазоны, гиперссылки, изображения, диаграммы, условные форматы, проверки данных, закрепленные области, области печати, группы структуры и опциональное управление через TODSExportOptions
CSV / TSV Импорт текста с разделителями через OpenCSV с автоматическим определением разделителей, обнаружением кодировки BOM, квотированием по RFC 4180, опциональным выводом типов значений, директивами импорта по столбцам и нарезкой фиксированной ширины, плюс помощники экспорта книг, листов и диапазонов с перегрузками для потоков и файлов и выводом фиксированной ширины с пробельным дополнением
HTML / RTF / PDF Ориентированные на таблицы экспорты для отчетов, предпросмотра, тел электронных писем и передачи документов, включая выбранные фрагменты диапазонов, настраиваемые заголовки HTML, атрибуты макета таблиц, привязки гиперссылок, всплывающие подсказки комментариев, стили вертикального выравнивания, стили фрагментов форматированного текста, условные дифференциальные стили и числовые форматы, цветовые шкалы, направленные гистограммы, глифы семейств значков и минимальный вывод таблиц. TXLSHTMLImport импортирует одну выбранную таблицу верхнего уровня или все таблицы в целевую ячейку с отсчетом от единицы с явным десятичным разделителем, сохраняя исходные перегрузки «все таблицы». SaveWorkbookAsHTML публикует все видимые листы XLSX в одном навигируемом документе со стабильными якорями на лист и экранированными именами листов. RTF также импортируется обратно через OpenRTF, отображая ячейки таблиц или списки абзацев в A1 по умолчанию или в явные целевые строку и столбец с отсчетом от единицы через расширенные перегрузки. Книжный SaveAsPDF объединяет все видимые листы в один документ, рендерит сплошные и условные заливки, цветовые шкалы, гистограммы, условные значки, цвета, размеры, полужирное, курсивное и подчеркнутое начертание шрифта, выравнивание, явные границы и опциональные линии сетки, и следует областям печати, размеру бумаги или пользовательским размерам с точностью до пункта, ориентации, полям, масштабу, настройкам вписывания по ширине, ширинам столбцов, высотам строк, ручным разрывам страниц, повторяемым строкам и столбцам заголовков и левым, центральным или правым колонтитулам — включая коды полей &F имени файла и &Z пути и опциональное подавление полосы колонтитула — при этом разбивая широкие и высокие диапазоны по обеим осям; CalculatePageCount сообщает полное число логических страниц без построения PDF-объектов, а FirstPage и LastPage с отсчетом от единицы выбирают диапазон вывода, сохраняя поля общего числа страниц. TXLSPaginationModel раскрывает эти решения как переиспользуемые логические страницы XLS и XLSX для VCL-предпросмотра печати, экспорта PDF, пользовательских холстов и вывода EMF, включая повторяемые заголовки, порядок «сначала вправо, затем вниз» или «сначала вниз, затем вправо», масштабирование вписывания от 10% до 400% и размещение рисунков
Portable PDF / SVG / PNG Нативный переносимый рендеринг передаёт отсоединённые скалярные и сценовые снимки, сохраняет порядок рисования и отсечение и использует ограниченный рендеринг Cairo с явными файлами шрифтов; планы печати книги применяют области печати, заголовки, параметры страницы, разрывы и масштабирование вписывания без пересчёта или изменения источника

Зачем использовать

HotXLS выполняет генерацию таблиц прямо внутри процесса Delphi или C++Builder; это делает библиотеку подходящей для настольных утилит, пакетных инструментов, служб и установщиков, где автоматизация Office ненадежна или недоступна

Поддержка RAD Studio

Пакет предназначен для Delphi и C++Builder от версии XE5 до RAD Studio 13.1 Florence, и содержит проекты пакетов с контролем версий и отдельными выходными папками для каждой версии

Также поддерживается Free Pascal 3.2.2 с Lazarus/LCL на Windows Win32 и Win64 через рантайм-пакет Lib/FPC/HotXLSLaz.lpk, включая API книг XLS/XLSX, прямую потоковую передачу, формулы и экспортные компоненты TDataToXLS и TGridToXLS для наборов данных LCL и TDBGrid

Запустите build-FPC-Lib.cmd Win64 или build-FPC-Lib.cmd Win32 для компиляции пакета, затем Tests/Lazarus/Run-HotXLSLazarusSmoke.cmd Win64 или его Win32-аналог для проверки Roundtrip книг и сжатия; для нестандартной установки задайте LAZARUS_DIR

Приложения LCL для Windows должны подключать юнит Interfaces LCL до юнитов HotXLS и добавлять Lib и Lib/FPC в пути поиска юнитов, плюс Lib в путь поиска include; VCL-формы демо, VCL-просмотрщик книг и адаптер сетки DevExpress остаются компонентами Delphi/C++Builder

Нативные приложения Linux x64 и macOS ARM64 загружают, редактируют, вычисляют и сохраняют поддерживаемые модели Classic XLS, XLSX, XLSB и ODS; текст Classic BIFF5 использует явно объявленные кодовые страницы, тогда как сжатый Unicode BIFF8 сохраняет точные кодовые единицы UTF-16, а нативные вычисления и поиск сохраняют сопоставление регистра Unicode

Поддерживаемый текст устаревших диаграмм перекодируется при смене кодовой страницы, а непредставимая или неподдерживаемая миграция байтового текста отклоняется до изменения вывода вызывающего кода; повторные чтения ZIP освобождают прежние метаданные заголовков, а поиск именованных стилей включает первую сохранённую запись

Настройку приложения, контракты устаревших кодировок и детали совместимости regex см. в поддержке Free Pascal и Lazarus

Подсистема переносимого вывода рендерит нативные PDF, SVG и PNG на Linux и macOS с FPC, Cairo, FreeType, HarfBuzz и FriBidi; она потребляет неизменяемые снимки из поддерживаемого нативного ядра книг, с явной геометрией шрифтов и бюджетами ресурсов

Удобство распространения

Исходный код, пакеты, скрипты сборки, демонстрации, локальная HTML-документация и интеграция с установщиками включены в комплект, поэтому команды могут компилировать, тестировать и выпускать продукт без зависимости от веб-сервисов

С чего начать

Используйте эти локальные файлы в первую очередь при оценке библиотеки или ее интеграции в проект