Примітки до випуску HotXLS
Історія версій видимих для користувача функцій HotXLS, виправлень, покращень XLS/XLSX, оновлень експорту, змін сумісності та оновлень документації
Останній випуск
- Найновіша версія: 2.229.0; Дата випуску: 2026-08-03
Версія 2.229.0
Додано
TXLSXWorksheet.HeaderFooterImagesтепер створює, знаходить, замінює та видаляє типізовані слоти зображень для кожної лівої, центральної та правої позиції верхнього або нижнього колонтитула на непарних, парних та перших сторінках- Зображення верхніх та нижніх колонтитулів виставляють свої сирі дані, формат, заголовок, точкові розміри та точкові поля з прямим завантаженням із файлів PNG, JPEG, GIF, BMP, EMF та WMF
Змінено
- Зображення для парних сторінок та першої сторінки автоматично вмикають відповідні варіанти сторінок і підтримують необхідні коди полів рисунків під час редагування тексту верхнього або нижнього колонтитула
Виправлено
- Коментарі аркуша та зображення верхнього або нижнього колонтитулів тепер зберігають незалежні зв'язки VML, коли вони ділять один аркуш
- Слоти зображень верхніх та нижніх колонтитулів, створені в Excel, тепер зберігають свої байти зображень, формати, заголовки, розміри, поля та зв'язки протягом циклів відкриття та збереження
Версія 2.228.0
Додано
- Класичні аркуші XLS і колекції фігур тепер створюють і виявляють типізовані елементи керування
TXLSButtonіTXLSRadioButtonпоряд із прапорцями, полями зі списком і списками - Елементи керування форм тепер відкривають імена макросів, пов'язані клітинки, діапазони вводу, стани прапорців, плоский або 3D вигляд і зв'язки радіо-груп через типізовані властивості
- Визначені імена відкривають
IsMacro, щоб прив'язки макросів зберігали необхідні метадані імені книги
Виправлено
- Редагування та повторне збереження класичних елементів керування форм більше не відкидає стани прапорців, прив'язки макросів, формули пов'язаних клітинок, діапазони джерел або підтримувані метадані радіо-груп
- Очищення діапазону джерела поля зі списком або списку тепер видаляє серіалізовану формулу введення замість відновлення попереднього діапазону під час наступного відкриття
Версія 2.227.0
Додано
LINESTіLOGESTтепер повертають повні багатоваріантні масиви коефіцієнтів і необов'язкові п'ятирядкові статистичні матриціTRENDіGROWTHтепер повертають оформлені масиви прогнозів для одноваріантних і багатоваріантних входів
Змінено
- Арифметика масивів, порівняння, конкатенація, унарне заперечення та відсоткові операції тепер транслюють скаляри та одинарні рядки чи стовпці, зберігаючи результати для кожної клітинки
- Залежності обчислень тепер розкривають вкладені імена книг і аркушів, визначені формулою імена та посилання на кілька областей із захистом від циклів, чутливим до області дії
Виправлено
- Помилка в одному елементі масиву більше не зводить повний результат і не переходить до скалярного обчислення
- Визначені формулою імена, залежності яких можна розв'язати статично, більше не змушують виконувати зайвий волатильний повний переобчислення
Версія 2.226.0
Додано
- Існуючі XLSX зведені кеші та подання зведених таблиць тепер завантажуються в типізовану модель через зв'язки пакета, включно із записами кешу, полями, спільними елементами, групуванням, фільтрами, форматами, обчислюваними визначеннями та розширеннями
TXLSPivotTable.Makeтепер обчислює обчислювані поля кешу, обчислювані елементи та обчислювані члени даних із прив'язкою імен, чутливою до залежностей- Розширені режими
ShowDataAsдодають батьківські відсотки, поточні відсотки та зростаюче або спадаюче ранжування з дійсною розміткою розширення XLSX
Змінено
- Генерування зведених результатів тепер застосовує видимість елементів, вибори сторінок та фільтри підписів, дат, агрегатів і значень перед побудовою згрупованих доменів
- Числові, датські та дискретні групи, сортування за підписами чи значеннями даних, налаштовані проміжні підсумки та необов'язкові матеріалізовані рядки чи стовпці загальних підсумків тепер беруть участь у генеруванні результатів
Виправлено
- Зведені фільтри тепер використовують дійсну відповідно до схеми розмітку фільтрів кореневого рівня та символічні типи фільтрів замість неоднозначних числових значень
- Завантаження на основі зв'язків більше не припускає умовні чи послідовні імена частин зведеного кешу, записів кешу чи зведених таблиць
Версія 2.225.0
Додано
TXLSXWorkbook.ConnectionsтаTXLSXWorksheet.QueryTablesтепер забезпечують типізоване створення й редагування метаданих зовнішніх баз даних, вебу, тексту й результатів запитів- Параметри з'єднання зберігають свій точний тип Boolean, ціле число, число з рухомою комою, рядок або посилання на клітинку, включно з явними значеннями нуль, false та порожній рядок
Змінено
- Відкриття та збереження XLSX тепер розв'язують і записують частини з'єднань та таблиць запитів через їхні власницькі зв'язки, синхронізують таблиці результатів і визначені імена й зберігають невідомі атрибути, дочірні вузли та списки розширень
- Редагування рядків і стовпців утримують діапазони результатів запитів вирівняними, тоді як копіювання аркушів у межах однієї книги та між книгами зберігає власність запитів і перепризначає ідентифікатори з'єднань і конфліктні імена
Виправлено
- Таблиці запитів можуть співіснувати зі стандартними таблицями, потоковими коментарями та зведеними таблицями без колізій ідентифікаторів зв'язків аркуша чи книги
Версія 2.224.0
Додано
- Класичні аркуші XLS та сучасні аркуші XLSX тепер надають
AddDataTableіDataTablesдля таблиць даних What-If з однією змінною для рядка, однією змінною для стовпця та двома змінними
Змінено
- Перерахунок робочої книги обчислює кожний результат таблиці даних в ізольованому контексті вводу, включно з непрямими залежностями формул, і зберігає визначення разом із кешованими результатами під час відкриття, збереження, копіювання аркуша та структурних редагувань рядків чи стовпців
Виправлено
- Видалені ввідні клітинки What-If тепер дають результати
#REF!, а класичний перерахунок робочої книги відвідує кожний аркуш замість пропуску першого аркуша - Вставлення рядків у верхній частині класичного аркуша більше не створює ризик порушення доступу на Win64
Версія 2.223.0
Змінено
- Скасування паралельного прямого зчитувача тепер поширюється через активні читання ZIP-елементів і кожен крок декомпресії замість очікування наступного витягування XML
Виправлено
- Переривання паралельного сканування аркуша більше не чекає завершення великого читання стисненого XML перед тим, як будуть звільнені заблоковані працівники
Версія 2.222.0
Додано
TXLSDirectReader.ParallelBufferMemoryLimitобмежує сукупне корисне навантаження черги raw-cell для паралельного сканування аркуша, тоді якParallelPeakBufferedBytesвиявляє виміряний пік для діагностики та тестів ємності
Змінено
- Паралельні прямі читання тепер транслюють ZIP-записи аркуша у XML-зчитувачі, локальні для працівника, та обмежені черги виробника-споживача замість збереження повного розпакованого XML аркуша та повних буферів клітинок на аркуш
- Активні аркуші отримують незалежні бюджети черг і обробляються у вікнах розміру працівника, зберігаючи порядок зворотних викликів без дозволу пізнішим аркушам виснажити аркуш, який зараз видається
Виправлено
- Переривання клітинок, помилки зворотних викликів та помилки працівника тепер пробуджують заблокованих виробників і споживачів, кооперативно зупиняють витягування XML, приєднують усіх працівників і залишають прямий зчитувач придатним для повторного використання
Версія 2.221.0
Змінено
- Відкриття XLSX з кількома аркушами тепер транслює кожний ZIP-запис аркуша безпосередньо у його розпаковувач та XML-зчитувач, локальні для працівника, замість збереження розпакованого XML аркуша перед аналізом
- Паралельні зчитувачі аркушів серіалізують лише короткі позиційні читання з джерела пакета, тож декомпресія та аналіз XML залишаються паралельними, тоді як перехідна ввідна пам'ять аркуша обмежена кількістю активних працівників
Версія 2.220.0
Додано
- Створення результатів PivotTable тепер виконує всі дев'ять класичних режимів
ShowDataAs, зокрема різницю, відсоток від базового елемента, різницю у відсотках, наростаючий підсумок, відсоток від рядка, відсоток від стовпця, відсоток від загального та обчислення індексу xlPivotBaseItemPreviousтаxlPivotBaseItemNextнадають типізовані селектори для суміжних базових елементів у порівняльних обчисленнях
Змінено
- Відсотки зведення та значення індексу використовують підсумки за рядком, стовпцем і загальні, агреговані безпосередньо з вихідних записів, зберігаючи коректну семантику Середнього, Добутку, Кількості, дисперсії та стандартного відхилення без повторного сканування джерела
- Наростаючі підсумки дотримуються порядку елементів зведення, скидаються незалежно для кожної однорангової групи та зберігають розріджене зберігання результатів для зведень із високою кардинальністю
Виправлено
- Записи
SXDIBIFF8 тепер використовують стандартне фіксоване 14-байтове компонування та зберігаютьShowDataAs, базове поле, базовий елемент, формат чисел і відображуване ім'я через типізовані зчитування, тоді як застарілі записи HotXLS залишаються доступними для читання - Поля даних XLSX тепер записують індекси зведених полів, зіставляють селектори попереднього та наступного з необхідними значеннями OOXML і випускають базові атрибути лише для режимів, які їх використовують
- Відсутні клітинки порівняння залишаються порожніми, тоді як наявні нульові знаменники повертають
#DIV/0!замість того, щоб плутатися з відсутніми даними
Версія 2.219.0
Виправлено
VDBтепер застосовує змінну амортизацію балансу, що зменшується, для дробових періодів, перемикається на лінійну амортизацію, коли це вигідно, і дотримуєтьсяno_switch- Нульові коефіцієнти, межі ліквідаційної вартості, дробові початкові періоди та недійсні діапазони періодів тепер дають сумісні з Excel результати замість округлення періодів і повернення спрощеного наближення зменшуваного балансу
Версія 2.218.0
Додано
TXLSXWorksheet.Scenariosтепер надає типізоване створення What-If Scenario Manager з іменованими сценаріями, активними та показаними індексами, діапазонами клітинок, що змінюються, метаданими користувача та коментарів, заблокованим та прихованим станом і власними значеннями клітинок введення- Визначення сценаріїв тепер відстежують копіювання аркушів і структурні редагування рядків або стовпців, тоді як межі сумісності з Excel перевіряються до того, як недійсні метадані можуть бути записані
Виправлено
- Відкриття та збереження сценаріїв, створених в Excel, тепер зберігає кореневі атрибути та вкладені клітинки введення замість сплощення ієрархії у втратний сирий XML
- Сценарні елементи аркуша, AutoFilter, консолідація даних, об'єднані клітинки та фонетичні елементи тепер використовують порядок схеми, щоб суворі споживачі електронних таблиць не потребували проходу ремонту
Версія 2.217.0
Додано
TXLSXWorksheet.IgnoredErrorsтепер забезпечує типізоване створення для кожної стандартної категорії проігнорованих помилок із посиланнями на кілька ділянок, підтримкою копіювання аркушів, оновленнями структурного редагування та циклами відкриття/збереженняTXLSXWorkbookтепер відкриває режим посилання, перерахунок при збереженні, повну точність, паралельні обчислення та настройки ручної паралельності поруч із наявними параметрами обчислень
Виправлено
- Кожен не типовий параметр обчислення книги тепер незалежно створює та збережено-відтворює впорядкований за схемою елемент
calcPr, зокрема межі ітерації, налаштовані до увімкнення ітерації - Режими обчислень, режими посилань, межі ітерації, ідентифікатори обчислень і лічильники ручної паралельності тепер відхиляють або нормалізують неприпустимі значення замість запису неоднозначного стану книги
Версія 2.216.0
Змінено
XMATCHтаXLOOKUPтепер виконують логарифмічні висхідні чи низхідні двійкові пошуки за запитом, включно з Excel-сумісними межами для дублікатів і наближених збігівXIRRтепер враховує початкове наближення із захищеним розв'язувачем, що знаходить високі та чутливі до наближення корені, тоді якXNPVвикористовує компенсоване підсумовування та перевірені дати й ставки- Пошук визначених імен високої кардинальності в XLSX тепер використовує лінивий обізнаний з областю геш-індекс, зберігаючи серіалізований порядок, пріоритет локальних імен та поведінку першого збігу
- Збережені частини пакета XLSX тепер один раз розміщують свій заявлений розпакований розмір, зберігаючи повну перевірку довжини та CRC
Виправлено
- Неправильні режими пошуку, двійкові пошуки з підстановками, двовимірні діапазони пошуку та невідповідні вектори повернення
XLOOKUPтепер повідомляють про помилки формули замість отримання неоднозначних результатів XIRRтаXNPVтепер відхиляють неправильні знаки грошових потоків, ставки, наближення та дати, відкидають дробові серійні номери дат і повідомляють про розбіжність замість повернення неперевіреного середнього значення
Версія 2.215.0
Додано
FREQUENCYтепер повертає вертикальний масив із одним результатом на кожен інтервал плюс інтервал переповнення
Змінено
SORTтепер використовує стабільне масштабоване впорядкування для рядків чи стовпців, зберігаючи вихідний порядок рівних ключівUNIQUEтепер використовує стабільне геш-індексоване зіставлення для рядків чи стовпців, включно з результатамиexactly_onceта текстом без урахування регіструPERCENTRANK.INC,PERCENTRANK.EXCтаMODE.MULTтепер ефективно масштабуються на вході високої кардинальності замість покладання на квадратичні сканування
Виправлено
- Параметр
by_colдляSORTтаUNIQUEтепер працює зі стовпцями замість відкату до поведінки рядків
Версія 2.214.0
Додано
- Відкриття XLSX тепер приймає потокові XML-частини UTF-16 little-endian і big-endian із позначкою порядку байтів або необхідною специфіччною для порядку байтів декларацією, включно з символами поза базовою багатомовною площиною
Змінено
- Оновлення кешу зведеної таблиці високої кардинальності тепер використовують детерміновані геш-індекси для спільних значень та один раз розміщують матрицю записів, зберігаючи порядок елементів за першим входженням і водночас уникаючи повторних лінійних пошуків і поповнення рядок за рядком
- Проєктовані прямі зчитування відкидають комірки поза обраними рядками та стовпцями перед копіюванням сирих значень, формул і форматованого тексту в буфери окремого аркуша
Виправлено
- Спотворений XML із дубльованими позначками порядку байтів, непідтримуваними чи суперечливими деклараціями кодування, підписами UTF-32, непарними довжинами байтів UTF-16 або неправильними сурогатними парами тепер відхиляється
- Робочі потоки паралельного прямого зчитувача тепер ініціалізують увесь стан завдань перед запуском, припиняють брати нові завдання аркушів після збою, детерміновано повторно піднімають помилку завдання з найменшим індексом і очищують кожного створеного працівника, якщо побудова пулу зазнає невдачі
Версія 2.213.0
Додано
T.TESTтепер обчислює незалежні вибірки з об'єднаною рівною дисперсією або нерівною дисперсією Велча на додачу до парних вибірок, включно з односторонніми та двосторонніми ймовірностями
Змінено
- Відкриття XLSX тепер прямує за цілями зв'язків книги, аркуша та малюнка для аркушів, спільних рядків, стилів, тем, макросів, зовнішніх посилань, коментарів, ниткових коментарів, VML, малюнків, зображень, діаграм, таблиць та зведених таблиць, включно з коректними пакетами, що використовують перейменовані чи непослідовні шляхи частин
Виправлено
- Спотворені пакети з дубльованими ідентифікаторами зв'язків більше не дозволяють пізнішому непідтримуваному зв'язку замінити першу придатну ціль під час відновлення сумісності
Версія 2.212.0
Змінено
- Відстеження залежностей формул тепер краще масштабується на великих аркушах шляхом індексування коміркових і діапазонних залежностей перед перебудовами та інвалідацією брудних комірок
- Великі статистичні та регресійні формули тепер обчислюють кожне числове значення в наданих діапазонах замість зупинки на попередньому буфері фіксованого розміру
Виправлено
- Комірки XLSX поза сіткою аркуша послідовно відхиляються, тож неправильні координати більше не можуть маскувати дійсні комірки
- Редагування формул більше не скидає режим обчислення книги, обмеження ітерацій, прапорці повного обчислення чи інші налаштування обчислення
- Зчитування списку Blob тепер явно перевіряє запитані діапазони та дозволяє дійсні порожні зрізи наприкінці потоку
Безпека
- Класичне шифрування XLS тепер охоплює потоки кешу зведеної таблиці разом із даними аркуша
- Спотворені хвости розширення SST та записи центрального каталогу ZIP відхиляються до надмірного розміщення, скорочених зчитувань або вбудованих у коментар підроблених записів каталогу, що могли б вплинути на завантаження
Версія 2.211.0
Додано
TXLSPivotTable.Makeтепер матеріалізує кожке налаштоване поле даних із власним агрегуванням і розгортає значення в рядках або стовпцях відповідно доDataFieldAxisIsRow
Змінено
- Генерація результату зведеної таблиці повторно використовує геш-індексовані домени ключів рядків і стовпців для всіх полів даних, обирає щільне чи розріджене сховище акумулятора за формою результату, зберігає порядок елементів кешу понад дев'ять ключів і видає читабельні комбіновані мітки для багатопільних осей
Виправлено
Countтепер включає непорожні текстові, булеві значення, помилки, дати та числові значення кешу, тоді якCountNumsвключає лише числові значення та дати,Productповертає нуль для перетинів без числових значень, порожнечі більше не рахуються як записи, а зведені таблиці лише зі значеннями можуть матеріалізувати свої загальні підсумки без полів рядків чи стовпців
Версія 2.210.0
Додано
TXLSWorkbookViewerтепер відтворює умовні заливки XLSX, колір шрифту та акцент, числові формати, спрямовані позитивні та негативні смуги даних, градієнти, межі, осі, приховані значення та всі вбудовані сімейства наборів піктограмTXLSWorkbookViewer.RefreshConditionalFormatsперебудовує підготовлений агрегований і пороговий стан після того, як викликувачі модифікують приєднану книгу XLSX на місці
Змінено
- Переглядач кешує один підготовлений оцінювач умовного форматування на кожен активний аркуш, повторно використовує його під час гортання, виділення та перемальовування і звільняє його, коли книга чи аркуш змінюється
Виправлено
- Осі смуг даних на правій межі тепер обрізаються у межах комірки-власника замість малювання у сусідню комірку
Версія 2.209.0
Додано
- Аркуші XLSX тепер надають підготовлений оцінювач умовного форматування, що розв'язує пріоритет правил,
StopIfTrue, відносні формули, диференційні стилі, ранжування «найкращі/найгірші», перевірки «вище/нижче середнього», дубльовані та унікальні значення, відносні періоди дат, дво- та трикольорові шкали, смуги даних і набори піктограм для будь-якої комірки
Змінено
- Експорт у HTML та PDF тепер відтворює відповідні умовні заливки, акцент та колір шрифту, числові формати, шкали кольорів, спрямовані позитивні та негативні смуги даних, явні осі, гліфи сімейств піктограм, приховані значення та кольори теми з розв'язанням відтінків
- Великі домени умовного форматування тепер повторно використовують скомпільовані відносні формули без виділення дерева синтаксису на кожну комірку, потокові статистики середнього, відхилення, мінімуму та максимуму, зберігають впорядковані значення лише для правил ранжування чи перцентилів, пакетно сортують дубльовані ключі в Unicode та використовують індекси кандидатів рядкових смуг, щоб уникати сканування непов'язаних правил
Виправлено
- Класичні умовні правила тепер правильно завантажують типи виразів і послідовно оцінюють зворотні між межами, предикати тексту без урахування регістру, порожні комірки та предикати помилок
Версія 2.208.0
Змінено
- Упакований рушій зберігання комірок тепер записує нативні розмічені рядкові, булеві значення, помилки та порожні вмісти, ітерує комірки в порядку головування рядків і кодує довжиною серії послідовні комірки однакового типу для меншого використання пам'яті та швидшого послідовного виводу
- Спільні рядки класичної книги тепер зберігають байти символів в одному розміщенні та створюють декодовані рядкові значення ліниво, зменшуючи накладні витрати на розміщення для великих таблиць унікальних рядків
Додано
- Зведені таблиці тепер можуть обчислювати повну матрицю результату з записів кешу з групуванням ключів рядків і стовпців та всіма 11 підтримуваними агрегатними функціями
- Діаграми класичної книги тепер відкривають типізовану інформацію про серії, осі, легенду та групу діаграм для робочих процесів перетворення та перевірки
Версія 2.207.0
Додано
TXLSPivotCache.RefreshFromSourceбудує кеш зведеної таблиці з діапазону аркуша-джерела: він читає рядок заголовка для іменування полів, переганяє відмінні значення кожного рядка даних у домен спільних елементів поля, фіксує тип поля з першого непорожнього значення та записує індекс спільного елемента для кожної пари (запис, поле) — тож зведену таблицю можна створити програмно з діапазону даних замість покладання наrefreshOnLoadExcel. Зворотний засіб читання значень на основі зворотного виклику утримує модуль зведених таблиць без прямої залежності від аркуша
Версія 2.206.0
Додано
- Новий
TlxCellMMU(модульlxCellMMU) реалізує упакований рядковий рушій зберігання комірок з кодуванням довжиною серій рівнотипових і порожніх ділянок комірок та байтовим кодом типу, що також слугує селектором ширини даних — тож стовпець малих цілих коштує один байт на комірку замість восьми. Рушій кодує числа у найменшій ширині, що зберігає значення (цілі int8 / int16 / int32 / 2-десяткові / 4-десяткові масштабовані цілі / IEEE double), компактно зберігає індекси рядків, булеві значення, помилки та порожні комірки, і надає APIGetValue/SetNumber/SetStringплюс прямий ітератор. Це backend наступного покоління за прапорцем функції для існуючого APITXLSXCells, орієнтований на зменшення робочого набору у 10–25× на щільних аркушах
Версія 2.205.0
Додано
TXLSCustomChart.GetChartInfoтепер декодує семантичний підсумок із сирого потоку записів діаграми BIFF — сімейство типу діаграми (стовпчаста, лінійна, кругова, площинна, точкова, радарна, кільцева, поверхнева, бульбашкова), кількість серій та наявність легенди — тож тип діаграми BIFF можна запитати програмно, а перетворення діаграм BIGH-у-XLSX може обрати правильне цільове сімейство. Побайтове сховище, що гарантує точність циклу, залишається без змін
Версія 2.204.0
Змінено
- Класична таблиця спільних рядків
.xlsтепер записує рядки суто ASCII у стисненому кодуванні Latin-1 ([MS-XLS] §2.5.294fHighByte=0, один байт на символ) замість завжди використання UTF-16, приблизно вдвічі зменшуючи розмір SST — а отже й файл.xls— для книг, перевантажених ASCII
Версія 2.203.0
Додано
- Новий
TlxCompoundFileчитає та записує формат контейнера Compound File Binary (OLE2) безпосередньо чистим Pascal без залежності відole32.dll/ COMIStorage— відкриваючи шлях до обробки.xlsу пам'яті та крос-платформно. Зчитувач охоплює компонування v3, з яким HotXLS стикається на практиці (заголовок + DIFAT у заголовку + обхід ланцюга FAT + MiniFAT та мініпотік для потоків до 4096 байт + дерево каталогу); записувач видає мінімальний, але дійсний контейнер v3, достатній для виводу HotXLS
Версія 2.202.0
Додано
- Стан сортування автофільтра тепер має типізовану модель (
TXLSXSortStateз дочірнімиTXLSXSortCondition), що охоплює сортування за значенням / кольором комірки / кольором шрифту / піктограмою, метод сортування (немає / штрих / піньїнь), чутливість до регістру, сортування стовпців та списки налаштувань для кожної умови — тож застосунки можуть будувати стани сортування програмно замість редагування сирого XML, тоді як успадкований непрозорий прохідSortStateXmlвсе одно має перевагу для файлів, автором яких не є HotXLS - Динамічні фільтри тепер читаються та записуються як типізований
TXLSXDynamicFilterType(вище/нижче середнього та станд. відхилення, сьогодні/вчора/завтра, цього/останнього/наступного тижня, місяця, кварталу та року, накопичувальний за рік, Q1–Q4, M1–M12) з необов'язковими межамиval/maxVal— відкриття книги, що використовує динамічний фільтр, більше не втрачає його при збереженні
Версія 2.201.0
Додано
- Поверхневі та 3D поверхневі діаграми (
xlsxChartSurface/xlsxChartSurface3D) тепер є повноцінними типами діаграм — записуються, читаються та переносяться через цикл, як і інші сімейства діаграм - API авторування автоформ охоплює практичну підмножину списку фіксованих геометрій OOXML — трикутники, ромби, паралелограми, шестикутники, восьмикутники, стрілки, шеврони, винесення, вузли блок-схем, зірки, серця, сонце, місяць, дужки та фігурні дужки — кожен зі зіставленням із правильним маркером
prstта ідентифікатором форми[MS-ODRAW], тож авторські форми коректно відтворюються в Excel (повний список зі 187 фіксованих форм уже зберігався під час циклу через прохід сирих якорів)
Версія 2.200.0
Виправлено
- Відкриття книги, автофільтр якої використовує колірний чи піктограмний фільтр, більше не втрачає цей фільтр при збереженні —
colorFilterтаiconFilterтепер зчитуються у типізовані стовпці (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) і перевидаються дослівно замість втрати як невизнані дочірні елементи стовпця фільтра
Версія 2.199.0
Додано
TCondFormatRule.Evaluateвідповідає, чи спрацьовує правило умовного форматування для заданої комірки, охоплюючи порівняння значення комірки, вирази формул, «текст містить/починається/закінчується», порожнечу та правила помилок — основу для запиту того, які комірки правило наразі підсвічує, та для відтворення результатів УФ поза Excel
Змінено
FACTта внутрішні помічники факторіала тепер використовують попередньо обчислену таблицю 0!..170! замість повторного обчислення добутку O(n) при кожному виклику, прискорюючиFACT, мультиноміальні коефіцієнти та шляхи розподілів Пуассона/біноміального/хі-квадрат
Версія 2.198.0
Змінено
- Збереження аркуша тепер групує комірки в рядки за один прохід «порахуй-потім-заповни» замість нарощування індексу кожного рядка з realloc-на-комірку, усуваючи приховане копіювання O(комірки × комірок-на-рядок) на великих аркушах
- Граф залежностей формул тепер індексує свої діапазони посилань за (аркуш, рядок), тож ініціювання брудної комірки виконує двійковий пошук смуги кандидатів замість сканування кожної формули при кожній зміненій комірці — чим більша книга й чим більше в ній аркушів, тим значнішим є прискорення перерахунку
- Обхід комірок у порядку головування рядків із відсортованими стовпцями тепер надається як
TXLSXWorksheet.BuildRowMajorCellOrder, тож збереження, буфер обміну, автофільтр та інші рядково-впорядковані споживачі поділяють один обхід замість повторного його виведення
Версія 2.197.0
Виправлено
- Радарні, біржові та кругові-з-круговою/смужні-з-круговою діаграми більше не втрачаються, коли книгу
.xlsx, що містить їх, відкривають і повторно зберігають — зчитувач діаграм тепер розпізнає контейнерні елементиc:radarChart,c:stockChartтаc:ofPieChart, які він уже записує, відновлюючи симетричне покриття читання/запису SUBTOTALз кодами функцій 101–111 тепер виключає значення в прихованих рядах, аAGGREGATEтепер враховує свої коди опцій ігнорування прихованих рядків (2, 3, 6, 7), відповідаючи Excel замість однакового ставлення до варіантів «включати приховане» та «ігнорувати приховане»- Виклик функції фіксованої арності з більшою кількістю аргументів, ніж оголошено (наприклад
=SIN(1,2)) тепер централізовано викликає#VALUE!замість прийняття диспетчером
Версія 2.196.0
Виправлено
- Вставлення та видалення рядків і стовпців тепер розділяє умовні формати значення комірки та виразу плюс перевірки даних, коли відредаговані цільові ділянки вимагають різних якорів відносних формул, зберігаючи налаштування правил, призначаючи унікальні пріоритети умовного форматування та утримуючи агреговані домени умовного форматування недоторканими
Версія 2.195.2
Змінено
- Експорт у PDF тепер підрозділяє вбудований шрифт TrueType через API Windows
fontsub.dllCreateFontPackage, залишаючи лише гліфи, які документ насправді відтворив, замість вбудови цілого.ttf— зазвичай зменшуючи PDF у 8–20× для аркушів, перевантажених Unicode; за відсутності підрозділення відкатується до повної вбудови
Версія 2.195.1
Виправлено
- Вставлення чи видалення рядків і стовпців у класичному рушії
.xlsтепер перезаписує кожне посилання формул, яке зачепила зміна (формули комірок та визначені імена), щоб відповідати семантиці Excel — посилання нижче точки вставлення зміщуються, посилання повністю всередині видалення стають#REF!, а частково перекриті ділянки стискаються — замість залишення застарілих координат
Версія 2.195.0
Змінено
- Видалення стовпців таблиці тепер перетворює кожен зачеплений маркер структурованого посилання на
#REF!у формулах аркуша, формулах таблиці, визначених іменах та серіях діаграм, зберігаючи непов'язані посилання та рядкові літерали
Виправлено
- Видалення цілої таблиці більше не залишає кваліфіковані структуровані посилання, що вказують на таблицю, яка більше не існує
- Клоновані перевірки даних тепер зберігають свій режим введення IME
Версія 2.194.0
Змінено
- Редагування рядків і стовпців тепер утримують ідентифікатори стовпців таблиці Excel, імена, обчислювані формули, формули підсумків, стовпці фільтра, діапазони фільтра та умови сортування вирівняними з відредагованою таблицею
Виправлено
- Формули умовного форматування та перевірки даних тепер перебазують відносні та змішані посилання, коли видалення прибирає їхню першу цільову ділянку
- Стани сортування аркуша та таблиці тепер записують дійсні атрибути та відкидають умови, чиї діапазони було видалено
Версія 2.193.0
Змінено
- Редагування рядків і стовпців тепер оновлюють складні та міжобластні формули визначених імен, діапазони даних бульбашкових діаграм та основані на формулах пороги візуального умовного форматування
- Бульбашкові та точкові діаграми тепер відновлюють свої діапазони серій осі X, осі Y та розміру бульбашки під час повторного відкриття
Виправлено
- Багатоділянкові цілі умовного форматування та перевірки даних тепер зміщують кожну вцілілу ділянку незалежно замість залишення повного списку цілей без змін
- Якорі текстових полів та WordArt тепер переміщуються або змінюють розмір разом з.inserted and deleted рядками та стовпцями
Версія 2.192.0
Додано
- Потокові прямі зчитування та обхід рядковим курсором можуть opted у структуровані форматовані рядки з повним форматуванням серій, фонетичними серіями та фонетичними властивостями, зберігаючи обмежене сховище спільних рядків
TXLSDirectWriter.WriteRichStringзаписує форматований і фонетичний текст як вбудовані або дедупліковані спільні рядки
Змінено
- Дедуплікація форматованих спільних рядків тепер розрізняє форматування серій та фонетичні метадані, утримуючи звичайне інтернування рядків на його наявному швидкому шляху
Виправлено
- Фонетичний текст у вбудованих рядках більше не включається у відображене значення комірки
Версія 2.191.0
Додано
TXLSXRange.SetDynamicArrayFormulaтепер створює нативні формули динамічного масиву з повним ланцюгом метаданих Excel XLDAPR
Змінено
- Корені динамічного масиву тепер поділяють один дедуплікований запис метаданих книги, а міжкнижкові копії аркушів чи діапазонів перемаповують цей запис у книгу призначення
- Підтримувані метадані динамічного масиву залишаються доступними, коли збереження непідтримуваних частин пакета вимкнено, тоді як непов'язані метадані значень усе одно видаляються
Виправлено
- Комірки виливу динамічного масиву більше не моделюються як застарілі послідовники CSE, а заміна чи очищення кореня більше не залишає застарілих індексів метаданих
- Видалення фінального кореня динамічного масиву тепер прибирає невикористану частину метаданих, зв'язок книги та запис типу вмісту
Версія 2.190.0
Змінено
- Потокові прямі зчитування та обхід рядковим курсором тепер розгортають послідовників спільних формул у повні відносно-коміркові формули, зберігаючи проєкцію та поведінку обмеженої пам'яті
Виправлено
- Книги динамічного масиву тепер зберігають індекси метаданих комірок та значень, атрибути перерахунку формул, зв'язки пакета метаданих та незмінні префикси функцій-майбутнього під час циклів відкриття та збереження
- Вимкнення збереження непідтримуваних частин більше не залишає висячих індексів метаданих аркуша після видалення частини метаданих
Версія 2.189.0
Додано
- Відкриття книг XLSX тепер розгортає послідовників спільних формул у повні окремо-коміркові формули з правильними відносними, абсолютними, змішаними, діапазонними та аркуш-кваліфікованими посиланнями
Виправлено
- Самозакривальні послідовники спільних формул більше не захоплюють пізніші XML значень чи формул, а їхні кешовані результати переживають цикли відкриття та збереження
- Масивні формули CSE тепер зберігають свої якірні та послідовні зв'язки під час структурного редагування рядків чи стовпців, копіювання повних діапазонів, дублювання аркушів та міжкнижкового копіювання аркушів
- Призначення нормальної формули чи очищення комірки тепер прибирає застаріле членство в масиві CSE, тож обчислення не може бути перенаправлено на старий якір масиву
- Копіювання лише частини масиву CSE більше не створює висячих посилань послідовника у місці призначення
- Копіювання діапазону тепер робить знімок джерел, що перекриваються, та зміщує посилання відносних формул, запобігаючи перезапису вихідних комірок чи якорів масиву до їх копіювання
- Редагування рядків чи стовпців, що перетинають лише частину масиву CSE, відхиляються замість мовчазного зміни розміру чи від'єднання масиву
Версія 2.188.0
Додано
TXLSDirectReader.SharedStringMemoryLimitобмежує пам'ять декодованих спільних рядків і автоматично мігрує більші таблиці до індексованого тимчасового сховища «видалити-при-закритті» із кешем значень фіксованого розміруTXLSRowCursor.SharedStringMemoryLimitнадає те саме кероване сховище спільних рядків для рядкового обходу лише вперед
Змінено
- Пряме парсування спільних рядків тепер зберігає значення лише з пробілами, CDATA, сутності XML, символи поза BMP, порожні елементи та порядок серій форматованого тексту, виключаючи фонетичний текст-підказку з відображеного значення
Виправлено
- Відкриття книг XLSX тепер зберігає кожен елемент спільного рядка в порядку документа, запобігаючи згортанню дубльованого тексту чи інакше форматованих форматованих рядків у пізніші індекси комірок
- Збереження книг XLSX тепер дедуплікує форматовані рядки за межами серій та властивостями форматування замість лише видимого тексту, зберігаючи окремі форматування для комірок з однаковим відображеним значенням
Версія 2.187.0
Додано
TXLSDirectReader.FirstRowтаLastRowобмежують потокові зчитування діапазоном рядків з 1-базовою нумерацією та зупиняють парсинг аркуша після запитаного діапазонуTXLSDirectReader.IncludeColumnтаClearColumnProjectionзабезпечують проєкцію стовпців за сталий час, що пропускає невибрані комірки перед декодуванням значень та диспетчеризацією зворотних викликів
Версія 2.186.0
Додано
TXLSDirectWriter.UseSharedStringsможе дедуплікувати повторюваний текст у частину спільних рядків OOXML із точними загальною та унікальною кількістю, зменшуючи розмір пакета для даних, перевантажених повтореннямиTSimpleDomReaderзабезпечує компактне однопрохідне XML-дерево для запитів випадкового доступу до метаданих книги та частин пакета з чутливим до регістру пошуком за QName та локальним іменем
Змінено
- Пряме зчитування XLSX тепер використовує геш-асистовану диспетчеризацію точних елементів, однопрохідний збір атрибутів та сталий у часі пошук стовпця поточного рядка, зберігаючи потокову поведінку пам'яті
- Генерація XML спільних рядків тепер використовує буфер лінійного зростання, щоб уникнути повторних копіювань цілого рядка на великих таблицях відмінних рядків
Виправлено
- Експорт формул CSV більше не додає другий знак рівності, коли текст формули вже його містить
- Експорт XLSX у PDF більше не скорочує текст комірки за оцінкою кількості символів до компонування
- Геші імен зчитувача XML тепер відстежують інструкції обробки, атрибути та повернення до елементів-власників, не викривлюючи застарілий стан елементів
Версія 2.185.1
Виправлено
- Вставлення чи видалення рядків і стовпців тепер регулює локальні та міжаркушеві посилання формул рівно один раз, зберігаючи імена функцій та текстові літерали
Версія 2.185.0
Додано
TXLSPDFExportтепер надає вибір виводу з 1-базовимиFirstPageтаLastPage, повну логічнуPageCountта шість перевантаженьCalculatePageCountдля класичних і XLSX діапазонів, аркушів та книг без побудови об'єктів сторінок PDFTXLSXWorkbook.SaveWorkbookAsHTMLпублікує видимі аркуші в одному навігованому документі HTML зі стабільними якорями окремого аркуша, екранованими заголовками та іменами аркушів і опцією включення прихованих чи дуже прихованих аркушівTDataToXLS.BeforeRecordможе пропускати записи до виводу рядка, аBeforeValueможе трансформувати чи подавляти значення полів із контекстом набору даних, рівня деталей, поля-джерела та стовпця експортуTXLSWorkbookViewerвідкриває коментарі та гіперпосилання виділених комірок, викликає керований застосунком подією гіперпосилання, малює індикатори коментарів та шрифти, заливки й вирівнювання XLSX і нормалізує виділення та відтворення через об'єднані діапазони
Змінено
- Приклад ConversionWorkbench тепер може створювати вивід PDF та публікує всі видимі аркуші XLSX для цілей HTML, тоді як приклад WorkbookViewer демонструє навігацію об'єднаними комірками, коментарі та активацію гіперпосилань
Версія 2.184.0
Додано
- Діапазони класичного XLS та XLSX можуть копіювати табличний текст Unicode та стилізований HTML до буфера обміну Windows через
CopyToClipboard, зберігаючи формули, об'єднані комірки, посилання, форматування відображення та безпечно екрановані вбудовані табуляції, розриви рядків та лапки TXLSXWorkbookтепер зберігає користувацькі частини пакета, досяжні з невідомих зв'язків кореня пакета, книги, аркуша чи малюнка, включно з обробкою колізій ідентифікаторів зв'язків, типами вмісту, дочірніми зв'язками, вибором стиснення та точними байтами вмісту;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytesтаClearUnsupportedPartsвідкривають керування та діагностику- Збереження класичного XLS відкривають зворотні виклики початку, роботи та кінця зі скасуванням через
OnProgressEx, тоді якIXLSWorkbookProgressнадає структуровану діагностику зі стабільними кодами, серйозністю, операцією, контекстом аркуша, нативними значеннями, що повертаються, та деталями винятків TXLSXWorkbookтепер відкриває ті самі структуровані поверхніDiagnostics,LastDiagnosticтаOnDiagnosticдля звітності про збереження, відкриття, перерахування, скасування та винятки- Проаналізовані модулі VBA тепер підтримують редагування
SourceCodeта запис оновленого стисненого потоку модуля назад через класичне збереження XLS, автономне сховище VBA та збереження OOXML із підтримкою макросів, зберігаючи префікси потоку та недоторканий вміст проєкту - Класичні аркуші та колекції форм тепер відкривають типізовані елементи керування формою
TXLSCheckBox,TXLSComboBoxтаTXLSListBoxіз помічниками створення, мітками, інспекцією виду елемента керування, якорями комірок, видаленням та виявленням під час відкриття/збереження TXLSXRange.ApplyFormatPatchможе вибірково копіювати компоненти шрифту, заливки, межі, числового формату, вирівнювання та захисту з мозаїчним використанням шаблону-джерела, зберігаючи значення призначення та невибране форматуванняTDataToXLSможе рекурсивно експортувати пов'язані набори даних «майстер-деталь» черезReadDetailTablesтаIndentDetailTables, зберігаючи активні зв'язки даних, додаючи кожну таблицю деталей під записом майстра та успадковуючи параметри полів, заголовків та форматування на кожному рівніTXLSXWorksheet.AddWordArtстворює прив'язаний до комірки текст DrawingML із попередньо встановленим викривленням плюс настроюваний колір тексту та контуру, а шлях збереження сирого якоря малюнка зберігає повну форму WordArt у пізніших циклах відкриття/збереженняTXLSWorkbookViewerдодає VCL-переглядач аркушів для класичних та сучасних об'єктів книги із завантаженням файлів XLS, XLSX, XLSM, шаблонів та ODS, форматованим текстом комірок, класичними стилями, розміром рядків і стовпців, заголовками, відтворенням ліній сітки та виділення, смугами гортання, виділенням мишею, навігацією з клавіатури, позиціюванням комірок, перемиканням аркушів та подіями виділення чи аркуша- Нові приклади Delphi
FeatureShowcaseтаWorkbookViewerдемонструють стилізований друк PDF, заголовки друку, ручні розриви, класичні елементи керування формою, вибіркові патчі формату, WordArt, діагностику, створення переглядача під час виконання, завантаження файлів, навігацію комірками, перемикання аркушів та події переглядача з відповідними англійськими посібниками та темами довідки розробника
Змінено
- Експорт PDF класичних XLS та сучасних книг, аркушів та діапазонів XLSX тепер записує кожен видимий аркуш в один документ, пропускає приховані та діаграмні аркуші, відтворює суцільні заливки, кольори шрифтів, розміри шрифтів, акценти жирного та курсиву, горизонтальне та вертикальне вирівнювання, явні межі комірок та необов'язкові лінії сітки аркуша, прямує за областю друку кожного аркуша, розміром паперу, орієнтацією, полями, масштабом, налаштуванням «вмістити-у-ширину», шириною стовпців, фактичними висотами рядків, ручними розривами сторінок у рядках і стовпцях, повторюваними рядками та стовпцями заголовків і тричастинними колонтитулами з полями сторінки, загальної кількості сторінок, імені аркуша, дати та часу, розбиває широкі та високі діапазони на обох осях, видає незалежний від локалі числовий синтаксис PDF та вбудовує відповідний шрифт TrueTexture та карту ToUnicode для тексту поза WinAnsi
- Розширені зворотні виклики поступу XLSX тепер отримують надійні стани початку, роботи та кінця для збереження, відкриття та перерахунку, тоді як застарілий зворотний виклик залишається лише для роботи й кожна операція скидає попередній стан скасування
- Серіалізація класичного XLS тепер поширює збої аркуша, діаграми, розширення стилю, VBA, потоку керування, сховища та фіксації виводу замість повідомлення про успіх, а збереження файлів готують повний складений файл до атомарного заміщення місця призначення
- Збереження файлів XLSX та ODS тепер будують повний сусідній тимчасовий пакет та атомарно замінюють місце призначення лише після успішного завершення, залишаючи наявні файли без змін після скасування чи збою
Версія 2.183.0
Додано
TXLSDirectWriterтепер підтримує багаторазові дескриптори стилю комірки на рівні пакета та клонування стилю без буферизації рядків аркуша; той самий індекс стилю можна застосувати до будь-якої кількості комірок або повторно використовувати між аркушами- Прямі стилі комірок забезпечують 30 можливостей форматування, що охоплюють ім'я шрифту, розмір, колір BGR, жирний, курсив, закреслення, контур, тінь, п'ять режимів підкреслення, 19 шаблонів заливки з кольорами переднього/заднього плану, п'ять незалежно забарвлених країв межі з 14 стилями ліній та діагональними напрямками, вбудовані чи користувацькі числові формати, горизонтальне та вертикальне вирівнювання, перенесення, стиск-до-розміру, відступ, обертання тексту, префікси лапок та захист заблокований/прихований
- Стилізовані перевантаження доступні для рядків, чисел, булевих значень, дат, формул, помилок та кожного типу кешованого результату формули, дозволяючи експортерам великого обсягу обирати попередньо побудований стиль за цілочисловим індексом під час послідовних записів
Змінено
- Прямий записувач дедуплікує рівні компоненти шрифту, заливки, межі та числового формату під час побудови
styles.xml, зберігаючи стабільні індекси стилю комірки, вже записані в потоки аркуша - Згенеровані таблиці стилів прямого записувача тепер включають стандартні заливки за замовчуванням
noneтаgray125перед користувацькими заливками для суворішої сумісності з OOXML
Версія 2.182.0
Додано
TXLSDirectWriterтепер записує умовне форматування, зберігаючи профіль пам'яті, незалежний від кількості рядків, із вісьмома операторами значення комірки, правилами виразів, правилами тексту «містить/не містить/починається з/закінчується на», правилами найкращих чи найгірших значень та відсотків, правилами вище чи нижче середнього, дубльованими та унікальними значеннями, порожніми та непорожніми комірками, комірками з помилкою та без помилки, смугами даних, дво- та трикольоровими шкалами та всіма 17 базовими сімействами наборів піктограм- Прямі правила умовного форматування підтримують явні пріоритети, оцінку «зупинитися-якщо-істина», опції середньо-стандартного відхилення та рівності, заміну порогу піктограм, відображення лише піктограм та реверс, видимість значень смуг даних, кольори BGR та диференційні стилі заливки, кольору шрифту, жирного та курсиву
Змінено
- Прямий записувач дедуплікує еквівалентні диференційні стилі між аркушами та зберігає лише правила та стилі умовного форматування, тож використання пам'яті масштабується з кількістю правил, а не з кількістю рядків аркуша
- Автоматичні пороги мінімуму та максимуму смуг даних нормалізуються до стандартних маркерів
minтаmaxу базовому елементі OOXML для широкої сумісності з електронними таблицями
Версія 2.181.0
Додано
TXLSDirectWriterтепер записує захист аркуша та книги без буферизації даних аркуша, включаючи 15 дрібнозернистих дозволів аркуша, застарілі верифікатори паролів, сучасні метадані гешу, редаговані захищені діапазони з необов'язковими паролями чи дескрипторами безпеки, блокування структури та вікна книги, призначення сирого верифікатора та очищення захисту
Виправлено
- Непідтримувані якорі малюнка тепер зберігають кожен елемент, що закривається, під час реконструкції для виводу циклу, тож малюнки, що складаються лише з форм, залишаються коректно сформованими після відкриття та збереження
- Дозволи захисту аркуша XLSX тепер дотримуються визначення заблокованого прапорця OOXML, тож дозволені дії записують
0, заборонені дії записують1, а пропущені атрибути відкриваються зі своїми схемними значеннями за замовчуванням - Застарілі паролі аркуша, захищеного діапазону та книги XLSX тепер використовують Excel-сумісний алгоритм 16-бітового верифікатора з ANSI-перетворенням та 15-байтовим лімітом
Версія 2.180.0
Додано
- Модель аркуша XLSX тепер переносить через цикл елементи Диспетчера сценаріїв «Що-якщо» (
<scenarios>) та Консолідації даних (<dataConsolidate>). Нові властивості сирого XMLScenariosXmlтаConsolidateXmlнаTXLSXWorksheetпереносять внутрішній вміст дослівно — записувач видає елементи-обгортки, а зчитувач розбирає дочірні елементи сценаріїв/консолідації даних назад. Файли фінансового моделювання, що визначають сценарії чи визначення консолідації, більше не втрачають їх під час циклу
Версія 2.179.0
Додано
- Новий помічник
XlsxBuildNumFmtбудує коди числових форматів OOXML із семантичних властивостей —Decimals,Thousands(роздільник),NegativeRed(червоні від'ємні),CurrencySymbolтаPercent. Викликувачам більше не потрібно вручну писати рядки формату на кшталт"$#,##0.00;[Red]-$#,##0.00"— будівник створює їх із простих параметрів. Призначено для використання зCell.NumberFormatабоWorkbook.NumberFormats.Add
Версія 2.178.0
Додано
- Модель аркуша XLSX тепер переносить через цикл кодове ім'я VBA (
<sheetPr codeName="..."/>), що є важливим для VBA-взаємодії, де проєкт VBA посилається на аркуші за кодовим іменем. Нова властивістьCodeNameнаTXLSXWorksheet - Коментарі тепер підтримують перемикач видимості
AlwaysShowнаTXLSXComment— коли True балон коментаря завжди видимий (перемикач Excel «Показати/Приховати коментар» для окремого коментаря), а не лише при наведенні - Перевірка даних тепер переносить через цикл атрибут режиму IME (
imeMode) наTXLSXDataValidation. Перелік із 11 значень керує поведінкою методу введення CJK при вході в комірку (noControl / off / on / hiragana / fullKatakana / тощо). Важливе для файлів японської/корейської/китайської локалей - Модель аркуша отримує властивість
PaneStateдля атрибута стану панелі на<pane>, що виходить за межі наявної обробки замороженого режиму — підтримує станиfrozenSplit(заморожено-потім-прокрутнуто) таsplit
Версія 2.177.0
Додано
- Три раніше зареєстровані, але не реалізовані функції аркуша тепер мають повну диспетчеризацію:
DOLLAR(текст, форматований як валюта),FIXED(текст з фіксованою кількістю десяткових з необов'язковим придушенням коми) таAREAS(кількість ділянок у посиланні). Раніше вони були зареєстровані вInitFuncHash, але не мали варіанта в рушії обчислень — обчислення=DOLLAR(...)мовчазно повертало неправильні результати - Модель аркуша XLSX тепер переносить через цикл масштаби масштабування для окремих типів перегляду (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), колір ліній сітки (sheetView color) та прапорці відображення перегляду аркуша (showFormulas/showZeros). Нові властивості наTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - Напрямок підсумку структури тепер переноситься через цикл. Нові властивості
SummaryBelow,SummaryRightтаShowOutlineSymbolsнаTXLSXWorksheetкерують тим, чи з'являються підсумкові рядки/стовпці нижче/праворуч від деталей та чи видимі символи структури. Записувач видає<outlinePr>усередині<sheetPr>; зчитувач розбирає його назад - calcPr книги тепер несе атрибути
forceFullCalcтаcalcCompletedпоряд з наявним тріоcalcId/fullCalcOnLoad/calcMode/iterate
Версія 2.176.0
Додано
- Рушій формул XLSX тепер розв'язує структуровані посилання на таблиці перед компіляцією. Новий метод
ResolveStructuredRefsнаTXLSXWorkbookсканує текст формули на наявність шаблонівTableName[ColumnSpec]та замінює їх конкретними посиланнями на діапазон A1, використовуючи колекціюTXLSXTableкниги. Підтримувані специфікації включають діапазон даних стовпця (Sales[Qty]), стовпець поточного рядка (Sales[@Total]), усі дані (Sales[#Data]/Sales[#All]), заголовки (Sales[#Headers]) та рядок підсумків (Sales[#Totals]). Розв'язання виконується автоматично всерединіGetCompiledFormula— наявні формули не зачеплені, оскільки нетабличні ідентифікатори залишаються дослівно. Раніше структуровані посилання призводили до збою компіляції формули
Версія 2.175.0
Додано
- Рушій формул тепер підтримує компіляцію формул у стилі посилань R1C1. Новий метод
GetCompiledFormulaR1C1наTXLSCalculator(таGetCompiledR1C1наTXLSFormula) приймає формулу, написану в нотації R1C1 (R2C3для абсолютних,R[-1]C[2]для відносних,RCдля поточної комірки) та компілює її, спочатку перетворюючи на нотацію A1 з використанням рядка/стовпця комірки формули. Автономна функціяR1C1ToA1виконує перетворення — вона виявляє маркериR/C, що є самостійними (не частиною імені функції, як ROUND), парсить необов'язкові взяті в дужки зсуви та видає еквівалентне посилання A1. Рядкові літерали та ідентифікатори пропускаються. Раніше можна було компілювати лише формули у стилі A1
Версія 2.174.0
Додано
- Вивід AutoFilter записувача
TXLSDirectWriterтепер підтримує стовпці фільтра аркуша та таблиці, фільтри значень, фільтри порожніх, фільтри групування дат, користувацькі фільтри порівняння, динамічні фільтри, фільтри найкращих/найгірших, прапорці кнопок фільтра, стани сортування, умови сортування, екранування XML та придушення дубльованих діапазонів фільтра аркуша/таблиці під час потокового запису файлів XLSX
Версія 2.173.0
Додано
- Вивід таблиць записувача
TXLSDirectWriterтепер підтримує коментарі до таблиць, підрахунки рядків підсумків, мітки рядків підсумків стовпців, функції рядків підсумків стовпців, формули обчислюваних стовпців, формули рядків підсумків та екранування XML для метаданих стовпця таблиці під час потокового запису файлів XLSX
Версія 2.172.0
Додано
TXLSDirectWriterтепер записує частини таблиць Excel під час потокового запису файлів XLSX, включаючи зв'язки таблиць аркуша, типи вмісту частин таблиць, діапазони таблиць, імена стовпців, прапорці рядка заголовка та рядка підсумків і прапорці відображення вбудованих стилів таблиць без побудови повної об'єктної моделі книги
Версія 2.171.0
Додано
TXLSDirectWriterтепер записує перевірки даних аркуша під час потокового запису файлів XLSX, включаючи списки, цілі числа, десяткові, дати, час, довжину тексту, користувацькі формули, довільнийsqref, підказки, сповіщення про помилки, дозвіл порожніх, спадні списки та прапорці вхідних/помилкових повідомлень без побудови повної об'єктної моделі книги
Версія 2.170.0
Додано
TXLSDirectWriterтепер записує визначені імена книги та локальні для аркуша під час потокового запису файлів XLSX, включаючи приховані імена, коментарі, згенеровані абсолютні діапазони, області друку, рядки заголовків друку, стовпці заголовків друку, комбіновані заголовки друку, посилання з екранованими іменами аркушів, екранування XML та семантику заміщення для повторюваних встановлювачів імен друку без побудови повної об'єктної моделі книги
Версія 2.169.0
Додано
TXLSDirectWriterтепер записує гіперпосилання аркуша під час потокового запису файлів XLSX, включаючи зовнішні URL, mailto та зв'язки файлів, внутрішні розташування аркуша, текст відображення, підказки, діапазони гіперпосилань окремих чи множинних комірок, нормалізацію URL «голих»www., екранування XML та відсотково-кадровані цілі зв'язків без побудови повної об'єктної моделі книги
Версія 2.168.0
Додано
TXLSDirectWriterтепер записує метадані друку та перегляду аркуша під час потокового запису файлів XLSX, включаючи перемикачі відображення ліній сітки та заголовків рядків/стовпців, поля сторінки, текст непарних колонтитулів, друк ліній сітки та заголовків, центрування сторінки, розмір паперу та альбомну орієнтацію, розміри «вмістити-у-сторінку» та ручні розриви сторінок у рядках чи стовпцях без побудови повної об'єктної моделі книги
Версія 2.167.0
Додано
TXLSDirectWriterтепер записує метадані компонування аркуша під час потокового запису файлів XLSX, включаючи розміри стовпців та рядків за замовчуванням, користувацькі ширини стовпців, приховані рядки та стовпці, об'єднані діапазони, діапазони AutoFilter, заморожені панелі, кольори вкладок аркуша та перегляди аркуша справа наліво без побудови повної об'єктної моделі книги
Версія 2.166.0
Додано
- Потокові робочі процеси XLSX тепер включають виведення списку імен аркушів без сканування аркушів, вибір аркуша курсором рядків за іменем, потокову передачу сирих числових дат, повторне використання прямого записувача, запис комірок помилок та записувачі кешованих результатів формул для чисел, рядків, булевих значень, дат та помилок
Версія 2.165.0
Виправлено
TXLSDirectReader.ReadStreamтепер відновлює позицію потоку викликувача після прямого сканування, відповідаючи задокументованій контракті потоку та дозволяючи застосункам повторно використовувати той самий потік після проходу прямого зчитування
Версія 2.164.0
Додано
- Експорт наборів даних
TDataToXLSтепер підтримує списки рядківIncludeFieldsтаExcludeFields. Застосунки можуть додавати до білого списку експортовані поля, пропускати чутливі стовпці та утримувати заголовки, рядки даних, ширини стовпців і зворотні виклики експорту вирівняними з вибраним набором полів
Версія 2.163.0
Додано
- Експорт CSV отримує настроюване цитування тексту між рушіями XLS та XLSX.
TXLSWorkbookтепер відкриваєCSVEmitFormulasтаCSVQuoteAllStrings, аTXLSXWorkbookдодаєCSVQuoteAllStrings. Коли ввімкнено, експорт формул записує текст формули, а рядкові поля цитуються, тоді як числові, датові, булеві, Null та порожні поля зберігають звичайні правила цитування
Версія 2.162.0
Додано
- Рушій XLSX отримує систему перерваних подій поступу. Новий зворотний виклик
OnProgressExнаTXLSXWorkbookзапускається поруч з наявнимOnProgressіз трьома покращеннями: (1) параметрTXLSXProgressState(ppsBegin/ppsWork/ppsEnd), що облямовує кожну фазу, тож інтерфейси знають, коли операція починається та завершується; (2) параметр-зміннаAbort: Boolean, що дозволяє зворотному виклику скасувати поточну операцію посеред потоку — цикли читання/запису/обчислення перевіряютьWorkbook.Abortedта чисто виходять; (3) нова фазаxlsxProgressExportingдля операцій експорту (HTML/RTF/CSV/ODS). Допоміжний методFireProgressцентралізує диспетчеризацію подвійного зворотного виклику. ПрапорецьFAbortedскидається на початку кожної операції верхнього рівня (Open / SaveAs / Recalculate)
Версія 2.161.0
Додано
- Модель діаграми XLSX тепер підтримує чотири нові елементи діаграми для сильнішої сумісності з Excel. Таблиця даних діаграми (
c:dTable):TXLSXChartотримує перемикачіShowDataTable+ShowDataTableKeys— коли ввімкнено, записувач видає елемент таблиці даних усередині області побудови, тож Excel відтворює вихідні дані як сітку під віссю діаграми. Поверхневі бари вгору/вниз + лінії високий-низький (елементи біржової/OHLC діаграми):TXLSXChartотримуєHasUpDownBars+UpDownGapWidthтаHasHiLowLines— записувач видаєc:upDownBarsтаc:hiLowLinesвсередині елемента діаграми (лінійні/біржові діаграми). Елементи керування 3D-переглядом:TXLSXChartотримуєRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— записувач видаєc:view3Dна рівні діаграми, коли будь-яка 3D-властивість відрізняється від значення за замовчуванням. Раніше жоден із цих елементів не видавався, тож діаграми, побудовані з таблицями даних, елементами біржової діаграми чи 3D-переглядами, втрачали їх під час циклу
Версія 2.160.0
Додано
- Посилання у формулах тепер регулюються автоматично під час вставлення або видалення рядків чи стовпців у рушії XLSX. Метод
ShiftSheetGeometry— викликанийInsertRows/DeleteRows/InsertCols/DeleteCols— тепер обходить кожну комірку формул, що вижила, та перезаписує її посилання A1, щоб відобразити структурну зміну. Новий текстовий сканерXlsxAdjustFormulaRowColRefsвиявляє посилання окремих комірок (A1,$B$2) та діапазонні посилання (A1:B3), зміщує їхні компоненти рядків/стовпців за точкою вставлення та перетворює видалені посилання на#REF!. Зміщуються як відносні, так і абсолютні посилання (відповідаючи поведінці Excel). Раніше формули мовчазно залишалися вказуючими на неправильні комірки після структурного редагування
Версія 2.159.0
Додано
- Стан сортування автофільтра тепер переноситься через цикл у рушії XLSX.
TXLSXWorksheetотримує властивістьSortStateXml, що несе сирого внутрішнього XML елемента OOXML<sortState>(напрямок сортування стовпця, чутливість до регістру, метод сортування та кожна<sortCondition>зі своїм прапорцем спадання + посиланням). Записувач видає елемент після<autoFilter>; зчитувач розбирає атрибути та умови сортування назад. Раніше стан сортування мовчазно відкидався під час читання та ніколи не записувався - Налаштування CJK-фонетики/ruby тепер переносяться через цикл у рушії XLSX.
TXLSXWorksheetотримуєPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) таPhoneticAlignment(left / center / distributed). Записувач видає<phoneticPr>після<sheetData>; зчитувач розбирає атрибути назад. Раніше фонетичний елемент мовчазно відкидався під час читання — файли японського ринку втрачали свої налаштування допомоги читання фурігани
Версія 2.158.0
Додано
- Рушій XLSX тепер переносить через цикл таблицю іменованих стилів комірки (
<cellStyles>). Новий класTXLSXNamedStyle+ колекціяTXLSXNamedStylesнаTXLSXWorkbookнесе повну поверхню:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. Записувач видає один<cellStyle>на кожен запис, коли колекція непорожня; зчитувач розбирає їх назад. Раніше записувач жорстко кодував один запис"Normal", а зчитувач відкидав усі іменовані стилі, тож файли зі стилями «Добре»/«Погано»/«Підсумок»/з користувацькими іменами втрачали ці імена під час циклу
Версія 2.157.0
Додано
- Рушій XLSX тепер переносить через цикл повний елемент
<calcPr>, а не лише перемикачі ітераційного обчислення.TXLSXWorkbookотримуєCalcId(ідентифікатор рушія обчислень, що Excel використовує для визначення, чи застаріли кешовані значення),FullCalcOnLoad(змусжає Excel виконати повний перерахунок при відкритті — критично для книг, створених не-Excel рушіями) таCalcMode(auto / manual / autoNoTable). Записувач видає відповідні атрибути на<calcPr>; зчитувач розбирає їх назад. Раніше оброблялися лишеiterate/iterateCount/iterateDelta, а решта мовчазно відкидалася
Версія 2.156.0
Додано
- Оцінювач формул тепер реалізує 37 функцій аркуша, які раніше були зареєстровані (ptg призначено в InitFuncHash), але не мали реалізації диспетчеризації — вони провалювалися до
#NAME?. Нові реалізації охоплюють п'ять сімейств функцій: Регресія (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Амортизація (SLN,SYD,DB,DDB,VDB), Описова статистика (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Масивне попарне (SUMXMY2,SUMX2MY2,SUMX2PY2) та Комбінаторика/Математика (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Функції регресії використовують розв'язувач найменших квадратів; функції амортизації реалізують методи прямої лінії, суми років цифр та знижувального балансу; функції описової статистики обчислюють середнє абсолютне відхилення, ексцес, асиметрію, геометричне/гармонічне/урізане середнє; а попарні функції обчислюють суму квадратів різниць між двома рівномірними діапазонами. Новий помічникCollectRangeValuesнаTXLSCalculatorвитягує числові значення з аргументів діапазону для статистичних функцій
Версія 2.155.0
Додано
- Оцінювач формул тепер підтримує п'ять додаткових статистичних та інженерних імен сумісності:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTтаF.TEST.ERFCдоповнює наявну серію функцій помилок,BINOM.INVшукає поріг біноміального CDF,CHI.INV.RTаліасує правостороннє обернене хі-квадрат, аF.TESTповертає двостороннє p-значення вибіркової дисперсії
Версія 2.154.0
Додано
- Оцінювач формул тепер розв'язує міжкнижкові посилання через новий зворотний виклик
OnGetExternalValueнаTXLSCalculator. Коли 3D-діапазонне посилання вказує у зовнішню книгу ([1]Sheet1!A1), оцінювач прямує через зворотний виклик замість повернення#REF!. Рушій XLSX під'єднує цей зворотний виклик доGetExternalCellValue, що зівставляє індекс SupBook + індекс аркуша з кешем<sheetDataSet>відповідногоTXLSXExternalLinkта декодує кешоване значення комірки за його OOXML-атрибутом типу (числовий / булевий / рядковий / помилка). Раніше міжкнижкові формули безумовно повертали#REF!; інфраструктура зворотних викликів тепер дозволяє будь-якому рушію (BIFF8, XLSX або користувацькому хосту калькулятора) надавати зовнішні значення - Оцінювач формул тепер виконує поелементне транслювання масиву на бінарних операторах (
+/-/*///^). Коли будь-який операнд є одновимірним чи двовимірним масивом варіантів (наприклад, результат матричної функції, виливаючийся діапазон або операнд масиву CSE), оператор застосовується елемент за елементом; скалярний операнд транслюється на кожен елемент масивового операнда. Новий помічникApplyArrayBinaryOpобробляє перевірку форми, скалярне транслювання та поширення ділення на нуль. Звичайна скалярна арифметика без змін — масивний шлях активується лише тоді, коли принаймні один операнд є масивом варіантів - Оцінювач формул тепер розпізнає функцію
TABLE(Аналіз «Що-якщо» DataTable). Excel зберігає таблиці даних як формули масивів CSE, тілом яких єTABLE(rowRef, colRef); ранішеTABLEне розпізнавалася та провалювалася до#NAME?. Функція зареєстрована з синтетичним ptg (ftabTABLE = 4232), тож вона переноситься через цикл кодуванням формул BIFF8, а під час оцінки повертає значення-заповнювач (0) — справжні результати попередньо обчислені Excel та збережені як кешовані значення комірок, тож HotXLS не переобчислює логіку підстановки
Версія 2.153.0
Додано
- Типізована модель зведеної таблиці тепер несе типізовані властивості осі сторінки (Hier / Caption / Name), область автосорту та гачки циклу сирого XML для
<formats>та<extLst>, потрібні для повнішої сумісності з Excel.TXLSPivotFieldотримуєPageHier/PageCaption/PageName(F16 — ім'я ієрархії OLAP + мітка осі сторінки + відображене ім'я) таAutoSortScope(F20 — посилання на діапазон A1, що прив'язує комірки, які Excel використовує для автосортування елементів поля);TXLSPivotTableотримуєFormatsXml/ExtLstXml(F17 — цикл сирого внутрішнього XML для блоку перевизначень УФ/числового формату<formats>та блоку<extLst>зрізів/часової шкали/x14, що видається дослівно, коли встановлено, тож цикл безпечний навіть між версіями рушія). Записувач XLSX видає відповідні атрибути<pageField hier=... cap=... name=.../>, дочірній елемент<autoSortScope>від<pivotField>та блоки<formats>+<extLst>перед завершальним сентинелем - Трасувальник формул тепер записує знімки стеку операндів на кожному кроці, забезпечуючи справжній покроковий відлагоджувач «Оцінити формулу».
TXLSFormulaStepотримуєStepKind(push / reduce / function),StackBefore/StackAfter(розділені комами знімки стеку операндів у момент початку/завершення кожного кроку) таTokenStart/TokenEnd(1-базований символьний проміжок, що прив'язує крок назад до вихідної формули).TXLSFormulaTracerотримуєTraceReversed(повертає ті самі кроки у зворотному порядку обчислення — корисно для покрокового інтерфейсу, що йде від фінального результату до вихідних операндів) та властивістьStepCount. Раніше трасувальник записував лише Depth / Source / Expression / Value без стану стеку - Експорт у HTML тепер вбудовує зображення окремих комірок через новий зворотний виклик
OnCellImageнаTXLSHTMLExportта нову опціюxhImages. Коли опція встановлена та зворотний виклик під'єднано, експортер запитує у реалізатора фрагмент<img>для кожної комірки (зазвичай Base64 data-URI) та додає його після тексту комірки. Це відокремлює експортер від сховища зображень BIFF8 рушія XLS (яке живе в записі MsoDrawing окремого аркуша), тож експортеру не потрібно парсити якорі самому. Експорт у HTML рушія XLSX уже вбудовував зображення; це закриває прогалину для рушія XLS - Імпорт RTF тепер застосовує властивості символів (жирний / курсив / підкреслення / закреслення / розмір) з керуючих слів RTF до шрифту комірки призначення.
TXLSRTFImportвідстежує\b/\i/\ul/\strike/\fsчерез документ та проштовхує форматування домінуючої серії у XF комірки під час фіксації. Нова властивістьImportCharFormat(за замовчуванням True) перемикає поведінку; встановіть False, щоб відновити застарілий імпорт лише тексту. Багатосерійні комірки згортаються в єдиний XF (перемагає остання активна серія), оскільки API комірок рушія XLS працює на рівні комірки, а не на рівні фрагмента — але це набагато краще, ніж відкидати все форматування, як робив застарілий імпортер - Новий клас
TXLSHTMLImportпарсить таблиці HTML у комірки аркуша. Він обходить першу<table>у джерелі, видаючи один рядок аркуша на<tr>та одну комірку на<td>/<th>. Шануєcolspan/rowspan(об'єднання в стилі Excel), відкидає теги всередині комірки (стискаючи вкладене форматування у простий текст), декодує п'ять стандартних символьних сутностей (&/</>/"/'/ ) та числові форми&#NNN;/&#xNN;, та перетворює чисті числові рядки на Double, тож імпортовані таблиці залишаються обчислюваними. Призначено для виводу, який сам HotXLS створює (SaveAsHTML), плюс таблиці HTML загальної якості копіювання-вставки; не є повноцінним парсером HTML5
Версія 2.152.0
Додано
- Таблиці XLSX тепер зберігають метадані підсумків на рівні стовпця та формули таблиць.
TXLSXTableвідкриваєColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]таColumnTotalsRowFormulas[];SaveAsвидає відповідний XML стовпця таблиціtotalsRowFunction,totalsRowLabel,calculatedColumnFormulaтаtotalsRowFormula,Openчитає їх назад, а клони таблиць зберігають їх
Версія 2.151.0
Додано
- Типізована модель зведеної таблиці тепер несе колекцію фільтрів окремого поля, перемикач мультивибору, поверхню fieldGroup discretePr + groupItems та модель обчислюваних елементів / обчислюваних членів, потрібні для повнішої сумісності зі зведеними таблицями.
TXLSPivotFieldотримує типізовану колекціюTXLSPivotFilters(кожен запис несеFilterTypeчерез 80-членний перелік OOXMLST_FilterType— сімейства count / percent / sum / caption / value / date — плюсValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), перемикачMultipleItemSelectionAllowed(F9) та колекціюTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldотримуєDiscreteIndices[]+AddDiscreteIndexтаGroupItemLabels[]+AddGroupItemдля блоків fieldGroup discretePr + groupItems (F13).TXLSPivotTableотримує колекціюTXLSPivotCalculatedMember(F14). Записувач XLSX видає відповідний<pivotField multipleItemSelectionAllowed="1">, блок окремого поля<filters><filter .../>, елемент<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, блок окремого поля<calculatedItems>та блок на рівні таблиці<calculatedMembers>— тож програмно побудовані зведені таблиці з фільтрами / мультивибором / групуванням / обчислюваними елементами переносяться через цикл
Версія 2.150.0
Додано
- Визначені імена тепер зберігають свій текст формули дійсним, коли аркуш, на який вони посилаються, видаляється чи перейменовується. Видалення аркуша перезаписує кожен кваліфікатор
SheetN!усередині формули визначеного імені на#REF!(відповідаючи поведінці Excel); перейменування аркуша перезаписує кваліфікатор на нове ім'я. Раніше текст формули продовжував вказувати на неіснуюче ім'я аркуша, яке Excel потім позначав як розірване посилання при повторному відкритті - Типізована модель зведеної таблиці тепер несе порядок сортування на рівні поля та перемикачі компонування плюс атрибути компонування / відображення на рівні таблиці, потрібні для повнішої сумісності компонування зведеної таблиці.
TXLSPivotFieldотримуєSortType(ручний / висхідний / низхідний),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTableотримуєCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesплюсRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissingта пару компонування осі сторінкиRowPageCount/ColPageCount. Записувач XLSX видає відповідні атрибути<pivotField sortType=... compact=... outline=...>та<pivotTableDefinition indent=... outline=... showEmptyRow=...>і елемент<location rowPageCount=... colPageCount=.../>, тож програмно побудовані зведені таблиці несуть встановлене користувачем компонування замість значень Excel за замовчуванням - Новий метод
FormulaIsVolatileнаTXLSWorkbookповідомляє, чи змусить формула перерахунок при кожному проході обчислення — тобто вона викликає волатильну функцію (NOW / RAND / TODAY / OFFSET / INDIRECT) чи несе нерозв'язне посилання. Зонд поділяє той самий екстрактор залежностей, що й рушій перерахунку, тож відповідь відповідає тому, що насправді робитьRecalculate. Викликувачі можуть використовувати його для позначення комірок для інтерфейсу перевірки, для заповнення набору волатильності ланцюга обчислення у новій книзі або для пропуску кешування результату щойно введеної формули
Версія 2.149.0
Додано
- Кеші зведених таблиць тепер можна оновлювати з їхнього діапазону-джерела програмно. Новий метод
RefreshPivotCache(ACacheId)наTXLSXWorkbookповторно сканує діапазон-джерело кешу, перебудовує домен спільних елементів окремого поля (повторно дедуплікуючи значення та повторно виводячи межі окремого типу) та перезаписує індекси елементів окремого запису. Раніше HotXLS покладався на жорстко кодований прапорецьrefreshOnLoad="1"та відкладав усю роботу оновлення на Excel під час наступного відкриття; тепер програмні конвеєри можуть оновлювати в процесі
Версія 2.148.0
Додано
InsertColsу рушії XLSX тепер успадковує ширину стовпця від лівого сусіда, відповідаючи типовій поведінці Excel для «вставити стовпець». Раніше вставлений стовпець отримував ширину книги за замовчуванням, створюючи видиму прогалину точності після повторного відкриття- Рушій XLSX отримує помічники згортання структури
ToggleColGrouped/ToggleRowGroupedнаTXLSXWorksheet, які обходять дерево структури та згортають чи розгортають групу на заданому рівні. Самі прапорці згортання вже переносилися через цикл; це додає відсутній зручний API обходу дерева
Версія 2.147.0
Додано
- Експорт у HTML тепер видає якорі
<a name>у комірках, які є цілями внутрішніх гіперпосилань, тож гіперпосилання#SubAddressрозв'язуються коректно, коли читач клацає їх. Раніше посилання видавалися, але цілі не мали якорів, тож внутрішні переходи ні до чого не розв'язувалися - Експорт CSV отримав властивість
CSVEmitFormulasнаTXLSXWorkbook. Коли True, комірки формул експортують свій текст формули (=SUM(A1:A2)) замість обчисленого значення — корисно для відлагодження та для конвеєрів, які повторно імпортують в інший рушій - URL-адреси зовнішніх гіперпосилань тепер відсотково-кодуються при записуванні (
XlsxEncodeHyperlinkUrl): пробіл, кутові дужки, лапки, фігурні дужки, каналні, зворотні скісні риски, карети та гравіси кодуються як%XXв атрибуті<Relationship Target="..."/>, тож файл коректно відкривається в кожному браузері. Наявні відсотково-кадровані послідовності (%20) зберігаються як є - Інформація стилю зведеної таблиці тепер несе повну поверхню
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnнаTXLSPivotTable. Записувач XLSX видає відповідний елемент, тож програмно побудовані зведені таблиці несуть обраний користувачем стиль смуг замість жорстко кодованого за замовчуванням - Новий метод
CalculateAndVerifyнаTXLSXWorkbookповторно обчислює кожну комірку формули та порівнює обчислений результат з кешованим значенням комірки. Повертає кількість невідповідностей (0 = усі кешовані значення відповідають свіжому обчисленню рушія; волатильні формули виключені). Корисно для QA під час перенесення книг між рушіями або перевірки, що записувач не пошкодив кешовані значення
Версія 2.146.0
Додано
- Рушій XLSX тепер підтримує ітераційне обчислення циклічних посилань (ітераційний режим обчислення Excel). Нова трійка властивостей
Iterate/IterateCount/IterateDeltaнаTXLSXWorkbookкерує поведінкою: колиIterate=Trueта цикл посилань виявлено під часRecalculate, рушій повторно обчислює комірки-члени циклу доIterateCountразів (за замовчуванням 100) або поки зміна кожної комірки не стане< IterateDelta(за замовчуванням 0.001) замість повернення#REF!. Налаштування переносяться через цикл через елемент OOXML<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. Фінансові моделі з навмисними циклічними посиланнями (відсоток-на-відсоток, циклічні розподіли) тепер збігаються замість помилок - Поля кешу зведеної таблиці тепер несуть модель групування для групування числового діапазону та ієрархії дат.
TXLSPivotCacheFieldотримуєHasGroup+GroupStartNum/GroupEndNum/GroupInterval(числовий діапазон) таGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(дата). Записувач XLSX видає елемент<fieldGroup><rangePr groupBy="range|days|months|..."/>, тож програмно побудовані зведені таблиці з згрупованими полями відповідають виводу Excel - Експорт у HTML тепер видає кінцеві примітки коментарів. Коли
xhCommentsв опціях експорту, кожна комірка з коментарем отримує надскриптоване посилання[n], а повний текст коментаря (автор + тіло) наводиться як розділ кінцевих приміток після таблиці зі зворотним якорем до комірки. Раніше коментарі були доступні лише через атрибутtitle=комірки, який невидимий під час друку чи копіювання-вставки
Версія 2.145.0
Додано
- Літерали помилок BIFF8 (маркер
tErr) тепер декодуються у типізований елемент синтаксисуSA_ERRORзамість провалу парсингу формули. Комірка, що зберігає=#N/A(або будь-яку з семи констант помилок Excel), раніше призводила до відкидання всієї формули під час читання; тепер байт помилки переноситься через цикл читання → обчислення → запис та реконструюється у свою текстову форму (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) через новий помічникXlsErrorToString - Маркер BIFF8
tIsect $0F(оператор неявного перетину) тепер декодується в перекладачі бінарних формул, будуючи той самий вузолSA_ISECT, що produces текстовий парсер для@. Раніше бінарна формула, що міститьtIsect, не змогла б парситися - Умовне форматування смуг даних тепер видає блок розширення
x14Excel 2010+ уextLstаркуша, коли модель несе будь-яке нестандартне поле x14 (колір негативної заливки, вимкнення градієнта, колір осі, напрямок, межа). НовийBuildDataBarExtXmlбудує елементext<x14:conditionalFormattings>з відповідним пріоритетом, парою cfvo, кольорами заливки + негативним + осі та атрибутами gradient/border/direction/negativeBarColorSameAsPositive
Версія 2.144.0
Додано
- Рушій XLSX тепер може записувати книги із Agile-шифруванням (
TXLSXWorkbook.SaveAsEncryptedAgile), закриваючи високовартісну прогалину сумісності читання/запису. Agile — це те, що Excel 2010+ записує за замовчуванням для файлів .xlsx, захищених паролем; HotXLS раніше міг читати Agile, але лише записувати Standard Encryption (AES-128). Новий конвеєр запису дзеркалить наявний шлях дешифрування: гешування пароля SHA-512 з лічильником обертань 100000, шифрування пакета AES-256-CBC на сегмент, випадково згенерований проміжний ключ, обгорнутий згідно з трьома закріпленими специфікацією блоковими ключами, та повний дескриптор XML<encryption>, що несе зашифровані блоби верифікатора + ключа. Вивід побайтово точний до того, що produces Excel, та чисто переноситься через цикл черезXlsLoadAgileEncryptedFile(перевірено тестом: правильний пароль дешифрує, неправильний відхиляється) - Нові криптографічні примітиви підпирають шлях запису Agile:
XlsHMACSHA512(RFC 2104, потрібен для елементаdataIntegrity),XlsBase64Encode(кодувальник RFC 4648, що дзеркалить наявний декодувальник) таAESEncryptCBC(шифрування AES-CBC для будь-якого розміру ключа 128/192/256, обернене до наявногоAESDecryptCBC). Модуль AES тепер імпортуєaes_encrypt_key192/aes_encrypt_key256з об'єкта Gladman (раніше було доступне лише 128-бітове шифрування)
Версія 2.143.0
Додано
- Оцінювач формул тепер парсить та обчислює оператор явного перетину
@(синтаксис динамічного масиву Excel 365, наприклад=A2:A4 @ B2:B4). Лексер видає новий маркерLT_ISECTдля символу@, парсер пріоритетів будує вузолSA_ISECT(зв'язуючи сильніше за^, слабше за%), а новий оцінювачIntersectRangesрозв'язує обидва операнди як діапазони та повертає значення єдиної комірки перетину — правило неявного перетину Excel. Серіалізатор маркерів BIFF видаєtIsect $0F, тож оператор переноситься через цикл через XLS, а шлях реконструкції тексту формули видає форму з неявним пробілом. Раніше такі формули не парсилися - Стандартний кодувальник Base64 (
XlsBase64Encode) тепер доступний, дзеркально до наявногоXlsBase64Decode. Це передумова для шляху запису Agile-шифрування, що видає saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue як значення атрибутів Base64 - Подія
OnProgressкниги тепер також запускається під час повного перерахунку (Recalculate) з новою фазоюxlsxProgressCalculating. Раніше подія запускалася лише під час читання та запису, тож довгі повні перерахунки не давали інтерфейсу пульсації. Подія запускається приблизно кожні 4% комірок, щоб уникнути затоплення - Розширені властивості документа (
docProps/app.xml) тепер переносять через цикл ще три поля, що Excel записує для документів, захищених паролем / на основі шаблона:Manager,TemplateтаDocSecurity(бітове поле: 1=захищено паролем, 2=рекомендовано лише читання, 4=примусово лише читання, 8=заблоковано для анотацій)
Версія 2.142.0
Додано
- Типізована модель зведеної таблиці тепер несе метадані, джерело, обчислюване поле, «показати значення як» та поверхню меж спільних елементів, які попередній раунд аналізу позначив як прогалини.
TXLSPivotCacheотримуєRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDataплюс типізовану форму джерела-аркуша (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldотримуєFormula/DatabaseField/MemberPropertyField(обчислювані поля) та межі спільних елементів (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldотримуєShowDataAs/BaseField/BaseItemдля перетворень «показати значення як» (відсоток-від / різниця / накопичувальний підсумок / індекс). Записувач XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) шанує всі ці, тож програмно побудована зведена таблиця (AddPivotTable) видає багатшийpivotCacheDefinition+pivotTableDefinition— refreshOnLoad / трійка версій / refreshedBy / джерело іменованого діапазону / формула обчислюваного cacheField / межі sharedItems / subtotal dataField + showDataAs. Зведені таблиці, зчитані з файлу, продовжують переносити свій сирий XML дослівно - Поведінка якоря зображення тепер переноситься через цикл через нову властивість
AnchorTypeнаTXLSXImage(xaTwoCell= переміщати та змінювати розмір з комірками,xaOneCell= переміщувати, але не змінювати розмір,xaAbsolute= не переміщувати та не змінювати розмір). Записувач обирає елемент якоря (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) для відповідності; зчитувач розбирає ім'я елемента + атрибутeditAsназад. Зівставляється з діалогом Excel «правий клік → Розмір та Властивості → Властивості» - Колонтитули тепер переносять через цикл диференціацію парних/першої сторінки.
TXLSXWorksheetотримуєEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextплюс чотири перемикачі<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Файли, де користувач увімкнув «Різні парні та непарні сторінки» чи «Різні перші сторінки», більше не втрачають розділи парної/першої сторінки під час циклу - Компонування сторінки тепер переносить через цикл розширені атрибути
<pageSetup>, що Excel записує для нестандартних налаштувань друку:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(відображено/порожньо/тире/NA),UsePrinterDefaults <sheetFormatPr>тепер переносить через циклcustomHeight,zeroHeight,outlineLevelRowтаoutlineLevelCol, тож файли, де користувач встановив фіксовану користувацьку висоту рядка за замовчуванням, приховані рядки за замовчуванням чи типовий рівень структури, більше не втрачають цю поведінку- Умовне форматування смуг даних переносить через цикл стандартний атрибут
gradient(градієнт проти суцільної заливки), аTXLSDataBarSpecотримує поля розширенняx14Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColorз темою/відтінком,Direction,Border) на моделі, тож споживачі API можуть їх встановлювати - Балони коментарів переносять свій малюнок VML дослівно. Зчитувач захоплює
xl/drawings/vmlDrawingN.vmlяк є, а записувач відтворює його при збереженні (замість вбудованого шаблону жовтого балона), тож позиція / розмір / колір заливки / видимість кожного балона, встановлені користувачем, виживають - Тіла коментарів переносять через цикл форматування окремої серії.
TXLSXCommentотримує ліниий вмістRichText: TXLSXRichText(повторно використовуючи модель серій спільних рядків); записувач видає один<r><rPr>...</rPr><t>...</t></r>на кожну серію, коли RichText несе форматування, а зчитувач розбирає<b/>,<i/>,<sz val=N/>,<color rgb=.../>назад, тож жирний / курсив / розмір / колір виживають - Оцінювач формул тепер реалізує
SUBTOTAL(усі одинадцять агрегаторів: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, плюс варіанти ігнорування прихованих 101–111) таAGGREGATE(дев'ятнадцять агрегаторів з прапорцями коду опцій 0–7, що обирають пропуск помилок/прихованих, включаючи сімейство LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE з їхнім аргументомk). Обидві раніше провалювалися до шляху непідтримуваної функції;SUBTOTALбув зареєстрований, але не мав реалізації,AGGREGATEне був зареєстрований взагалі - Функції аркуша
CELLтаINFOтепер обчислюються:CELLпідтримуєaddress,col,row,type,contents,filename,formatтаinfo_typeстану GUI (color,parentheses,prefix,protect,width) повертають нейтральні значення за замовчуванням;INFOпідтримуєosversion,system,recalc,memavail,numfile,release,origin. Обидві були зареєстровані, але провалювалися до#NAME? - Умовне форматування тепер переносить через цикл атрибути
cfRulestopIfTrue,stdDev,equalAverageтаtimePeriod, плюс повне десятичленне сімействоtimePeriod(вчора / сьогодні / завтра / останні7днів / останнійтиждень / цейтиждень / наступнийтиждень / останіймісяць / цеймісяць / наступниймісяць). Вони мовчазно відкидалися під час читання; Excel записує їх рутинно в правилах «вище середнього» та «смуга дат», а відкидання їх змінювало, як правило переобчислювалося при повторному відкритті - Експорт CSV отримав властивість
TXLSCsvEncodingнаTXLSCSVSaverз трьома режимами:ceSystemAnsi(застаріле значення за замовчуванням),ceUtf16(історичний режим Unicode) таceUtf8, що записує файл UTF-8 із позначкою порядку байтів EF BB BF — сучасне Excel-дружнє значення за замовчуванням, що відкривається без майстра імпорту тексту в будь-якій локалі - Імпорт CSV отримав властивість
LocaleTolerantNumbersнаTXLSCSVLoader. Коли ввімкнено, числове поле, що не парситься з.як десятковим роздільником, повторно пробується з,(та навпаки), тож європейське3,14імпортується як число 3.14 на машині США. Суворий режим (за замовчуванням) без змін, тож текст із ведучими нулями, поштові індекси та інші коми-несучі маркери залишаються текстом
Виправлено
- Вивід чисел у суворому режимі рушія XLSX більше не перетворює текстові поля з комами (наприклад
3,14) у числа через DelphiTryStrToFloat, що толерує кому як роздільник тисяч, навіть колиThousandSeparatorвстановлено на#0. Такі поля тепер залишаються текстом, якщо лише не ввімкнено нову опціюLocaleTolerantNumbers
Версія 2.140.0
Змінено
- Рушій XLSX тепер ущільнює свої шість пулів стилів окремого атрибута (Шрифти / Заливки / Межі / Числові формати / Вирівнювання / Захист) перед кожним збереженням: новий прохід
CompactStylePoolsсканує індекси стилю кожної комірки та відкидає записи пулу, на які більше не посилається жодна комірка — записи, що накопичуються, коли комірки очищаються, видаляються або рестилізуються після того, як запис пулу був вперше доданий. Ущільнені пули produce меншу таблицю<cellXfs>у вихідному файлі (зазвичай на 30–70% менше для документів, що пройшли через кілька циклів редагування), відповідаючи ущільненню, що вже робить рушій XLS черезCreateAllReferredList
Версія 2.139.0
Додано
- Форми шару малюнка, з'єднувачі, групові форми та не-діаграмні графічні рамки тепер переносяться через цикл дослівно: коли зчитувач XLSX стикається з якорем
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>або не-діаграмної<xdr:graphicFrame>, що не охоплюється типізованою моделлю (зображення / діаграми / текстові поля), він захоплює повний XML якоря та відтворює його без змін при збереженні — тож малюнки, авторизовані в Excel (стрілки, винесення, згруповані форми, рамки smart art), виживають цикл читання→запису без втрати. Кожен аркуш відкриваєRawDrawingAnchorCount/RawDrawingAnchor(i)для перевірки
Версія 2.138.0
Додано
- Кешовані значення комірок зовнішнього посилання тепер переносяться через цикл у рушії XLSX: нова модель
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDataвисить на кожномуTXLSXExternalLinkчерезAddSheetData/AddRow/AddCell, записувач видає відповідний блок<sheetDataSet>всерединіexternalLinkN.xml, а повторне відкриття відновлює кожне кешоване значення.FindCachedCell(sheetIdx, row, col)шукає останнє відоме значення зовнішньо-посиланої комірки — дані, що сам Excel показує, коли віддалена книга офлайн
Версія 2.137.0
Додано
- Прапорець OOXML cellXf
quotePrefix— механізм Excel для позначення збереженого тексту як літералу, щоб він виживав числове перетворення (імпортовані з CSV коди на кшталт00123, довгі номери рахунків, будь-що, до чого користувач додав апостроф) — тепер переноситься через цикл у рушії XLSX:TXLSXAlignmentотримує властивістьQuotePrefix, пул вирівнювання рахує її при дедуплікації, записувач видаєquotePrefix="1"на відповідному<xf>, а повторне відкриття відновлює її, незалежно від того, чи cellXf ніс дочірній<alignment/>, чи був голим самозакривним<xf quotePrefix="1"/>
Версія 2.136.0
Додано
- Осі діаграми тепер повністю програмовані: нова модель
TXLSXChartAxisнаCategoryAxisтаValueAxisкожної діаграми відкриваєLogBase(логарифмічна шкала, наприклад 10 для base-10 логарифма),Orientation(нормальна / реверсна),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = авто),MajorUnit/MinorUnit,CrossesAt,TickLblPosтаDispUnits(одиниці відображення: сотні / тисячі / мільйони / мільярди / трильйони). Усе за замовчуванням до авто-поведінки Excel, тож наявні діаграми видають той самий XML, що й раніше; записувач додає<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>та<c:dispUnits>лише коли викликувач встановлює нестандартне значення, а повторне відкриття такої діаграми відновлює кожне налаштування
Версія 2.135.0
Додано
- Смуги помилок діаграми тепер програмовані та переносяться через цикл у рушії XLSX: кожна
TXLSXChartSeriesотримуєAddErrorBar(dir), що повертаєTXLSXChartErrBarзValueType(фіксований / відсоток / станд. відхилення / станд. помилка / користувацький),Value,PlusValue/MinusValue(користувацький) таNoEndCap; один слот смуги помилок на напрямок (X / Y) зберігається, записувач видає відповідний блок<c:errBars>, а повторне відкриття відновлює напрямок, тип та величину, тож наукові / інженерні діаграми зберігають свої індикатори невизначеності
Версія 2.134.0
Додано
- Мітки даних діаграми тепер програмовані та переносяться через цикл у рушії XLSX: кожна
TXLSXChartSeriesотримує властивостіShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeтаSeparator, що видають відповідний блок<c:dLbls>зі своїми дочірніми елементами<c:show*/>; повторне відкриття такої діаграми відновлює перемикачі, тож налаштування «показати значення» / «показати відсоток» переживають цикл збереження-редагування-збереження
Версія 2.133.0
Додано
- Векторні формати зображень EMF та WMF тепер є повноцінними типами зображень у рушії XLSX:
TXLSXImageFormatотримуєxlsxImageEmf/xlsxImageWmf, записувач видає відповідні типи вмістуimage/x-emf/image/x-wmfта розширення.emf/.wmf, а «нюхач» формату розпізнає EMF (01 00 00 73), WMF, що поміщається (D7 CD C6 9A), та стандартні заголовки WMF — тож зображення, вставлені з Word або PowerPoint, які Excel вбудовує як векторні дані, тепер переносяться через цикл замість відкидання
Виправлено
- Підпотоки діаграм BIFF8, чиї записи GELFRAME (
$1066) охоплюють межу продовження 8224 байт, більше не втрачають геометрію заливки/лінії: зчитувач тепер приймає самопродовження GELFRAME (Excel записує інший$1066замість стандартного$003CCONTINUE), а також дозволяє стандартним записам CONTINUE зшиватися всередині контексту діаграми, відповідаючи наявній багатошматковій диспетчеризації записувача - Фонові зображення колонтитулів BIFF8 (
$0866), чиї вмісти охоплюють записи продовження, більше не псуються: кожен сегмент продовження повторює 14-байтовий заголовок MSO, який зчитувач тепер відкидає перед конкатенацією, тож вбудовані дані зображення більше не зміщуються на 14 байт на сегмент
Версія 2.132.19
Виправлено
- Очищення сховищ застарілого XLS та шифрованого XLSX тепер детерміновано звільняє потоки складеного файлу, запобігаючи блокуванню тимчасових файлів після збереження, завантаження, VBA або операцій з шифрованим пакетом
- Форматоване відображення розширених цілих варіантних значень тепер послідовно застосовує запитаний числовий формат, відповідаючи наявній поведінці для стандартних цілих значень
- Спільні рядки, перевірка даних, аркуші діаграм, ZIP-архіви, PNG-малювання та повторювані текстові формули тепер більш оборонно очищають тимчасові буфери під час шляхів помилок та великих текстових операцій
Версія 2.132.18
Виправлено
- Призначення значення будівничому рядків тепер очищає попередній текст, коли призначається порожній рядок, запобігаючи повторно використаним буферам XML та тексту від збереження застарілого вмісту
Версія 2.132.17
Виправлено
- Створення аркуша діаграми XLS тепер приймає екрановані імена аркушів-джерел, що містять знак оклику, відхиляє надмірні посилання рядків до того, як вони можуть обернутися у дійсний рядок BIFF, та обмежує імена легенди ліній тренду до ліміту BIFF короткого тексту, тож згенеровані записи діаграм залишаються коректно сформованими
Версія 2.132.16
Виправлено
- Внутрішні списки з рядковими ключами та ключами-об'єктами тепер видаляють застарілі ключі пошуку, коли наявний слот перезаписується, запобігаючи розв'язанню старих ключів до записів заміщення
- Внутрішні заміни списків об'єктів та кеші трансформованих унікальних ключів тепер звільняють власні записи при перезаписі, очищенні та знищенні, запобігаючи витокам під час повторюваних операцій книги та стилю
Версія 2.132.15
Виправлено
- Прямі потокові зчитування XLSX тепер декодують булеві комірки, що зберігають OOXML-літеральні значення такі як true та false
- Оновлення індексу внутрішнього списку рядків тепер видаляють застарілі ключі, коли наявний слот перезаписується, запобігаючи розв'язанню старих імен до нового значення
Версія 2.132.14
Виправлено
- Підказки та повідомлення про помилки перевірки даних BIFF8, чиї перші символи NUL, тепер зберігають межі записів замість запису невідповідної довжини DV
Версія 2.132.13
Виправлено
- Парсинг тексту XML тепер відхиляє вкладені початки сутностей такі як && замість мовчазного відкидання незавершеної сутності
- Декомпільовані формули тепер записують числові константи з інваріантною крапкою десяткового роздільника, тож текст формули залишається портативним між регіональними налаштуваннями
Версія 2.132.12
Виправлено
- Прозорість PNG-палітри тепер ігнорує прозорі кольори, що відсутні в палітрі зображення, замість позначення довільного індексу палітри як прозорого
- Формули SUMPRODUCT тепер зупиняють сканування решти рядків після першого рядка поза використовуваним діапазоном у довгих аргументах діапазону, уникаючи непотрібних зчитувань комірок, зберігаючи обчислений результат
Версія 2.132.11
Виправлено
- Формули TEXT тепер повертають #VALUE!, коли неможливо застосувати неправильний чи надмірний числовий формат, замість проковтування як порожнього успішного результату
- Скорочення таблиці спільних рядків тепер звільняє правильні хвостові блоки та утримує таблицю придатною до повторного використання після великих циклів видалення
Версія 2.132.10
Виправлено
- Точні пошуки MATCH тепер шанують підстановки Excel, а метадані зсуву рядків класичного XLS тепер ігнорують рядки поза блоком замість псування збереженої структури книги
- Стиснені текстові метадані PNG тепер безпечно звільняють тимчасові буфери, якщо обробка шматків викликає виключення
Версія 2.132.9
Виправлено
- Стиснені текстові метадані PNG, вставлення списку шматків та обробка порядку байтів CRC тепер залишаються стабільними на підтримуваних Windows-платформах
Версія 2.132.8
Виправлено
- Формули LEFT та RIGHT тепер повідомляють #VALUE!, коли num_chars неможливо перетворити на дійсне ціле
Версія 2.132.7
Виправлено
- Формули SEARCH тепер підтримують Excel-стилю підстановки ?, * та ~
- Перевірка імені аркуша тепер відхиляє неправильні символи імені аркуша Excel під час перейменування аркушів
- Видалення ручного розриву сторінки тепер працює після вставлення розриву перед наявними розривами
Версія 2.132.6
Виправлено
- Формули DATE тепер відповідають Excel-сумісній поведінці прокручування місяця та дня, включаючи виклики такі як DATE(2008,14,2)
- Зчитування Hidden стовпцевого діапазону тепер повідомляють видимість кожного стовпця замість змішування зі станом видимості рядків
- Метадані рядків BIFF на ліміті рядків Excel 97-2003 тепер завантажуються коректно, тож налаштування для рядка 65536 зберігаються
Версія 2.132.5
Виправлено
- Завантаження книги BIFF тепер толерує спотворені кольори вкладок аркуша, скорочені мітки зведених таблиць та неправильні фрагменти дат кешу зведених таблиць без виклику виключень
- Завантаження пакету та потоків книги тепер більш послідовно очищає невдалі шляхи налаштування архівів та сховищ, уникаючи витоку ресурсів при некоректних вхідних даних або невдалому відкритті сховища на основі потоку
Версія 2.132.4
Виправлено
- Обробка ZIP-архіву тепер фіналізує поточний пакет перед повторним використанням того самого об'єкта архіву для іншого пакета, а відкриття архіву на основі файлу тепер дозволяє паралельні спільні зчитувачі
Версія 2.132.3
Виправлено
- Запис пакета книги тепер зберігає не-ASCII імена записів ZIP з UTF-8-метаданими, запобігаючи мовбаке, коли імена частин пакета містять текст Unicode
- Вивід XML тепер записує сирий текст та значення атрибутів як байти UTF-8, коли екранування вимкнено, відповідаючи заявленому кодуванню документа
- Обчислення формули тепер очищає свій стан «у процесі» після виключень зворотного виклику та коректно обробляє скасування великих чисел у збірках Delphi Unicode
- Витяг матриці масивних формул тепер шанує ненульові нижні межі масиву Variant замість виклику винятку для дійсних однобазових масивів
Версія 2.132.2
Змінено
- Сортування діапазону тепер використовує стабільний прохід впорядкування O(n log n) для великих відсортованих діапазонів, зберігаючи наявну поведінку циклу вмісту рядків
- Парсинг та форматування чисел ODS та XLSX тепер повторно використовують інваріантний стан форматування замість повторного його створення в гарячих шляхах
Виправлено
- Парсинг XML тепер приймає дійсні блоки CDATA та інструкції обробки UTF-8 без псування тексту чи збою на дійсній розмітці
- Парсинг формул тепер приймає знакову наукову нотацію та чисто відхиляє неправильні чи скорочені байти формули
- Шляхи відкриття та збереження класичної книги тепер надійно звільняють потоки та сховища після помилок, запобігаючи блокуванню тимчасових файлів
- Обробка бінарного буфера тепер перевіряє межі копіювання та зчитування, розширює буфери призначення перед копіюванням та чисто відхиляє неправильні зворотні посилання стиснення VBA
Версія 2.132.1
Виправлено
- Виправлено повідомлення про помилку, що виникає, коли шифрована книга використовує непідтримувану схему шифрування: воно раніше стверджувало, що ECMA-376 Agile Encryption не можна прочитати, хоча дешифрування Agile (AES-128/192/256) підтримується з 2.119.0. Повідомлення тепер перелічує фактично підтримувані схеми
- Open тепер вказує викликувачам на TXLSXWorkbook.OpenEncrypted, коли він відхиляє шифрований OOXML-пакет, замість твердження, що шифровані книги не підтримуються
Версія 2.132.0
Змінено
- Завантаження XLSX істотно швидше: зчитувач XML тепер інтернує повторювані імена елементів та перетворює текстові і атрибутні значення прямо з буфера сканування, скорочуючи розміщення пам'яті окремо на комірку більш ніж удвічі. Багатопотокове відкриття (2.128.0) отримує найбільшу вигоду — розміщення, що було видалене, було тим, що серіалізувало робочі потоки — з багатоаркушними книгами, що тепер відкриваються майже вдвічі швидше за однопотоковий шлях на багатоядерних машинах; однопотокове відкриття також отримує кілька відсотків
Версія 2.131.0
Додано
- Блоки розширень аркуша, що HotXLS не моделює — записи
<ext>в<extLst>аркуша, відмінні від спарклайнів, які записує Excel для функцій на кшталт умовного форматування x14 чи зрізів — тепер зберігаються дослівно, коли книгу відкривають та записують назад при збереженні, тож відкриття та повторне збереження файлу більше не видаляє ці розширення. Захоплені блоки видимі лише для читання черезWorksheet.RawWorksheetExtsта переміщуються з аркушем при копіюванні в іншу книгу
Версія 2.130.0
Додано
- Збережені книги, що містять формули, тепер несуть частину ланцюга обчислення
xl/calcChain.xml, дозволяючи Excel ініціювати свій рушій залежностей із записованого порядку замість перебудови при завантаженні. Після викликуRecalculateланцюг прямує топологічним порядком графа залежностей; інакше комірки формул наведені в порядку документа (дійсна підказка, що Excel уточнює на льоту). Частина, її тип вмісту та зв'язок книги видаються разом та переживають цикли відкриття/збереження
Версія 2.129.0
Додано
- Нова властивість
Workbook.ParallelParseThreadsналаштовує кількість працівників для багатопотокового шляху Open, представленого у 2.128.0 (0 = автоматично, один працівник на ядро CPU). Парсинг аркуша сильно розміщує пам'ять, а розміщення пам'яті серіалізується між потоками, тож на деяких навантаженнях невеликий явний ліміт працює так само добре або краще, ніж повна кількість ядер; властивість дозволяє інтеграторам обрати те, що вимірюється найкраще для їхніх файлів
Версія 2.128.0
Додано
- Багатопотокове завантаження XLSX: відкриття книги тепер парсить XML кожного аркуша — домінуючу вартість на великих файлах — на робочих потоках, тож багатоаркушні книги відкриваються швидше на багатоядерних машинах. Частини аркуша витягуються з пакета заздалегідь, і кожен працівник торкається лише свого аркуша, тож завантажена книга ідентична серійному результату
- Нова властивість
Workbook.ParallelParse(за замовчуваннямTrue) перемикає назад на однопотокове парсування, коли встановленоFalseпередOpen— однорядковий вихід для обмежених середовищ
Змінено
- Зворотний виклик читання
OnProgressвсе одно запускається один раз на аркуш у викликаючому потоці, тепер коли кожен аркуш диспетчеризується для парсування, а не строго між аркушами
Версія 2.127.0
Додано
- Інкрементальний перерахунок у рушії XLSX: новий метод
Workbook.Recalculateбудує граф залежностей формул, обчислює кожну комірку формули один раз у порядку залежностей та зберігає кожен результат у кешоване значення комірки. Подальші виклики повторно обчислюють лише комірки, зачеплені змінами значень з минулого проходу — на ланцюгових моделях (фінансові аркуші, каскади звітів) редагування одного входу повторно обчислює лише низхідні формули замість усієї книги - Волатильні функції (
NOW,TODAY,RAND,OFFSET,INDIRECT) перераховуються при кожному проході, як і формули, чиї посилання неможливо розв'язати статично (багатоділянкові імена, зовнішні книги) — рушій швидше перерахує, ніж ризикуватиме застарілий результат - Цикли посилань виявляються замість зациклення:
Recalculateповертає код помилки, коли формули утворюють циклічний ланцюг, пропускає члени циклу та все одно обчислює кожну формулу поза циклом. Міжаркушеві посилання, іменовані діапазони та масивні формули CSE (результати, виливаються через прив'язаний діапазон) повністю беруть участь у графі залежностей
Змінено
- Наявний шлях
Calculateза запитом без змін;Recalculate— окремий opted-in API, а книги, що ніколи його не викликають, поводяться точно так само, як і раніше
Версія 2.126.0
Додано
- Спарклайни у рушії XLSX: аркуші тепер несуть групи спарклайнів — внутрішньо-коміркові міні-діаграми, що Excel відтворює з діапазону даних — з трьома типами Excel (лінійний, стовпчастий, стек «виграв/програв»). Створіть одну через
Worksheet.AddSparklineGroupабо будуйте групи вручну через нову колекціюWorksheet.SparklineGroups, додаючи будь-яку кількість спарклайнів на групу з діапазоном-джерелом та коміркою відображення для кожного - Групи спарклайнів відкривають повний набір опцій Excel: вагу лінії, маркери точок даних, перемикачі акценту високий/низький/негативний/перша/остання точка, вісім слотів кольорів ARGB (серія, негатив, вісь, маркери, перша, остання, висока, низька), масштабування вертикальної осі на рівні групи чи окремого спарклайна та обробку проміжків/нуль/розмах для порожніх комірок-джерел
- Спарклайни переживають повний цикл збереження→відкриття: збереження видає розширення
extLstаркуша ([MS-XLSX] §2.3.6), тож Excel 2010 та пізніший відтворюють спарклайни, а відкриття такої книги — чи написаної HotXLS, чи Excel — перебудовує кожну групу, опцію та діапазон, тож вони зберігаються через цикли редагування. Копіювання аркуша в іншу книгу також клонує його групи спарклайнів
Версія 2.125.0
Додано
- Сім текстових функцій підрахунку байтів DBCS тепер обчислюються в обох рушіях:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHBтаREPLACEB. Кожна трактує свій вхід як байтовий рядок під системною ANSI-кодовою сторінкою, тож символи CJK (китайські/японські/корейські) займають 2 байти, тоді як ASCII — 1; операції, що розщепили б провідну/завершальну пару байтів DBCS, відкидаються назад до найближчої межі символу, відповідаючи поведінці Excel
Версія 2.124.0
Додано
- П'ять функцій перевірки гіпотез та розподілу тепер обчислюються в обох рушіях:
Z.TEST(одностороння правостороння ймовірність того, що вибіркове середнє щонайменшеxза нульової гіпотези),T.TEST(p-значення парного двовибіркового t-тесту; непарні типи рівної/нерівної дисперсії відкладені),CHISQ.TEST(p-значення відповідності через верхньохвостовий CDF хі-квадрат),HYPGEOM.DIST(гіпергеометричне PMF/CDF з прапорцем кумулятивності) таNEGBINOM.DIST(негативний біном PMF/CDF). Математика p-значень повторно використовує наявні помічники CDF нормальний/Стьюдент-t/хі-квадрат рушія через самодостатні вкладені рутини, тож жоден наявний метод Calc не змінюється
Версія 2.123.0
Додано
- Чотирнадцять функцій формул із огляду прогалини сумісності тепер обчислюються в обох рушіях:
AVERAGEIF(однокритеріальне середнє, сиблінг SUMIF/COUNTIF, якого бракувало рушію),WORKDAY.INTLтаNETWORKDAYS.INTL(користувацькі маски вихідних через коди номер 1-17 або 7-символьний рядок Mon-Sun),XIRRтаXNPV(внутрішня норма прибутку та чиста приведена вартість для грошових потоків з нерегулярними датами, розв'язані бісекцією з облямовуванням),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(округлення без урахування знака),PERCENTRANK.INC/PERCENTRANK.EXC(ранг перцентиля з відповідною інклюзивною/ексклюзивною інтерполяцією),MODE.MULT(виливає кожне значення, прив'язане за найвищу частоту),ERF.PRECISE(функція помилки Гаусса через її знакопереміжний ряд),ACCRINT(набули відсотки) таISPMT(відсоток періоду для амортизації з постійним основним боргом)
Версія 2.122.0
Додано
- Ниткові коментарі (Excel 365) тепер переносяться через цикл у рушії XLSX:
AddThreadedCommentтаAddThreadedReplyна аркуші будують дерево відповідей батько→нащадок, прив'язане до комірки, автоматично реєструють кожного автора у новому спискуPersonsна рівні книги та видають виділену частинуxl/threadedComments/threadedCommentN.xmlна аркуш плюс частинуxl/person/person.xmlна рівні книги; повторне відкриття такого пакета перебудовує дерево розмови та список учасників із цих частин, тож ланцюги відповідей, ідентифікатори та відображені імена переживають повний цикл читання→запису
Версія 2.121.0
Додано
- Оцінювач формул тепер обчислює функції динамічного масиву Excel 365
XMATCH,SORT,UNIQUEтаSEQUENCE, приєднуючись до вже підтримуванихXLOOKUPтаFILTER; результати виливаються як 2D-масиви, тожSEQUENCE(3;2;1;1)повертає сітку 3×2,SORTперевпорядковує рядки за будь-яким ключовим стовпцем висхідно чи низхідно,UNIQUEстискає дубльовані рядки, зберігаючи перше входження, аXMATCHповідомляє 1-базовану позицію значення пошуку з тими самими режимами збігу точний/підстановка/наступний-менший/наступний-більший, що йXLOOKUP
Версія 2.120.0
Додано
- Новий метод
PasteFromClipboardна аркушах обох рушіїв читає текст із роздільниками-табуляціями з буфера обміну Windows — вміст, що Excel розміщує там, коли діапазон копіюється, або звичайне виділення з будь-якого іншого застосунку — та записує його в комірки, починаючи з заданого рядка та стовпця, з тим самим підвищенням типу число/дата/булеве, що вже використовує завантажувач CSV; текст із ведучим=стає живою формулою, відповідаючи тому, як сам Excel вставляє
Версія 2.119.0
Додано
- Зчитування ECMA-376 Agile Encryption — захист паролем, що Excel 2010 та пізніший застосовують за замовчуванням:
OpenEncryptedтепер парсить XML-дескриптор шифрування, виводить ключі з гешуванням SHA-512 зі лічильником обертань, перевіряє пароль та дешифрує сегментований пакет AES-CBC (AES-128/192/256), тож книги, захищені паролем безпосередньо в Excel, відкриваються без інстальованого Excel OpenEncryptedобробляє всі три випадки через одну точку входу: звичайний незашифрований.xlsx, Standard Encryption (наш циклSaveAsEncrypted) та Agile Encryption; неправильний пароль викликає однакову зрозумілу помилку в кожній схемі
Виправлено
- Збереження книги
.xlsx, чий XML аркуша перевищував приблизно 116 КБ — близько 3000 рядків типових рядкових даних — збій з переповненням стеку; записувач CRC-32 ZIP тепер обробляє дані шматками по 64 КБ, що утримує backend стиснення від його кодового шляху великого входу, що розміщує надмірний буфер подряпання на стеку. Результат контрольної суми без змін
Змінено
- Дедуплікація спільних рядків тепер виконується через геш-таблицю замість сканування списку рядків, а частина
sharedStrings.xmlзбирається через попередньо збільшений будівник рядків замість повторної конкатенації — разом зі сталим у часі індексом комірки це скорочує збереження 120 000 рядкових комірок з десятків секунд приблизно до третини секунди
Версія 2.117.0
Змінено
- Доступ до комірок XLSX тепер сталий у часі: колекція комірок аркуша несе геш-індекс над (рядок, стовпець), замінюючи попереднє лінійне сканування — тож заповнення, зчитування назад чи завантаження великого аркуша масштабується лінійно з кількістю комірок замість квадратично; заповнення 100 000 комірок тепер займає значно менше секунди, тоді як раніше це займало хвилини
- Прискорення застосовується по всьому рушію:
Cells[r, c],HasCell, завантаження книги, збереження, міжкнижкові копії, авто-підгонка та кожен помічник, що торкається комірок за позицією, усі отримують вигоду; вставлення чи видалення рядків і стовпців перебудовує індекс за один прохід
Версія 2.116.0
Додано
- Експорт PDF у класичному рушії XLS: нові методи
SaveAsPDFна аркуші та книзі відтворюють використовуваний діапазон (або діапазон, наданий викликувачем черезTXLSPDFExport) як розбиту на сторінки сітку — текст відображення комірки через числовий формат, лінії сітки, ширини стовпців, отримані з Excel-ширин та масштабовані до сторінки, та автоматичну багатосторінкову пагінацію - Вивід — самодостатній файл PDF 1.4 без зовнішніх залежностей, з використанням вбудованого шрифту Helvetica з кодуванням тексту WinAnsi; портретна чи альбомна орієнтація A4, поле сторінки та розмір шрифту налаштовуються в експортера
- Це експорт представлення даних поряд з HTML та RTF: він відтворює табличний вміст та компонування для звітів та передачі документів, а не повне по-коміркове стилізування
Версія 2.115.0
Додано
- Створення діаграми одним викликом з діапазону даних у рушії XLSX: новий
AddChartFromRangeбудує повну діаграму та виводить її серії автоматично з прямокутного блоку даних — еквівалент Excel «вставити діаграму з виділення» — з компонуванням серій-у-стовпцях чи транспонованим серій-у-рядках - Іменовані скорочення
AddColumnChart,AddBarChart,AddLineChart,AddPieChartтаAddAreaChartобирають тип діаграми за іменем через той самий одновикликовий потік, читаючи імена серій з рядка заголовка та мітки категорій з першого стовпця - Посилання серій кваліфіковані з екранованим іменем аркуша-джерела, тож згенерована діаграма продовжує працювати при розміщенні на будь-якому аркуші та виживає збереження і перезавантаження
Версія 2.114.0
Додано
- Імпорт RTF у класичному рушії XLS, обернений до наявного експорту
SaveAsRTF: нові методиOpenRTFна аркуші та книзі читають таблицю документа RTF у комірки аркуша —\cellпросуває стовпець,\rowпросуває рядок — починаючи з A1 - Відновлює табличні дані з файлів, створених
SaveAsRTF, Word чи WordPad: числовий текст зберігається як числа, тож формули продовжують працювати, hex (\'hh) та Unicode (\uN) екранування декодуються коректно, а групи заголовків (таблиця шрифтів, таблиця кольорів, таблиця стилів, інформація) пропускаються - Документи без таблиці відкочуються до режиму абзаців, імпортуючи кожен
\parяк наступний рядок у стовпці A
Версія 2.113.0
Додано
- Зчитування шифрованих книг
.xlsx:OpenEncryptedтепер дешифрує пакети ECMA-376 Standard Encryption (AES-128), завершуючи цикл з наявнимSaveAsEncrypted— він читає контейнер складеного файлу, виводить ключ з пароля, перевіряє його та завантажує відновлену книгу - Неправильний пароль викликає чітку помилку «пароль неправильний», а
OpenEncryptedна звичайному незашифрованому.xlsxпродовжує завантажувати його безпосередньо, тож викликувачі можуть прямувати кожним файлом через одну точку входу
Змінено
- Повідомлення про непідтримуване шифрування тепер конкретно називає ECMA-376 Agile Encryption як таку схему, що залишилася непідтриманою, оскільки читання та запис Standard Encryption доступні обидва
Версія 2.112.0
Додано
- Нова властивість
TaggedTextна комірках XLSX перетворює між форматованим текстом та легкою розміткою:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>та<size=N>, з екрануваннями</>/&— тож багатоформатний вміст комірки можна produce із шаблонного рядка замість збирання об'єктів серій вручну - Запис розмітки будує список серій та зберігає
Valueяк конкатенований простий текст; розмітка без тегів зберігає простий рядок без багатого вмісту; читання серіалізує атрибути кожної серії як повні набори тегів; невідомі теги проходять як літеральний текст
Виправлено
- Серія форматованого тексту, що повністю складається з пробілів (наприклад один стилізований пробіл між словами), тепер виживає збереження та перезавантаження; раніше пробіл відкидався, коли файл повторно відкривали
Версія 2.111.0
Додано
- Нова подія
OnProgressна книзі XLSX повідомляє про поступ завантаження та збереження: вона запускається один раз на аркуш під час парсування вOpenабо видачі вSaveAs, несучи фазу (читання чи запис), поточний 1-базовий номер аркуша та загальну кількість — тож застосунки можуть керувати смугою поступу під час довгих багатоаркушних операцій із незначною вартістю зворотного виклику
Версія 2.110.0
Додано
- Новий курсор рядків у стилі набору даних
TXLSRowCursorдля файлів.xlsx/.xlsm:Open,SelectSheet, потімFindFirst/FindNextобходять аркуш по одному рядку за раз, маючи в пам'яті лише комірки поточного рядка — керований витягом альтернатива до зворотних викликівTXLSDirectReaderдля послідовної обробки багатомільйонних рядкових аркушів - Кожен рядок відкриває свій 1-базований номер рядка аркуша, заповнені комірки в порядку документа (типізоване значення, текст формули, індекс стилю) та пошук
ValueByCol, що повертаєNullдля стовпців, не заповнених у цьому рядку; рядки без заповнених комірок пропускаються - Імена аркушів та кількість доступні після
Open(перевантаження файлу та потоку), зі спільними рядками та виявленням формату дати, обробленими так само, як і потоковим зчитувачем
Версія 2.109.0
Додано
- Новий «пензлик формату»
TXLSXCellFormatдля рушія XLSX: опишіть шрифт, заливку, межу, вирівнювання, числовий формат та захницт один раз, потім штампуйте будь-яку кількість цілей черезApply(окрема комірка),ApplyRange,ApplyRows,ApplyColsабоApplySheet - Застосовуються лише фактично зачеплені аспекти — пензлик, що встановлює лише
Font.Bold, залишає заливки, межі та числові формати цілей недоторканими — тож пензлі компонуються з наявним форматуванням, як маляр формату Excel - Кожне застосування розв'язує зачеплені аспекти в пули стилів книги один раз, а потім записує лише індекси пулу на комірку, тож форматування великих діапазонів коштує один пошук пулу на аспект, а не на комірку;
ApplyRangeматеріалізує відсутні комірки, тоді як форми рядок/стовпець/аркуш штампують лише наявні комірки
Версія 2.108.0
Додано
- Локалізовуваний текст відображення булевих значень: нові змінні
XLSBooleanTrueText/XLSBooleanFalseTextкерують тим, як булеві значення комірок відтворюються всюди, де produce текст відображення —FormattedText, експорт у HTML та вимірювання авто-підгонки — тож локалізовані застосунки можуть показувати, наприклад, WAHR/FALSCH або VRAI/FAUX
Змінено
- Булеві комірки тепер відображаються як
TRUE/FALSEза замовчуванням, відповідаючи сітці Excel, замість капіталізаціїTrue/Falseсередовища виконання
Версія 2.107.0
Додано
- Нова подія
OnPasswordна класичній книзі XLS: колиOpenзустрічає шифровану книгу, а наданий пароль відсутній чи неправильний, подія запитує у застосунку пароль та повторює відкриття (до трьох спроб) — тож інтерактивні інструменти можуть запропонувати користувачу замість попереднього завантаження паролів чи перевірки кодів помилок - Подія отримує поточний пароль за посиланням та прапорець
Retry; залишенняRetryнаFalseвідмовляється та повертає початкову помилку пароля
Версія 2.106.0
Додано
- Новий клас
TXLSFileMonitorспостерігає за файлом книги на диску та запускаєOnFileChanged, коли інший процес — зазвичай Excel — зберігає поверх нього, тож застосунки можуть перезавантажити та оновити свій перегляд автоматично - На основі опитування (час останнього запису плюс розмір,
IntervalMsналаштовується, 1 с за замовчуванням), тож працює на локальних дисках та мережевих спільних ресурсах однаково без циклу повідомлень;SynchronizeEventобирає між доставкою в головний потік для UI-обробників (за замовчуванням) та доставкою безпосередньо в потік спостерігача для консольного чи сервісного коду - Файл, що коротко зникає під час циклу збереження, не запускає хибної події; зміна повідомляється, щойно новий вміст на місці
Версія 2.105.0
Додано
- Обмежена авто-підгонка в класичному рушії XLS, відповідаючи межам, що рушій XLSX уже пропонує: нові перевантаження
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth)таRowsAutoFit(AMinHeight, AMaxHeight)затискають кожну підігнану ширину стовпця (Excel-одиниці ширини) чи висоту рядка (пункти) до заданого діапазону — 0 залишає сторону необмеженою, а повністю порожній стовпець чи рядок все одно отримує запитаний мінімум
Версія 2.104.0
Додано
- Нова властивість лише для читання
FormattedTextповертає текст відображення комірки — збережене значення, відтворене через його числовий формат, як Excel показує його в сітці — охоплюючи роздільники тисяч, десяткові, відсотки, маски дати та часу, багатосекційні маски позитивний/негативний/нуль та булеві формати - Доступно в обох рушіях: на
IXLSrangeу класичному рушії XLS (багатокоміркові діапазони відтворюють свою якірну комірку) та наTXLSXCellу рушії XLSX (комірки з форматованим текстом повертають свій конкатенований текст серій)
Версія 2.103.0
Додано
- Нова функція
DetectExcelContentFormat(перевантаження імені файлу та потоку) ідентифікує контейнер книги за його ведучими байтами, а не за розширенням файлу — повідомляючи складений файл BIFF/OLE, пакет OOXML.xlsx, пакет OpenDocument.odsчи звичайний текст із роздільниками — тож застосунки можуть прямувати перейменованими чи безрозширенними файлами до правильного завантажувача
Змінено
TXLSWorkbook.Openтепер «нюхає» підпис вмісту та відхиляє ZIP-пакети (.xlsxчи.ods, перейменований на.xls) чітким повідомленням, що називає правильний завантажувач, замість збою з непрозорим кодом помилкиTXLSXWorkbook.Openтепер розпізнає вміст складеного файлу OLE (застарілий.xls, перейменований на.xlsx, чи шифрований пакет) та повідомляє, чим файл насправді є, замість виявлення помилки парсера ZIP
Версія 2.102.0
Додано
- Міжкнижкове копіювання аркуша у класичному рушії XLS (BIFF8) тепер приносить визначені імена на рівні книги, що використовує формула, у місце призначення — те саме, що робить Excel, коли аркуш переміщується між книгами: ім'я, що вже є в місці призначення, прив'язується як є (дублікат не створюється), відсутнє ім'я реєструється з оригінальним визначенням та видимістю, тож формула перекомпілюється проти нього, а ім'я, чиє визначення неможливо розв'язати в місці призначення (наприклад, воно вказує на аркуш, якого там немає), залишає формулу на її обчисленому значенні, як і раніше
Версія 2.101.0
Додано
- Міжкнижкове копіювання аркуша у класичному рушії XLS (BIFF8) тепер перепрямовує формули на книгу-джерело як зовнішнє посилання, коли місце призначення не має аркуша з іменем, на яке посилаються, і джерело збережено у файл: скопійована комірка залишається живою формулою (її посилання перемикаються на форму [SourceBook]Sheet), обчислене значення джерела зберігається як кешований результат, тож зчитування продовжують працювати, поки зв'язок не оновиться, а посилання на зовнішню книгу переносяться через цикл збереження та перезавантаження; формули з посиланнями на визначені імена та копії з незбережених книг-джерел зберігають обчислене значення, як і раніше
Версія 2.100.0
Додано
- Масивні формули тепер виживають копіювання аркушів у класичному рушії XLS (BIFF8): кожен діапазон масиву перебудовується як цілісне у копії — в одній книзі та між книгами однаково — з кореневою формулою, перекомпільованою проти імен аркушів місця призначення; масив, який місце призначення не може перекомпілювати, зберігає свої обчислені значення замість цього
Виправлено
- Копіювання діапазону, що містить комірки масивних формул між класичними аркушами XLS, більше не ризикує збоєм на комірках виливу (які не несуть власного дерева формул); такі комірки тепер переносять своє обчислене значення
Версія 2.99.0
Додано
- Аркуші діаграм тепер можна копіювати між класичними книгами XLS (BIFF8): потік записів діаграми клонується в місце призначення, посилання серій на категорії / значення / імена перекомпілюються проти імен аркушів місця призначення (серія, чиїй аркуш не має однойменного аналога, відкочується до порожнього посилання, тож файл все одно відкривається), посилання шрифтів діаграми мігрують за значенням у таблицю шрифтів місця призначення, а компонування сторінки, колір вкладки, масштаб та видимість аркуша діаграми приєднуються; це усуває останню задокументовану прогалину міжкнижкового копіювання аркуша
Версія 2.98.0
Додано
- Міжкнижкове копіювання аркуша у класичному рушії XLS (BIFF8) тепер зберігає форматування форматованого тексту всередині комірок: шрифт кожної серії форматування мігрує за значенням у таблицю шрифтів книги-призначення, а серія перезаписується для вказування на нього, тож рядки зі змішаними шрифтами зберігають свій вигляд замість відкату до простого тексту; фонетичні (далекосхідні) допоміжні дані також переміщуються з рядком
Виправлено
- Шрифти, на які посилаються лише серіями форматованого тексту (а не будь-яким форматом комірки), більше не відкидаються з таблиці FONT під час збереження класичної книги XLS, а серії тепер прямують тим самим переупорядкуванням шрифтів, що й формати комірок під час збереження, тож рядки форматованого тексту зберігають правильні шрифти після циклу збереження/перезавантаження
Версія 2.97.0
Додано
- Міжкнижкове копіювання аркуша у класичному рушії XLS (BIFF8) тепер також клонує вбудовані зображення: байти зображення мігрують у сховище зображень книги-призначення (ідентичні зображення спільні, а не дублюються), а кожна рамка зображення зберігає свій якір комірки, розмір, видимість та прозорий колір; новий зразковий проєкт CrossWorkbookCopyXls демонструє копіювання класичним рушіям від початку до кінця
Змінено
- Обмеження класичного XLS міжкнижкового копіювання тепер задокументовані: аркуші діаграм не копіюються (AddCopy повертає nil для них), а формула, чиє посилання на аркуш не має однойменного аркуша в місці призначення, зберігає обчислене значення джерела замість перетворення на зовнішнє посилання
Версія 2.96.0
Додано
- Міжкнижкове копіювання аркуша у класичному рушії XLS (BIFF8) тепер також клонує умовні формати (правила cell-is та вираз, смуги даних, шкали кольорів, набори піктограм та їхні диференційні стилі), перевірки даних (правила списку, числові, дати, довжини тексту та користувацькі з полями підказки та помилки), визначення AutoFilter з критеріями окремого стовпця (спадні кнопки перебудовуються в копії) та таблиці (ідентифікатори та імена перевидаються, тож вони залишаються унікальними в книзі-призначенні); формули правил перекомпілюються проти імен аркушів місця призначення, відповідаючи поведінці формул комірок
Версія 2.95.0
Додано
- Класичні аркуші XLS (BIFF8) тепер можна копіювати з однієї книги в іншу: TXLSWorksheets.AddCopy додає новий аркуш до книги-призначення та копіює значення комірок джерела, формули (пере-кадровані як текст, тож місце призначення перекомпілює їх проти власних імен аркушів, зберігаючи однойменні 3D-посилання живими), об'єднані комірки, коментарі, гіперпосилання, висоти рядків, ширини стовпців, рівні структури, заморожені панелі, захист аркуша, компонування сторінки, ручні розриви сторінок, колір вкладки та налаштування перегляду; формати комірки, рядків та стовпців мігрують за значенням у таблицю форматів книги-призначення, тож стилізоване джерело produce незалежно стилізовану копію
- Міжкнижкова міграція форматів у класичному рушії XLS тепер несе повну точність RGB та кольори теми поряд з кожним записом формату, тож заливки, шрифти та межі зберігають свої точні кольори замість відкату до апроксимацій палітри; це також застосовується до пасті на рівні діапазону між книгами
Версія 2.94.0
Додано
- Міжкнижкове копіювання аркуша тепер клонує умовні формати (з їхніми диференційними стилями та візуальними вмістами dataBar / colorScale / iconSet), таблиці, перевірки даних та діаграми (з кожною серією); кожен під-об'єкт глибоко копіює власний стан у аркуш-призначення
- Міжкнижкові посилання у формулах перезаписуються: посилання, чиє ім'я аркуша існує в місці призначення, розв'язується як є, інакше воно стає зовнішнім посиланням назад до книги-джерела (яка реєструється як зовнішній зв'язок) або #REF!, коли джерело не має файлової ідентичності; перезапис застосовується до формул комірок, правил умовного форматування, формул перевірки даних та діапазонів серій діаграм однаково
Версія 2.93.0
Додано
- Аркуш тепер можна копіювати з однієї книги в іншу: TXLSXSheets.AddCopy додає новий аркуш до книги-призначення та копіює на нього комірки, формули, об'єднані діапазони, розміри стовпців/рядків, прапорці приховане/згорнуте/структура, заморожені панелі, стан перегляду, захист, компонування сторінки, діапазон AutoFilter та колір вкладки; шість індексів стилю окремої комірки перемаповуються у власні пули Шрифт/Заливка/Межа/ЧисловийФормат/Вирівнювання/Захнистість книги-призначення через пошук за рівністю значень, тож стилізоване джерело produce незалежно стилізовану копію, а не індекси, що вказують на неправильний пул
- Шість пулів стилів окремого атрибута (Шрифти, Заливки, Межі, Числові формати, Вирівнювання, Захнистості) кожен відкривають 1-базований LookupOrAdd, що дедуплікує за значенням; новий зразковий проєкт CrossWorkbookCopy демонструє міжкнижкове копіювання зі збереженням стилю
Версія 2.92.0
Додано
- Книги XLSX тепер підтримують зведені таблиці: TXLSXWorksheet.AddPivotTable сканує плоский діапазон-джерело, автоматично будує кеш зведеної таблиці та повертає типізовану зведену таблицю для підключення осей рядків / стовпців / сторінки / даних, дзеркалячи давній API рушія BIFF8 (XLS), тож той самий код орієнтовано на будь-який формат; PivotSetDataFieldFormat призначає числовий формат кожному агрегованому полю значень
- Зведені таблиці, створені Excel, переносяться без втрати через Open потім Save: рушій XLSX зберігає кожне визначення кешу зведеної таблиці, записи кешу та частину зведеної таблиці дослівно та відтворює оригінальні байти при збереженні, тож повторне збереження книги ніколи не відкидає чи не змінює її зведені таблиці, навіть коли вони використовують функції, які типізована модель не відкриває
Версія 2.91.0
Додано
- AutoFilter аркуша тепер можна застосувати до даних, тож збережена книга відкривається з вже прихованими невідповідними рядками, дзеркалячи те, що робить Excel, коли значення обирається зі спадного списку фільтра
- Вбудовані зображення відкривають свою геометрію у реальних одиницях (сантиметри, дюйми, пункти) поруч зі значеннями EMU та можуть бути змінені у розмірі за коефіцієнтом масштабу з необов'язковим блокуванням співвідношення сторін
- Поля компонування сторінки можна встановлювати в сантиметрах безпосередньо як метричну зручність поверх дюймових полів
- Захищені аркуші XLSX тепер відкривають п'ятнадцять дрібнозерностих перемикачів дозволів (форматування комірок, вставлення/видалення рядків та стовпців, сортування, AutoFilter, виділення заблокованих/розблокованих комірок тощо) через нову властивість AllowOption, відповідаючи списку прапорців Excel «Рецензування → Захист аркуша»; налаштування окремих дій переносяться через файл
- Аркуші XLSX тепер можна дублювати (TXLSXSheets.Duplicate): додається новий аркуш, а на нього копіюються комірки, об'єднані діапазони, розміри стовпців/рядків, заморожені панелі, стан перегляду, захист, компонування сторінки та колір вкладки джерела, дзеркалячи «правий клік → Перемістити чи Скопіювати → Створити копію» Excel
- Двадцять два нових зразкових проєкти охоплюють можливості, що підтримує бібліотека: шифрування книги, коментарі до комірок, гіперпосилання, визначені імена, оцінка AutoFilter, вбудовані зображення, шаблон рахунка, розширене умовне форматування XLSX, об'єднані комірки, структурування рядків/стовпців, заморожені панелі, багатоаркушне компонування, масивні формули, копіювання/переміщення діапазону, пошук/заміна, системи дат, форматований текст, розширений CSV, опції експорту HTML, користувацькі числові формати, приховані рядки/стовпці та захист аркуша
Версія 2.90.29
Змінено
- Потоковий прямий зчитувач тепер підраховує кожну заповнену комірку, навіть коли не приєднано обробника окремої комірки, тож звичайний виклик ReadFile можна використовувати для швидкого визначення розміру аркуша; повернутена кількість та властивість CellCount повідомляють кількість просканованих заповнених комірок
Версія 2.90.28
Додано
- Формули тепер можна обчислювати крок за кроком, еквівалент команди «Оцінити формулу» Excel: новий трасувальник скорочує вираз на один підкрок за раз, починаючи з найвнутрішнішого, та повідомляє про кожне скорочення з його вихідним підвиразом, тим самим підвиразом після того, як операнди будуть замінені їхніми значеннями, та результуючим значенням, тож застосунки можуть показувати, як формується результат; він шанує пріоритет операторів, зберігає недоторканими посилання на діапазони для функцій на кшталт SUM та повторно використовує рушій обчислення аркуша, тож кожен крок узгоджується з повним перерахунком
Версія 2.90.27
Додано
- Книги XLSX тепер можна produce комірка за коміркою через новий потоковий прямий записувач, що видає кожен аркуш прямо в пакет по мірі надходження рядків, без побудови повного дерева комірок у пам'яті, тож дуже великі файли можна генерувати з майже постійним використанням пам'яті; записувач обробляє вбудовані рядки, числа, булеві значення, дати та формули на кількох аркушах та переносяться через цикл з потоковим прямим зчитувачем
Версія 2.90.26
Додано
- Книги XLSX тепер можна сканувати комірка за коміркою через новий потоковий прямий зчитувач, що викликає події окремої комірки та окремого аркуша без побудови повного дерева комірок у пам'яті, утримуючи використання пам'яті майже постійним для дуже великих файлів; кожна повідомлена комірка несе своє значення, вид (число, рядок, булеве, дата чи помилка), текст формули та індекс стилю з необов'язковим виявленням дати та підтримкою раннього переривання
Версія 2.90.25
Додано
- Класичні аркуші XLS тепер можуть додавати гіперпосилання з посилань на комірки в стилі A1 зі збереженням нормалізації URL, цільових підадрес робочих книг, тексту відображення та підказок на екрані
Версія 2.90.24
Додано
- Розриви сторінок класичного XLS тепер можна додавати з 1-базованих позицій рядків чи стовпців та посилань на комірки в стилі A1 через перевантаження колекції розривів сторінок та помічників аркуша
Версія 2.90.23
Додано
- Класичні аркуші XLS та колекції форм тепер можуть створювати прямокутні, овальні, лінійні та типізовані об'єкти малюнків автоформ зі рядків діапазонів у стилі A1
Версія 2.90.22
Додано
- Колекції форм класичного XLS тепер можуть створювати текстові поля зі рядків діапазонів у стилі A1 через перевантаження AddTextBox
Версія 2.90.21
Додано
- Текстові поля класичного XLS тепер можна переміщувати з рядків діапазонів у стилі A1 через нове перевантаження SetArea
Версія 2.90.20
Додано
- Текстові поля класичного аркуша XLS тепер можна створювати з рядків діапазонів у стилі A1 через перевантаження AddTextBox
Версія 2.90.19
Додано
- Класичні аркуші XLS тепер можуть створювати текстові поля малюнків безпосередньо з якорів рядків та стовпців через новий метод AddTextBox
Версія 2.90.18
Додано
- Класичні аркуші XLS тепер можуть створювати коментарі до комірок безпосередньо з координат рядків та стовпців через нові перевантаження AddComment
Версія 2.90.17
Додано
- Визначені імена класичного XLS тепер можна створювати з імені аркуша та координат рядків/стовпців через нові перевантаження Names.Add
Версія 2.90.16
Додано
- Вставлення зображень у класичному XLS тепер може розміщувати файли та зображення TBitmap у вказаній комірці аркуша без зміни поточного виділення
Версія 2.90.15
Додано
- Стовпці AutoFilter класичного XLS тепер можна знаходити за індексом поля через колекцію AutoFilterColumns
Версія 2.90.14
Додано
- Визначені імена класичного XLS тепер можна знаходити за коміркою робочого аркуша через нові перевантаження FindByCell у колекції Names
Версія 2.90.13
Додано
- Діапазони класичного XLS тепер підтримують створення коментаря з текстом та автором в одному виклику AddComment
Версія 2.90.12
Додано
- Коментарі класичного XLS тепер відкривають властивість Author для встановлення та зчитування збереженого автора коментаря через типізований API
Версія 2.90.11
Виправлено
- Копіювання діапазону класичного XLS тепер зберігає скопійовані авторів коментарів разом із текстом коментаря
Версія 2.90.10
Виправлено
- Класичний XLS AddHyperlink тепер зберігає цільові комірки книги як внутрішні підадреси замість зовнішніх шляхів до файлів
Версія 2.90.9
Виправлено
- Копіювання діапазону класичного XLS тепер зберігає гіперпосилання комірок у місці призначення, включаючи адресу, підказку на екрані та відображений текст
Версія 2.90.8
Виправлено
- Гіперпосилання XLS та XLSX тепер нормалізують голі www-адреси до абсолютних URL http перед збереженням, зберігаючи відображений текст
Версія 2.90.7
Виправлено
- Класичний XLS ApplyAutoFilter тепер ігнорує позадіапазонні індекси полів перед перебудовою діапазону фільтра, зберігаючи наявні критерії замість очищення
Версія 2.90.6
Виправлено
- Серії діаграм класичного XLS тепер відхиляють самопосилання аркуша діаграм без урахування регістру, запобігаючи неправильним джерелам даних Area3D, коли регістр імені аркуша відрізняється
Версія 2.90.5
Виправлено
- Аркуші діаграм класичного XLS тепер використовують звичайний захист за іменем аркуша при застосуванні користувацьких імен аркуша діаграм, запобігаючи дублюванню імен, що відрізняються лише регістром
Версія 2.90.4
Виправлено
- Зведені таблиці класичного XLS тепер зіставляють імена аркушів-джерел без урахування регістру під час створення чи повторного використання кешів зведених таблиць
Версія 2.90.3
Виправлено
- Перейменування аркуша класичного XLS тепер відхиляє дублікати без урахування регістру, зберігаючи однозначність пошуку після перейменування
Версія 2.90.2
Виправлено
- Пошук імені аркуша класичного XLS тепер виконується без урахування регістру в SheetByName, TryGetSheetByName, Index та IDByName
Версія 2.90.1
Виправлено
- Пошук визначених імен класичного XLS тепер виконується без урахування регістру, тож імена, розв'язані через колекцію Names книги, поводяться послідовно після збереження та повторного відкриття
Версія 2.90.0
Змінено
- НЕСУМІСНА ЗМІНА — колекція аркушів XLSX тепер 1-базована.
Workbook.Sheets[i],Sheets.IndexByNameта цілочислова властивістьActiveSheetтепер рахують від 1, щоб відповідати рушію XLS, тож перший аркуш — цеSheets[1], а неSheets[0]; позиційні помічникиActiveIndex,Activate,Moveта аргумент індексу аркуша уSaveAsCSV/SaveAsHTML/SaveAsRTFзалишаються 0-базовими - НЕСУМІСНА ЗМІНА — FreezePanes приймає рядок першим в обох рушіях. Рушії XLS та XLSX тепер спільно використовують
FreezePanes(ARow, ACol); метод XLSXFreezePane(ACol, ARow)та зворотне двоаргументне перевантаження XLS видалено, тож виклик, який заморожував N стовпців і M рядків, має поміняти два аргументи місцями - НЕСУМІСНА ЗМІНА — класи аркушів XLS втратили оманливий префікс I.
IXLSWorksheetтаIXLSWorkSheetsстаютьTXLSWorksheetтаTXLSWorksheets(вони завжди були класами, а не інтерфейсами); справжні інтерфейсиIXLSWorkbookтаIXLSRangeбез змін - НЕСУМІСНА ЗМІНА — перелік операторів перевірки даних XLS перейменовано. Члени
TXLSDvOperatorзмінюються зxlsDv...наxlsDvOp...(наприкладxlsDvOpBetween), тож вони більше не поділяють префікс із переліком типів перевірки та вишиковуються з іменамиxlsxDvOp...XLSX
Версія 2.89.46
Виправлено
- Користувацькі теми переживають цикл XLSX. Відкриття книги, що несе власну тему, та повторне збереження її зберігає цю тему замість заміни вбудованою темою Office, тож кольори на основі теми більше не перезаписуються мовчазно
- Перекриваючіся об'єднані ділянки відхиляються. Злиття діапазону комірок, що перетинає існуючу об'єднану ділянку, тепер відмовляється замість запису перекриваючихся записів, через які Excel повідомляє збережений файл як пошкоджений
- Дата, записана як значення комірки, відображається як дата. Призначення дати чи часу комірці, що все ще має загальний числовий формат, тепер застосовує типовий формат дати, тож вона відображається як дата в Excel, а не як сирий серійний номер; числовий формат, який ви встановили самі, залишається без змін
Безпека
- Глибоко вкладені формули більше не можуть вичерпати стек. Зчитувач формул .xls обмежує глибину вкладеності маркерів формул, тож спотворена чи ворожа книга з екстремальним вкладенням відхиляється замість ризику збою
Версія 2.89.45
Виправлено
- Імена записів ZIP, позначені як UTF-8, читаються коректно. Коли архів позначає ім'я члена як UTF-8 (загального призначення біт 11), ім'я декодується як UTF-8 замість локальної кодової сторінки архіву
- Літеральні комірки помилок у .xls зберігаються. Комірка, збережена безпосередньо як значення помилки (запис BOOLERR із встановленим прапорцем помилки), зберігає свій код помилки замість зчитування назад порожнім
- Шифрування пакета більше за 2 ГБ завершується чисто. Standard Encryption відхиляє надмірний вміст замість переповнення 32-бітової арифметики розміру
Версія 2.89.44
Виправлено
- Експорт формул ODS зберігає визначені імена недоторканими. Визначене ім'я, що нагадує посилання на комірку (наприклад
TaxRate2), більше не перезаписується як неправильна ODF-адреса комірки, а парсинг_xlnm.Print_Titlesбільше не розщеплює ім'я аркуша, що містить кому - Імпорт ODS безпечний за останнім стовпцем. Рядок, чиї повторювані комірки форматованого тексту виходять за останній стовпець аркуша, більше не використовує звільнений прототип форматованого тексту
Версія 2.89.43
Виправлено
- Експорт RTF зберігає не-ASCII текст. Текст комірки записується з Unicode-екрануваннями
\uта заголовок заявляє кодову сторінку, тож CJK / кирилиця / акцентовані символи експортуються недоторканими замість згортання у «?» під дією кодової сторінки записувача - Багатосторінковий навігаційний фрейм HTML екранує імена аркушів. Імена аркушів на сторінці індексу / фрейму HTML-екрановані, а не-ASCII символи стають числовими символьними посиланнями, тож вкладка з ім'ям із символами розмітки чи не-ASCII літерами відображається коректно
Версія 2.89.42
Виправлено
- Числа в науковій нотації у формулах парсляться. Літерал на кшталт
1E3або2.5E-3усередині формули тепер токенізується як одне число замість числа з подальшим випадковим ім'ям - SEARCH безпечний для Unicode. Функція SEARCH без урахування регістру більше не згортає регістр через кодову сторінку ANSI, тож не-ASCII збіги «знайти-текст» / «у-тексті» відбуваються на правильній позиції символу
Версія 2.89.41
Виправлено
- Система дат 1904 застосовується до дат комірок XLSX. Читання чи запис книги, що використовує базу дат Mac 1904, тепер зміщує серійні номери дат на 1462 днів, тож дати в таких книгах відповідають Excel замість відхилення приблизно на чотири роки
Версія 2.89.40
Виправлено
- Дати у сторонніх файлах XLSX завантажуються як дати. Комірка, чиє стиль використовує будь-який вбудований чи користувацький числовий формат дати/часу — не лише власний стиль дат HotXLS — тепер читається назад як значення дати замість сирого серійного номера, включаючи формати дати/часу локалі CJK
Версія 2.89.39
Виправлено
- Числові формати дат виявляються точніше. Код формати розпізнається як дата/час лише за неекранованими маркерами дат поза рядковими літералами та дужковими секціями, тож літерал на кшталт
#,##0 "MM"більше не трактується як дата, а однолітерні коди на кшталтm/dбільше не пропускаються - ZIP-архіви з великим коментарем читають свій запис кінця каталогу коректно. Запис кінця центрального каталогу парситься з буфера сканування лише тоді, коли він повністю захоплений, а інакше повторно читається з файлу, виправляючи можливе неправильне зчитування, коли коментар розщеплює запис через вікно сканування
Версія 2.89.38
Виправлено
- Шифровані XLSX, записані зі Standard Encryption, тепер відкриваються в Excel. Шифрований пакет шифрується AES-128 у режимі ECB, як вимагає формат, замість CBC, що залишало усе після першого блоку нечитабельним
- Дешифрування RC4 BIFF8 (.xls), захищеного паролем, виправлено. Потік ключів тепер переключається та споживається в кроці з позицією потоку, тож правильний пароль дешифрує тіло книги замість produce спотворених комірок
Версія 2.89.37
Виправлено
- Видалення аркуша зберігає визначені імена узгодженими. Видалення аркуша тепер відкидає визначені імена книги, обмежені ним, та зміщує імена, обмежені пізнішими аркушами, вниз на один, тож збережена книга більше не вказує обмежене аркушем ім'я (наприклад область друку чи заголовки друку) на неправильний аркуш
Версія 2.89.36
Виправлено
- Зчитування пошкоджених файлів .xls надійніше. Багатокоміркові записи чисел / пробілів та палітра кольорів більше не перечитуються, коли їхні поля довжини пошкоджені, а зчитувач книги звільняється замість витоку, коли відкриття файлу викликає помилку
- Вставлення зображень більше не витікає при збої. Завантаження пошкодженого чи нечитабельного зображення (BMP / WMF / EMF / JPEG / PNG) звільняє свій тимчасовий потік та растрове зображення замість їх витоку
- Дубльовані записи стилів уникаються під час збереження. Стиль, чий перший збіг — це найперший запис таблиці, тепер коректно спільний замість запису двічі під час оптимізації стилів BIFF
- Експорт у HTML екранує імена шрифтів, тож ім'я шрифту, що містить
&,<,>або", більше не ламає атрибут стилю комірки в експортованому файлі
Версія 2.89.35
Виправлено
- Кілька функцій аркуша тепер відповідають Excel.
EXPповертає свій результат замість помилки «непідтримується», одиоаргументнийWEEKDAYнумерує неділю як 1,MODзберігає знак та дробову частину дільника, аLEFT/RIGHT/MIDповертають#VALUE!для негативних довжин чи неправильної кількості аргументів - Не-ASCII числові символьні посилання в XLSX тепер читаються коректно. Числові XML-сутності такі як
中у спільних рядках, тексті комірок та атрибутах декодуються до цілого символу замість єдиного скороченого байта - Текстові правила умовного форматування виживають подвійні лапки. Текст, що містить
"у правилах containsText / beginsWith / endsWith, екранується, тож збережена книга залишається дійсною - Редагування діапазону умовного форматування більше не залишає випадковий діапазон. Очищення чи переміщення стовпця з ділянки умовного форматування більше не produce перекриваючий фантомний діапазон
- Індексовані кольори вкладок аркуша, зчитані з .xls, використовують правильний запис палітри, а дати з числовим форматом усередині багатокоміркових (MULRK) записів зберігають виявлення дати під системою дат 1904
- Критерії AutoFilter «верхні / нижчі відсотки» переносяться через цикл. Завантаження фільтра «верхні N відсотків» чи «нижчі N відсотків» з .xls більше не знижує його до звичайного підрахунку елементів
- Гіперпосилання mailto: розпізнаються як URL-адреси, а ScreenTips гіперпосилань (підказки) записуються, тож вони переносяться через цикл замість відкидання
- Експорт у HTML видає дійсні розміри шрифтів у локалі з комою-десятковою, тож експортовані шрифти комірок більше не відкочуються до браузерних значень за замовчуванням
- Зчитування спотворених чи скорочених файлів надійніше. Пошкоджені малюнки OfficeArt, позадіапазонні індекси стилю / кольору / палітри / теми та не-базові JPEG більше не збійовують чи не produce сміттєвих розмірів, а витік пам'яті спільних рядків під час завантаження форматованого тексту виправлено
Версія 2.89.34
Додано
- Текстові поля аркуша XLSX легше керувати.
TXLSXWorksheetдодаєIndexOfTextBoxAt,FindTextBoxAt,DeleteTextBox,DeleteTextBoxAt,DeleteTextBoxesInRangeтаClearTextBoxes, дозволяючи викликувачам знаходити та видаляти окремо стоячі текстові поля малюнків за якорем комірки чи діапазоном, що перетинається - Ручні розриви сторінок XLSX можна знаходити та видаляти за діапазоном.
TXLSXWorksheetдодаєIndexOfRowBreak,IndexOfColBreak,RemoveRowBreaksInRangeтаRemoveColBreaksInRangeдля прямого обслуговування розривів сторінок у рядках / стовпцях
Виправлено
- Аркуші XLSX лише з текстовими полями тепер записують зв'язок малюнка. Аркуш, що містить окремо стоячі текстові поля малюнків, але не має зображень, діаграм, коментарів, гіперпосилань чи таблиць, тепер видає відповідний зв'язок малюнка
xl/worksheets/_rels/sheetN.xml.rels, тож збережений пакет розв'язує своє посилання<drawing r:id="...">
Версія 2.89.33
Змінено
- Демо-верстати C++Builder тепер відповідають функціям огляду Delphi. Зразок WorkbookAudit C++Builder виводить ту саму серйозність, рекомендовану дію та докази огляду, що й версія Delphi, у своєму списку книг та у звітах JSON, CSV та HTML, а зразок ConversionWorkbench C++Builder записує формат джерела, дію та примітку огляду на завдання перетворення, включаючи агреговані підрахунки дій у звіті HTML
Версія 2.89.32
Змінено
- Демо ConversionWorkbench тепер працює без нагляду з командного рядка. Виклик
ConversionWorkbench.exe <тека> [/targets=xlsx,csv,html] [/persheet] [/skip] [/quiet]сканує теку, конвертує кожне джерело у запитані цільові формати, записує звіти перетворення та виходить;/quietтримає вікно прихованим, тож перетворення можуть працювати зі скриптів та запланованих завдань - Пакетні перетворення залишаються інтерактивними. Смуга поступу відстежує список завдань (відмічені джерела помножені на відмічені цілі), кнопка Скасувати перериває пакет зі звітами, що охоплюють завершені завдання, а подвійне клацання рядка результату відкриває produce файл (чи вихідну теку для наборів CSV окремого аркуша)
- Опції верстата зберігаються між сесіями. Тека, цільові формати, роздільник, опції HTML, перемикачі ODS, CSV окремого аркуша, пропуск наявних та вибір потокової передачі зберігаються в INI-файлі поруч з виконуваним файлом; пароль шифрування навмисно не зберігається
Версія 2.89.31
Змінено
- Демо WorkbookAudit тепер працює без нагляду з командного рядка. Виклик
WorkbookAudit.exe <тека> [/r] [/quiet]сканує теку (необов'язково з підпапками), перевіряє кожну книгу, експортує звіти JSON, CSV та HTML та виходить;/quietтримає вікно прихованим, тож перевірка може працювати зі скриптів та запланованих завдань - Великі пакети залишаються інтерактивними. Смуга поступу відстежує пакет, кнопка Скасувати перериває його (решта файлів позначається Скасовано), а вибір книги тепер заповнює панель деталізації окремого аркуша деталями структури, формули, посилання та захисту
- Вибір теки перевірки та підпапки зберігається. Опції зберігаються в INI-файлі поруч з виконуваним файлом та відновлюються при наступному старті
Версія 2.89.30
Змінено
- Демо WorkbookAudit тепер виводить серйозність огляду та рекомендовані дії. Основний список плюс звіти JSON, CSV та HTML включають серйозність, рекомендовану дію та докази огляду, тож пакетні перевірки можуть прямувати шифрованими, з підтримкою макросів, зовнішньо-зв'язаними, захищеними, перевантаженими стилями чи перевантаженими формулами книгами без читання кожного рядка аркуша
- Демо ConversionWorkbench тепер записує головну книгу огляду перетворення. Кожне завдання записує формат джерела, дію та примітку огляду, а звіт HTML агрегує підрахунки дій для прийнятих виводів, наборів CSV окремого аркуша, повторно використаних файлів, непідтримуваних виборів цілі, ремонтів джерела, кандидатів на повторну спробу та результатів ручного огляду
Версія 2.89.29
Додано
- Класичні книги XLS тепер читають властивості документа назад при відкритті. Відкриття наявного файлу чи потоку .xls заповнює
Title,Subject,Author,Keywords,Comments,CompanyтаManagerіз інформації зведення файлу, відповідаючи поведінці властивостей документа моделі XLSX; властивості, збережені самим Excel, включаючи не-латинський текст у локалізованих кодових сторінках ANSI, декодуються коректно
Версія 2.89.28
Змінено
- Демо ConversionWorkbench отримує чотири пакетно-орієнтовані опції. Зразки Delphi та C++Builder тепер можуть розщеплювати кожен аркуш у власний файл CSV (
<ім'я>.<аркуш>.csv, для класичних XLS та XLSX-модельних джерел), записувати захищені паролем вивід XLSX черезSaveAsEncrypted(включаючи класичний-XLS міст-шлях), пропускати перетворення, чий вивід уже існує (звітується як пропущені, а не перезапускаються), та вмикати потокові записи XLSX для великих книг
Версія 2.89.27
Змінено
- Демо WorkbookAudit тепер сканує глибше та позначає маркери ризику. Зразки Delphi та C++Builder отримали рекурсію підпапок з відносними до теки іменами файлів, виявлення захищених паролем XLSX через
CanReadEncrypted(звітується як шифровані замість загальної помилки відкриття) та колонку Прапорці, що виявляє проєкти VBA, зовнішні посилання, приховані аркуші, захищені аркуші та шифровані файли з одного погляду у списку та в кожному звіті - Звіти перевірки несуть багатші метадані. Звіт JSON групує повний набір властивостей документа (заголовок, тема, автор, ключові слова, компанія, менеджер, опис, категорія, створено, змінено, останній автор змін) в об'єкт
docProps, а всі три формати звітів додають підрахунки зображень окремого аркуша; імена, обмежені аркушем, тепер збираються поруч з іменами на рівні книги для класичних файлів XLS
Версія 2.89.26
Додано
- Демо Delphi та C++Builder тепер включають пакетний конвертер ConversionWorkbench. Новий зразок збирає джерела XLS, XLSX, CSV та ODS з теки, конвертує відмічені файли за один запуск у будь-яку комбінацію цілей XLSX, CSV, HTML, RTF, ODS та XLS та прямує кожним джерелом через відповідну об'єктну модель, включаючи міст
SaveXLSWorkbookAsXLSXдля класичного XLS та двокроковий шлях XLS-у-ODS - Опції перетворення відкриваються окремо для формату. Форма пропонує вибір роздільника CSV, опції заголовка та класу таблиці HTML та перемикачі включення діаграм та зображень ODS; недоступний напрям XLSX-у-XLS повідомляється як непідтримуваний замість мовчазного збою
- Кожен запуск записує звіт перетворення.
ConversionReport.csvтаConversionReport.htmlзаписують статус, таймінг та розмір виводу окремого завдання поруч з конвертованими файлами, а генератор зразків створює входи XLS, XLSX, CSV та ODS, тож верстат працює з коробки
Версія 2.89.25
Додано
- Демо Delphi та C++Builder тепер включають інструмент пакетної перевірки WorkbookAudit. Новий зразок сканує теку книг XLS та XLSX та підсумовує структуру аркуша, підрахунки формул з іменами функцій, що використовуються, посиланнями на зовнішні книги (записи зовнішніх-зв'язків, дужкові посилання у формулах та цілі визначених імен), гіперпосилання, використання стилів, об'єднані діапазони, коментарі, таблиці, умовні формати, перевірки даних, діаграми, діапазони AutoFilter, заморожені панелі та стан захисту
- Результати перевірки експортуються як звіти JSON, CSV та HTML. Один клік записує
AuditReport.json,AuditReport.csvтаAuditReport.htmlпоруч з перевіреними файлами, охоплюючи метадані на рівні книги, пули стилів, визначені імена та деталі окремого аркуша - Демо перевірки самодостатнє. Генератор зразків створює класичні XLS та XLSX книги з формулами, зовнішніми зв'язками, прихованими аркушами, гіперпосиланнями, коментарями, таблицями, діаграмами та захищеними аркушами, тож повний потік перевірки працює з коробки
Версія 2.89.24
Виправлено
- Експорт CSV у XLSX тепер записує обчислені результати формул.
TXLSXWorkbook.SaveAsCSVобчислює комірки формул через рушій формул книги перед записом тексту CSV чи TSV, тож комірки лише з формулами експортують свої відображені значення замість тексту формули
Версія 2.89.23
Додано
- Експорт OpenDocument тепер можна налаштовувати опціями. Новий об'єкт опцій експорту дозволяє збереженому
.odsвиключати діаграми чи вбудовані зображення та перевизначати рядок генератора, записаний у метаданих документа, через нові перевантаження SaveAsODS, що приймають опції - Виключений вміст не залишає слідів. Вимкнення діаграм чи зображень прибирає їхні теки об'єктів, рамки малюнків та записи маніфесту разом, тож збережений пакет ніколи не несе осиротілого посилання
Версія 2.89.22
Додано
- Файли OpenDocument тепер відкриваються через звичайний виклик open. Передача файлу чи потоку
.odsдо загального методу open виявляє пакет OpenDocument та завантажує його автоматично, тож більше не потрібно заздалегідь знати, чи є файл.xlsxчи.ods - Додано скорочення SaveAsODS. Збереження у OpenDocument більше не вимагає передачі значення формату файлу, дзеркалячи спосіб збереження інших форматів
- Завантажений формат можна запитати. Властивість SourceFormat повідомляє, чи книга, яку відкрито, походить із файлу OpenXML чи OpenDocument
Версія 2.89.21
Виправлено
- Надрядкові та підрядкові серії зберігаються під час збереження форматованого тексту у
.xlsx. Серія, позначена як надрядкова чи підрядкова всередині стилізованої комірки, тепер записує свою вертикальну позицію у спільний рядок та читає її назад, тож підвищений чи знижений текст переживає цикл.xlsxзамість падіння на базову лінію - Надрядкові та підрядкові переносяться між форматами. Форматований текст, зчитаний з файлу
.ods, зберігає свої надрядкові та підрядкові серії під час повторного збереження книги як.xlsxта повторного відкриття
Версія 2.89.20
Додано
- Експорт та імпорт ODS тепер несуть умовні формати шкали кольорів та смуг даних. Дво- чи трикольорова шкала та смуга даних записуються зі своїми точками значень та кольорами та читаються назад, розширюючи наявні правила порівняння, тож ці графічні формати переживають цикл
.ods - Умовні формати на основі формул підтримуються. Правило, кероване формулою, записується як умова is-true-formula з виразом, перекладеним на синтаксис OpenDocument, та читається назад у правило формули, поруч з наявними правилами значення комірки
Версія 2.89.19
Додано
- Експорт та імпорт ODS тепер несуть підказки введення перевірки даних. Заголовок та текст підказки, що показуються під час вибору перевіреної комірки, записуються поруч з наявним сповіщенням про помилку та читаються назад, тож вхідне повідомлення переживає цикл
.ods - Колір вкладки аркуша зберігається. Колір вкладки аркуша записується у файл
.odsта читається з нього, а імпорт приймає як загальний атрибут розширення, так і стандартний атрибут кольору вкладки OpenDocument
Версія 2.89.18
Додано
- Експорт та імпорт ODS тепер несуть групи рядків та стовпців. Групи структури записуються як вкладені елементи груп рядків та стовпців та читаються назад, тож згруповані рядки та стовпці зберігають свій рівень структури через цикл
.ods, включаючи кілька рівнів вкладеності - Згорнуті групи залишаються згорнутими. Група, чиї рядки чи стовпці згорнуті, позначається як невідображувана під час збереження та відновлюється під час завантаження, а групування співіснує з прихованими рядками, розривами сторінок та розмірами рядків чи стовпців без втручання
Версія 2.89.17
Додано
- Експорт та імпорт ODS тепер несуть область друку. Діапазон друку аркуша записується у файл
.odsта читається назад, тож визначена область друку переживає збереження та перезавантаження - Ручні розриви сторінок зберігаються. Розриви сторінок у рядках та стовпцях записуються як маркери break-before на відповідних рядках та стовпцях та читаються назад під час завантаження, тож ручна пагінація переноситься через цикл
.ods
Версія 2.89.16
Додано
- Експорт та імпорт ODS тепер несуть колонтитули. Збереження у
.odsзаписує кожен колонтитул аркуша з його лівою, центральною та правою областями, а відкриття файлу.odsчитає їх назад, тож поля номеру сторінки, кількості сторінок, дати, часу та імені аркуша плюс літеральний текст переживають цикл - Кожен аркуш зберігає власний колонтитул. Книга, чиї аркуші несуть різні колонтитули, тепер записує окремий стиль сторінки на аркуш, тож кожен аркуш перезавантажується з власним колонтитулом замість спільного з першим аркушем
Версія 2.89.15
Додано
- Експорт та імпорт ODS тепер несуть обертання тексту. Комірка, чий текст обернутий, зберігає свій кут через цикл збереження та перезавантаження
.ods, з коректним зіставленням за та проти годинникової стрілки кутів між конвенціями електронних таблиць та OpenDocument - Відступ комірки зберігається. Рівень відступу комірки записується як ліва межа під час збереження та читається назад під час завантаження, тож комірки з відступом зберігають свою глибину через цикл
.ods
Версія 2.89.14
Додано
- Експорт ODS тепер записує форматований текст. Збереження комірки, чий текст поєднує кілька серій форматування, у
.odsвидає один текстовий проміжок на серію з власним автоматичним стилем text-family, тож ім'я шрифту, розмір, жирний, курсив, підкреслення, закреслення, колір та надрядковий чи підрядковий текст переживають збереження замість зведення до одного формату - Ідентичні стилі серій спільні. Серії, що несуть однакове форматування, повторно використовують єдиний запис автоматичного стилю замість видачі дубліката на серію, а звичайна комірка все одно записується як єдиний абзац без проміжку
Версія 2.89.13
Додано
- Імпорт ODS тепер зберігає форматування форматованого тексту. Відкриття файлу
.ods, чиї комірки поєднують кілька текстових проміжків з різним форматуванням, зберігає кожну серію замість зведення комірки до простого тексту, тож ім'я шрифту, розмір, жирний, курсив, підкреслення, закреслення, колір та надрядковий чи підрядковий текст переносяться на серію - Звичайні комірки залишаються звичайними. Комірка з єдиною неформатованою серією та будь-яка числова, дата чи комірка формули залишається як звичайне значення замість підвищення до форматованого тексту
Версія 2.89.12
Додано
- Імпорт ODS тепер читає діаграми. Відкриття файлу
.odsпарсить кожен вбудований об'єкт діаграми, на який посилається аркуш, тож стовпчасті, смужні, лінійні, кругові, площинні, кільцеві, точкові, бульбашкові та радарні діаграми відновлюються на аркуші, що їм належить, завершуючи цикл з експортом діаграм - Діапазони серій діаграм відновлюються. Кожна серія несе свій діапазон значень та, за наявності, діапазон категорій, перетворений назад з OpenDocument-синтаксису діапазону комірок, тож діаграма вказує на ті самі дані аркуша
- Пошкоджена чи відсутня діаграма безпечно пропускається. Рамка малюнка, чиєї об'єкт діаграми відсутній чи не є діаграмою, більше не перериває завантаження, а будь-яке резервне зображення в тій самій рамці все одно імпортується
Версія 2.89.11
Додано
- Експорт ODS тепер записує вбудовані зображення. Збереження у
.odsзберігає кожне зображення аркуша в теці пакетаPictures/, посилається на нього з рамки малюнка всередині прив'язаної комірки та реєструє в маніфесті, тож зображення, розміщені в книзі, переносяться у збережений файл - Розмір зображення зберігається. Кожне зображення записує свою ширину та висоту в сантиметрах, тож зображення, збережене у
.odsта повторно відкрите, зберігає однаковий розмір на екрані - Зображення на об'єднаній комірці залишаються прив'язаними. Зображення, чий якір потрапляє всередину об'єднаного діапазону, розміщується у верхній лівій комірці діапазону, а зображення, прив'язане за межами сітки аркуша, пропускається замість запису як запису без рамки малюнка
Версія 2.89.10
Виправлено
- Рівень помилки перевірки даних ODS тепер переживає цикл. Збереження перевірки, чиє сповіщення є попередженням чи інформацією, більше не експортує її без типу сповіщення, тож повторне відкриття файлу
.odsзберігає оригінальний рівень замість мовчазного зниження до сповіщення зупинки
Версія 2.89.9
Додано
- Експорт ODS тепер записує діаграми. Збереження у
.odsсеріалізує кожну діаграму аркуша у власний вбудований піддокумент діаграми всередині пакета, тож стовпчасті, смужні, лінійні, кругові, площинні, кільцеві, точкові, бульбашкові та радарні діаграми переносяться у збережений файл - Діаграми посилаються зі свого аркуша. Аркуш, що володіє діаграмою, зв'язується з вбудованим об'єктом діаграми через рамку малюнка, а кожен об'єкт діаграми реєструється в маніфесті пакета, тож LibreOffice відкриває документ без повідомлень про пошкодження
- Діапазони серій перекладаються. Кожна серія діаграми несе свій діапазон значень та, за наявності, діапазон категорій, перетворений на OpenDocument-синтаксис діапазону комірок, тож діаграма вказує на ті самі дані аркуша
Версія 2.89.8
Додано
- Імпорт ODS тепер читає вбудовані зображення. Відкриття файлу
.odsвитягує зображення, збережені в теці пакетаPictures/, розпізнаючи зображення PNG, JPEG, GIF та BMP за їхнім вмістом, тож малюнок, прив'язаний до комірки, повторно відкривається як зображення аркуша - Розташування зображення зберігається. Кожне імпортоване зображення зберігає якірну комірку рамки малюнка, що його тримає, а його ширина та висота перетворюються зі збережених розмірів рамки
- Відсутня графіка безпечно пропускається. Рамка малюнка, чиє зображення, на яке посилається, відсутнє в пакеті, проходиться без помилки, тож частковий документ все одно відкривається
Версія 2.89.7
Додано
- Експорт ODS тепер записує заморожені панелі. Збереження у
.odsзаписує заморожені стовпці та рядки кожного замороженого аркуша в налаштуваннях перегляду пакета, тож аркуш, розщеплений на заморожений заголовок, повторно відкривається замороженим у LibreOffice та черезOpenODS - Експорт ODS тепер записує компонування сторінки. Макет сторінки у збереженому пакеті несе розмір паперу, орієнтацію (портретна чи альбомна) та верхнє, нижнє, ліве та праве поля з налаштувань сторінки аркуша, з резервним варіантом A4 портретна, коли налаштувань сторінки немає
Версія 2.89.6
Додано
- Імпорт ODS тепер читає заморожені панелі. Відкриття файлу
.odsвідновлює заморожені стовпці та рядки, записані в налаштуваннях перегляду пакета, тож аркуш, розщеплений на заморожений заголовок, повторно відкривається замороженим - Імпорт ODS тепер читає діапазони AutoFilter. Відфільтрований діапазон, збережений у пакеті як діапазон бази даних, читається назад на свій аркуш, тож діапазони AutoFilter, записані
SaveAs, читаються назадOpenODS
Версія 2.89.5
Додано
- Імпорт ODS тепер читає умовні формати. Відкриття файлу
.odsприносить правила порівняння значення комірки (більше ніж, менше ніж, дорівнює, не дорівнює, більше чи дорівнює, менше чи дорівнює, між та не між), кожне застосовується до комірок, на які воно орієнтоване - Правила інтервалу зберігають обидві межі. Правило «між» чи «не між» відновлює обидва свої порогові значення, тож нижня та верхня межі переживають імпорт
- Правила порівняння переносяться через цикл. Умовні формати значення комірки, записані у
.ods, повторно відкриваються зі своїм оператором, порогами та цільовим діапазоном недоторканими, тож правила, збереженіSaveAs, читаються назадOpenODS
Версія 2.89.4
Додано
- Імпорт ODS тепер читає перевірки даних. Відкриття файлу
.odsприносить перевірки вмісту комірки: числові діапазони (між та не між), спадні списки, перевірки довжини тексту та скалярні порівняння, кожне застосовується до комірок, що на нього посилаються - Деталі перевірки зберігаються. Прапорець дозволено-порожню-комірку та сповіщення про помилку (його стиль зупинки, попередження чи інформації та текст повідомлення) переносяться в модель книги
- Елементи списку переживають цикл. Спадний список, записаний у
.ods, повторно відкривається зі своїми елементами недоторканими, тож перевірки, збереженіSaveAs, читаються назадOpenODS
Версія 2.89.3
Додано
- Експорт ODS тепер записує структурні елементи. Збереження у
.odsнесе іменовані діапазони, гіперпосилання комірок, приховані рядки та стовпці, діапазони AutoFilter, умовні формати та перевірки даних у пакет - Іменовані діапазони та гіперпосилання переносяться через цикл. Імена на рівні книги зберігають свою адресу, зовнішні та внутрішні посилання комірок зберігають свою ціль, текст відображення та підказку, а приховані рядки та стовпці повторно відкриваються прихованими
- AutoFilter, умовні формати та перевірки видаються. Відфільтрований діапазон записується зі своїми кнопками фільтра, правила умовного форматування на основі порівняння значень та перевірки вмісту комірок записуються, тож споживачі на кшталт LibreOffice зберігають їх
Версія 2.89.2
Додано
- Імпорт ODS тепер читає повні стилі комірок. Відкриття файлу
.odsприносить ім'я шрифту, розмір шрифту, жирний, курсив, підкреслення та закреслення стилізованих комірок поряд з уже підтримуваними кешованими значеннями та числовими форматами - Колір шрифту, заливка фону та межі імпортуються. Явні кольори шрифту зівставляються з непрозорим RGB, колір фону стає суцільною заливкою, а чотири краї комірки (верхній, нижній, лівий, правий) несуть свій стиль лінії та колір
- Вирівнювання імпортується. Горизонтальне та вертикальне вирівнювання тексту та опція перенесення тексту застосовуються до комірки
- Успадкування батьківського стилю шанується. Стилі читають свої значення через ланцюг батьківського стилю ODS, тож дочірній стиль перевизначає свій батьківський атрибут за атрибутом, успадковуючи все, що він залишає невстановленим
- Замикає цикл запис/читання. Стилі комірок, записані
SaveAsу.ods, читаються назадOpenODS, зберігаючи шрифт, колір, заливку, межі та вирівнювання
Версія 2.89.1
Додано
- Експорт ODS тепер записує повні стилі комірок. Збереження у
.odsнесе ім'я шрифту, розмір шрифту, жирний, курсив, підкреслення, закреслення та колір шрифту в пакет, тож стилізовані комірки зберігають свій вигляд при повторному відкритті - Заливки фону та межі комірок записуються. Суцільні кольори фону та чотири краї комірки (верхній, нижній, лівий, правий) видаються зі своєю шириною, стилем лінії та кольором
- Вирівнювання та перенесення зберігаються. Горизонтальне та вертикальне вирівнювання тексту плюс опція перенесення тексту переносяться у стилі комірок ODS
- Стилі комбінуються з числовими форматами. Один стиль комірки може поєднувати свій шрифт, заливку та межі з числовим форматом, а ідентичні комбінації стилів спільні, тож пакет залишається компактним
Версія 2.89.0
Додано
- Експорт OpenDocument Spreadsheet (.ods).
SaveAsтепер приймаєxlsxOpenDocumentSpreadsheetта записує дійсний пакет ODF безпосередньо, без проходу через XLSX-посередника - Типізовані значення комірок записуються. Текст, числа, булеві значення та дати видаються зі своїми ODF-типами значень, тож значення зберігають свій зміст при повторному відкритті
- Числові формати зберігаються. Поширені формати (десяткові знаки, групування тисяч, валюта, відсоток, наукова нотація та ISO-дати) записуються як ODF-стилі даних та посилаються комірками, що їх використовують
- Структура аркуша переноситься. Аркуші, ширини стовпців та об'єднані діапазони комірок записуються в пакет
- Переносяться через цикл через HotXLS. Пакет, записаний
SaveAs, можна прочитати назад черезOpenODS, зберігаючи значення, числові формати, ширини стовпців та об'єднання
Версія 2.88.249
Додано
- Функції довірчого інтервалу тепер обчислюються у рушії формул.
CONFIDENCE.NORMвикористовує нормальний квантиль, аCONFIDENCE.T— квантиль Стьюдента-t, щоб повернути півширину довірчого інтервалу середнього - Сучасні статистичні імена доступні.
PERCENTILE.INC,PERCENTILE.EXC,QUARTILE.INC,QUARTILE.EXC,RANK.AVG,COVARIANCE.PтаCOVARIANCE.Sобчислюють інклюзивні та ексклюзивні перцентилі та квартилі, ранжирування з усередненням при нічиї та коваріацію генеральної сукупності та вибірки - Аліаси для застарілих форм.
MODE.SNGLтаRANK.EQзівставляються з наявнимиMODEтаRANK
Версія 2.88.248
Додано
- Функція біноміального розподілу тепер обчислюється у рушії формул.
BINOM.DISTобчислює масу ймовірності та кумулятивний розподіл, використовуючи регуляризований неповний бета для кумулятивної форми - Функція розподілу Пуассона тепер обчислюється у рушії формул.
POISSON.DISTобчислює масу ймовірності та кумулятивний розподіл, використовуючи верхню неповну гамма для кумулятивної форми - Стабільне обчислення. Обидві маси використовують лог-гамма факторіальну форму, щоб залишатися точними для великих підрахунків, а неправильні параметри повертають
#NUM!
Версія 2.88.247
Додано
- Функції бета-розподілу тепер обчислюються у рушії формул.
BETA.DISTтаBETA.INVобчислюють кумулятивний розподіл, густину ймовірності та обернену функцію на довільному інтервалі[A, B] - Функції розподілу Стьюдента-t доступні.
T.DIST,T.DIST.RT,T.DIST.2T,T.INVтаT.INV.2Tохоплюють лівий хвіст, правий хвіст, двохвостову ймовірність та їхні обернені функції - Функції F-розподілу доступні.
F.DIST,F.DIST.RT,F.INVтаF.INV.RTобчислюють кумулятивний розподіл, правий хвіст та обернені функції - Спільне ядро обчислення. Усі три сімейства використовують регуляризований неповний бета з обчисленням ланцюгового дробу, обернені функції розв'язуються бісекцією, а неправильні параметри повертають
#NUM!
Версія 2.88.246
Додано
- Функції гамма- та хі-квадрат-розподілу тепер обчислюються у рушії формул.
GAMMA.DIST,GAMMA.INV,CHISQ.DIST,CHISQ.DIST.RT,CHISQ.INVтаCHISQ.INV.RTобчислюють кумулятивний розподіл, густину ймовірності, правий хвіст та їхні обернені функції вживу черезCalculate - Високоточна лог-гамма доступна.
GAMMALN.PRECISEповертає натуральний логарифм гамма-функції - Точне та надійне обчислення. Кумулятивні значення використовують рядні та ланцюгово-дробові розклади регуляризованої неповної гамма, обернені функції розв'язуються бісекцією, а неправильні параметри повертають
#NUM!
Версія 2.88.245
Додано
- Функції неперервного розподілу тепер обчислюються у рушії формул.
EXPON.DIST,WEIBULL.DIST,LOGNORM.DISTтаLOGNORM.INVобчислюють кумулятивний розподіл, густину ймовірності та обернену функцію вживу черезCalculate - Обчислення у замкненій формі. Експоненційний та Вейбулла розподіли використовують свої аналітичні формули, тоді як логнормальний розподіл повторно використовує нормальний CDF та його обернену функцію; неправильні параметри повертають
#NUM!
Версія 2.88.244
Виправлено
- Обернений нормальний розподіл тепер точний у хвостах.
NORMSINV,NORM.S.INVтаNORM.INVвикористовували логарифм з основою 10 у хвостових гілках (ймовірності нижче приблизно 0.024 чи вище приблизно 0.976), тоді як алгоритм вимагає натурального логарифма; результати тепер правильні по всьому діапазону ймовірностей
Версія 2.88.243
Додано
- Функції нормального розподілу зі сучасними крапковими іменами тепер обчислюються у рушії формул.
NORM.DIST,NORM.INV,NORM.S.DISTтаNORM.S.INVобчислюють кумулятивний розподіл, густину ймовірності та їхні обернені функції вживу черезCalculate - Крапкові статистичні аліаси.
STDEV.S,STDEV.P,VAR.SтаVAR.Pрозпізнаються як імена Excel 2010+ для вибіркового та генеральних стандартного відхилення та дисперсії - Крапкові імена функцій парсяться коректно. Парсер формул тепер трактує ім'я на кшталт
NORM.S.DISTяк єдину функцію, тож ці функції працюють уCalculateта переносяться через цикл через префікс OOXML_xlfn.
Версія 2.88.242
Додано
- Інженерні функції комплексних чисел тепер обчислюються у рушії формул.
COMPLEXбудує комплексне число як текст, а сімействоIM*читає та оперує ним, усе обчислюється вживу черезCalculate - Компоненти та арифметика.
IMREAL,IMAGINARY,IMABS,IMARGUMENTтаIMCONJUGATEвідкривають компоненти, тоді якIMSUM,IMSUB,IMPRODUCTтаIMDIVвиконують комплексну арифметику - Трансцендентні функції.
IMPOWER,IMSQRT,IMEXPтаIMLNобчислюються через полярну форму, а уявний суфікс може бутиiабоj
Версія 2.88.241
Додано
- Функції динамічного масиву
XLOOKUPтаFILTERтепер обчислюються у рушії формул. Обидві обчислюються вживу черезCalculate, приносячи сучасний пошук та фільтрацію до формул аркуша та спеціальної оцінки XLOOKUPз режимами збігу та пошуку. Підтримуються точний (за замовчуванням), підстановка та наближений наступний-менший / наступний-більший збіги, разом із пошуком від першого до останнього чи від останнього до першого та необов'язковим результатомif_not_foundFILTERз виливаючими результатами. Рядки, чий вектор включення TRUE, зберігаються та виливаються в цільовий діапазон черезSetArrayFormula, з необов'язковим значеннямif_empty, коли нічого не відповідає
Версія 2.88.240
Додано
- Математичні функції
GCD,LCM,MROUND,QUOTIENTтаMULTINOMIALтепер обчислюються у рушії формул. Вони обчислюються вживу черезCalculate, охоплюючи найбільший спільний дільник, найменше спільне кратне, округлення до кратного, цілочисельне ділення та мультиноміальний коефіцієнт - Перетворення основи та римські цифри.
BASEкодує число в будь-якій основі від 2 до 36 з необов'язковим доповненням нулями,DECIMALпарсить такий рядок назад у число, аARABICперетворює римську цифру на її значення
Версія 2.88.239
Додано
- Агрегатні функції
PRODUCTтаSUMSQтепер обчислюються у рушії формул.PRODUCTмножить свої числові аргументи, аSUMSQпідсумовує їхні квадрати, обидві обчислюються вживу черезCalculate - Дисперсія та стандартне відхилення A-варіанту.
VARA,VARPA,STDEVAтаSTDEVPAобчислюють вибіркове та генеральне розсіяння, рахуючи текст як 0 та TRUE як 1, на відміну від звичайних форм, що ігнорують нечисла
Версія 2.88.238
Додано
- Статистичні агрегатні функції тепер обчислюються у рушії формул.
VAR,VARP,STDEV,STDEVP,MODE,COUNTBLANKтаAVERAGEAобчислюються вживу черезCalculate - Дисперсія та стандартне відхилення.
VARтаSTDEVвикористовують вибіркову формулу, тоді якVARPтаSTDEVP— формулу генеральної сукупності, як над діапазонами, так і над вбудованими аргументами - Найбільш часте значення.
MODEповертає число, що найчастіше зустрічається, та повідомляє#N/A, коли жодне значення не повторюється - Підрахунок порожніх.
COUNTBLANKпідраховує порожні комірки в діапазоні, включаючи комірки з порожнім текстовим результатом - Середнє, обізнане з текстом.
AVERAGEAусереднює значення, рахуючи текст як нуль та логічне TRUE як один, тож він відрізняється відAVERAGE, що ігнорує текст
Версія 2.88.237
Додано
- Бітові функції тепер обчислюються у рушії формул.
BITAND,BITOR,BITXOR,BITLSHIFTтаBITRSHIFTобчислюються вживу черезCalculate - Бітове І, АБО та XOR.
BITAND,BITORтаBITXORкомбінують два невід'ємні цілі числа біт за бітом - Бітове зсування в обидва напрямки.
BITLSHIFTзсуває біти числа вліво, аBITRSHIFT— вправо; негативна величина зсуву реверсує напрямок - Excel-сумісні обмеження. Операнди мають бути цілими числами від 0 до 2^48-1, а величина зсуву обмежена 53 позиціями; значення поза цими межами повідомляють
#NUM! - Цикл через префікс OOXML. При збереженні в XLSX ці функції Excel 2013 записуються з префіксом
_xlfn.та повторно відкриваються чисто, тож вони продовжують відображатися та перераховуватися коректно
Версія 2.88.236
Додано
- Інженерні функції перетворення основи тепер обчислюються у рушії формул.
DEC2BIN,DEC2OCT,DEC2HEX,BIN2DEC,OCT2DEC,HEX2DEC,HEX2BIN,BIN2HEX,HEX2OCT,OCT2HEX,BIN2OCTтаOCT2BINобчислюються вживу черезCalculate - Перетворення між двійковою, вісімковою, десятковою та шістнадцятковою. Числа конвертуються в обох напрямках через всі чотири основи, включаючи крос-основні пари, такі як шістнадцяткова у двійкову
- Знакові значення через доповнення до двох. Негативні числа представлені у стандартній 10-розрядній формі доповнення до двох, тож значення переносяться коректно через перетворення
- Необов'язковий вивід фіксованої ширини. Перетворення у текстову основу приймають необов'язковий аргумент places, що доповнює результат ведучими нулями до фіксованої ширини
- Перевірка діапазону та входу. Значення поза діапазоном, що можна представити, чи текст, що містить цифри, недійсні для основи-джерела, повідомляють
#NUM!
Версія 2.88.235
Додано
- Датові функції робочого дня тепер обчислюються у рушії формул.
WORKDAYтаNETWORKDAYSобчислюються вживу черезCalculate - Крок дат, обізнаний з вихідними.
WORKDAYповертає дату на задану кількість робочих днів до чи після дати початку, пропускаючи суботи та неділі; негативний підрахунок крокує назад, а підрахунок нуль повертає дату початку - Підрахунок робочих днів.
NETWORKDAYSпідраховує повні робочі дні між двома датами, включаючи обидві кінцеві точки, та повертає негативний підрахунок, коли дата початку пізніша за дату кінця - Необов'язкові списки свят. Обидві функції приймають необов'язковий аргумент свят, заданий як єдина дата чи діапазон комірок, та виключають ці дати з обчислення робочих днів
Версія 2.88.234
Додано
- Функції дати та часу тепер обчислюються у рушії формул.
EDATE,EOMONTH,DATEDIF,YEARFRAC,DAYS,WEEKNUMтаISOWEEKNUMобчислюються вживу черезCalculate - Арифметика місяців із затисканням кінця місяця.
EDATEзміщує дату на ціле число місяців, аEOMONTHповертає останній день зміщеного місяця; обидва затискаються до коротшого місяця, наприклад 31-те, зміщене у лютий - Одиниці інтервалу
DATEDIF. Підтримуються одиниці повного підрахунку"Y","M","D"плюс одиниці залишку"YM","YD","MD" - Основи підрахунку днів
YEARFRAC. Реалізовано всі п'ять основ: US 30/360, фактичний/фактичний, фактичний/360, фактичний/365 та європейський 30/360 - Нумерація тижнів.
WEEKNUMпідтримує конвенції початку з неділі, початку з понеділка та ISO (тип повернення 21), аISOWEEKNUMповертає номер тижня ISO 8601
Версія 2.88.233
Додано
- Бази даних функцій тепер обчислюються у рушії формул.
DSUM,DCOUNT,DCOUNTA,DAVERAGE,DMIN,DMAX,DPRODUCT,DGET,DVAR,DVARP,DSTDEVтаDSTDEVPобчислюються вживу черезCalculateта перераховуються під час повторного відкриття книги - Стандартне зіставлення таблиці критеріїв. Умови, розміщені під заголовками полів, комбінуються як AND у межах рядка та OR між рядками, підтримують оператори порівняння такі як
>,<та>=, і дозволяють текстове зіставлення з підстановками*/?; порожні комірки критеріїв не додають обмежень - Гнучкий селектор полів. Агреговане поле можна задати як текст заголовка стовпця, 1-базований індекс стовпця чи посилання на комірку заголовка
- Пошук одного запису
DGET.DGETповертає значення поля відповідного запису, включаючи текст, та повідомляє#NUM!, коли кілька записів відповідають, чи#VALUE!, коли жоден
Версія 2.88.232
Додано
OpenODSтепер імпортує захист аркуша ODS. Таблиці ODS зtable:protected="true"тепер відкриваються як захищені аркуші з використанням наявного стану захисту аркуша без пароля; ключі захисту ODS не розглядаються як застарілі геші паролів XLSX
Версія 2.88.231
Додано
OpenODSтепер імпортує іменовані діапазони ODS. Записиtable:named-rangeзtable:cell-range-addressтепер заповнюютьDefinedNamesкниги, перетворюючи посилання на аркуш/комірку ODS, такі як$Sheet.$A$1:$Sheet.$B$2, у формули визначених імен XLSX
Версія 2.88.230
Додано
OpenODSтепер імпортує стилі захисту комірок ODS. Стилі table-cell, що використовуютьstyle:cell-protect, тепер зівставляютьnone,formula-hidden,protectedтаhidden-and-protectedз імпортованим станом комірокLockedтаFormulaHidden, включаючи значення, успадковані черезstyle:parent-style-name
Версія 2.88.229
Додано
OpenODSтепер імпортує базові формули ODS. Комірки формул, що використовуютьof:=абоoooc:=, тепер зберігають свої кешовані скалярні значення та імпортують нормалізовану формулу XLSX з локальними дужковими посиланнями, такими як[.A1:.B1], та роздільниками аргументів-крапками ком, перетвореними на синтаксис Excel
Версія 2.88.228
Додано
OpenODSтепер розв'язує успадковані стилі рядків та стовпців ODS. Стилі table-row та table-column, що використовуютьstyle:parent-style-name, тепер успадковують висоту рядка, ширину стовпця та налаштування прихованої видимості батька, коли пакети ODS посилаються на дочірні стилі зcontent.xml
Версія 2.88.227
Додано
OpenODSтепер розв'язує успадковані стилі table-cell ODS. Стилі table-cell, що використовуютьstyle:parent-style-name, тепер успадковують зіставлення батьківських стилів даних під час імпорту ODS, тож дочірні стилі зберігають імпортовані значенняNumberFormatXLSX, навіть коли стиль даних оголошено на батьківському стилі
Версія 2.88.226
Додано
OpenODSтепер попередньо завантажує стилі рядків та стовпців ODS, збережені вstyles.xml. Властивості стилів table-row та table-column зstyles.xmlтепер живлять імпорт прихованих рядків/стовпців та висоти рядків/ширини стовпців, колиcontent.xmlпосилається на ці імена стилів
Версія 2.88.225
Додано
OpenODSтепер використовує стилі даних ODS, збережені вstyles.xml. Іменовані стилі table-cell та числові/датові/часові стилі даних зstyles.xmlтепер беруть участь у розв'язанні імпортованогоNumberFormatXLSX, тоді як автоматичні стиліcontent.xmlвсе ще можуть їх перевизначати
Версія 2.88.224
Додано
OpenODSтепер імпортує дробові числові формати ODS. Компонентиnumber:fractionODS тепер зівставляються з дробовими форматами XLSX, такими як0 ?/??, зберігаючи налаштування відображення дробів під час імпорту
Версія 2.88.223
Додано
OpenODSтепер імпортує наукові числові формати ODS. Компонентиnumber:scientific-numberODS тепер зівставляються з числовими форматами XLSX, такими як0.000E+00, зберігаючи налаштування відображення наукової нотації під час імпорту
Версія 2.88.222
Додано
OpenODSтепер зберігає літералиnumber:textу числових стилях даних ODS. Числові, відсоткові та валютні стилі, що розміщуютьnumber:textдо чи післяnumber:number, тепер імпортують ці літерали у числовий формат XLSX, зберігаючи мітки та одиничні суфікси, такі якkg
Версія 2.88.221
Виправлено
OpenODSтепер імпортує негативні тривалості часу ODS. Значенняoffice:time-valueтакі як-PT02H03M04Sтепер імпортуються як негативні серійні значення часу замість пропускання
Версія 2.88.220
Виправлено
OpenODSтепер розв'язує типові стилі комірок для кожного повторюваного стовпця. Повторювана комірка ODS, що перетинає межі стандартного стилю стовпця, тепер застосовує числовий формат стандартного стовпця чи таблиці кожного цільового стовпця замість повторного використання формату першого повторюваного стовпця
Версія 2.88.219
Додано
OpenODSтепер зберігає дробні секунди у значеннях дат ODS. Позначки часуoffice:date-valueтакі як2026-06-04T12:30:00.250тепер зберігають свою мілісекундну компоненту замість скорочення до цілих секунд
Версія 2.88.218
Додано
OpenODSтепер імпортує видимість аркушів ODS. Таблиці ODS з прихованими значеннямиtable:visibilityтакими якcollapseтепер імпортуються як приховані аркуші XLSX замість того, щоб завжди ставати видимими вкладками
Версія 2.88.217
Додано
OpenODSтепер застосовує типові стилі комірок ODS.table:default-cell-style-nameна таблицях, стовпцях та рядках тепер бере участь у розв'язанні числового формату для комірок без прямогоtable:style-name, з використанням пріоритету комірки, рядка, стовпця, потім таблиці
Версія 2.88.216
Додано
OpenODSтепер імпортує компоненти датових та часових стилів ODS. Стилі даних дати та часу тепер читають поширені вузлиnumber:year,number:month,number:day,number:hours,number:minutes,number:seconds,number:am-pmтаnumber:text, тож імпортовані комірки зберігають порядок компонентів та роздільники такі якdd/mm/yyyyабоhh:mm
Версія 2.88.215
Додано
OpenODSтепер імпортує числові формати ODS з мінімальною кількістю цифр. Числові, відсоткові та валютні стилі даних зnumber:min-integer-digitsтаnumber:min-decimal-placesтепер зівставляються з рядкамиNumberFormatXLSX з ведучими нулями та необов'язковими десятковими розрядами
Версія 2.88.214
Додано
OpenODSтепер імпортує згруповані числові формати ODS. Числові, відсоткові та валютні стилі даних зnumber:grouping="true"тепер зівставляються з рядкамиNumberFormatXLSX з роздільниками групування у стилі#,##0
Версія 2.88.213
Додано
OpenODSтепер зберігає символи валют ODS в імпортованих числових форматах. Валютні стилі даних зnumber:currency-symbolтепер використовують цей символ як префіксNumberFormatXLSX, тож формати такі якEUR#,##0.00більше не згортаються до$#,##0.00
Версія 2.88.212
Додано
OpenODSтепер шанує налаштування десяткових знаків ODS у базових числових форматах. Числові, відсоткові та валютні стилі даних зnumber:decimal-placesтепер зівставляються з відповідними рядкамиNumberFormatXLSX, такими як0,0.0%або$#,##0
Версія 2.88.211
Додано
OpenODSтепер імпортує нетипізовані кешовані скалярні значення ODS. Комірки безoffice:value-typeтепер використовують доступні атрибутиoffice:value,office:boolean-value,office:date-value,office:time-valueтаoffice:string-valueперед відкатом до текстового вмісту
Версія 2.88.210
Додано
OpenODSтепер зберігає межі текстових абзаців ODS. Кілька абзацівtext:pімпортуються з розривами рядків, тоді як контролі пробілівtext:s,text:tabтаtext:line-breakзалишаються в тексті комірки замість зведення разом
Версія 2.88.209
Додано
OpenODSтепер імпортує розміри рядків та стовпців ODS. Стиил table-column та table-row ODS зstyle:column-width/style:row-heightзівставляються зColWidth/RowHeight, включаючи повторювані рядки та стовпці
Версія 2.88.208
Додано
- Керування хромом та геометрією вікна книги XLSX.
TXLSXWorkbookтепер відкриваєMinimized,WindowHidden,ShowHorizontalScroll,ShowVerticalScroll,XWindow,YWindow,WindowWidthтаWindowHeightдля фасаду XLSX.SaveAsзаписує відповідні атрибути<workbookView>,Openпереносить їх через цикл, а значення геометрії затискаються до OOXML-сумісного діапазону 0..65535
Версія 2.88.207
Додано
- Керування переглядом книги XLSX.
TXLSXWorkbookтепер відкриваєShowSheetTabs,TabRatio,FirstSheetтаAutoFilterDateGrouping, тож викликувачі можуть керувати панеллю вкладок книги та групуванням дат AutoFilter через фасад XLSX.SaveAsзаписує відповідні атрибути<workbookView>,Openпереносить їх через цикл,TabRatioзатискається до 0..1000, аFirstSheet— до наявного 0-базованого індексу аркуша
Версія 2.88.206
Додано
- Обмежені помічники XLSX AutoFit.
TXLSXWorksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRowsта обгорткиTXLSXRangeAutoFitColumns/AutoFitRowsтепер приймають необов'язкові межі мінімальної та максимальної ширини/висоти, тож викликувачі можуть підганяти вміст, зберігаючи компонування звітів у межах дизайнерських меж
Виправлено
- Імена шрифтів форматованого тексту HTML XLSX. Експорт у HTML тепер видає CSS
font-familyформатованого тексту з іменами в подвійних лапках перед HTML-екрануванням, відповідаючи задокументованому виводу"..."для стилізованих серій
Версія 2.88.205
Додано
- Прямокутні, овальні та лінійні форми (XLS). API малювання .xls отримує
Shapes.AddRectangle,Shapes.AddOvalтаShapes.AddLine(плюс загальнийAddAutoShape), тож типізовані автоформи можна створювати та прив'язувати до діапазону комірок без ручного будування записів OfficeArt. Кожен повертає форму, чию форматуванняFillтаLineможна встановити; раніше можна було додавати лише зображення, текстові поля та коментарі
Версія 2.88.204
Додано
- Точкові, бульбашкові та радарні діаграми (XLSX).
AddChartтепер приймаєxlsxChartScatter(XY точкова),xlsxChartBubble(з діапазоном розміру бульбашки на серію) таxlsxChartRadar, поруч з наявними типами стовпчаста / смужна / лінійна / кругова / площинна / кільцева. Точкові та бульбашкові серії відкладають діапазон категорій як X, а діапазон значень як Y; бульбашкова додаєBubbleSizeRange
Версія 2.88.203
Додано
- Типізовані правила перевірки даних з підказками та сповіщеннями (XLS). Класичний рушій .xls отримує
AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidationтаAddCustomValidation(раніше відкривалася лише перевірка списку). Кожен повертає правило, що може нести вхідну підказку, сповіщення про помилку з іконкою зупинки / попередження / інформації та перемикач дозволити-порожнє черезSetPrompt/SetError/AllowBlank
Версія 2.88.202
Додано
- Вхідні підказки та сповіщення про помилки для перевірки даних (XLSX). Правило перевірки даних тепер може нести вікно вхідної підказки (заголовок та повідомлення, що показуються при виборі комірки) та вікно сповіщення про помилку (заголовок, повідомлення та іконка зупинки / попередження / інформації, що показується при неправильному вході), плюс керування стрілкою спадного списку. Встановіть їх через
SetPrompt,SetErrorта нові властивостіPromptTitle/Prompt/ErrorTitle/ErrorMessage/ErrorStyle/ShowDropDown; раніше були доступні лише перемикачі показу-повідомлення. Вони переносяться через цикл при завантаженні
Версія 2.88.201
Додано
- Більше типів правил умовного форматування (XLSX). Рушій XLSX отримує текстові правила (містить, не містить, починається з, закінчується на), верхні/нижні-N (з необов'язковим відсотком), вище- та нижче-середнього, дубльовані та унікальні значення та порожні / непорожні / з помилкою / без помилки — кожен через виділений метод
AddCondFormat*та кожен здатен нести підсвічування через свійStyle. Ці правила також переносяться через цикл при завантаженні
Версія 2.88.200
Додано
- Умовне форматування на основі формул (XLSX). Нове правило умовного форматування підсвічує комірки довільною формулою через
AddCondFormatExpression: формула обчислюється для кожної комірки, а комірки, де вона істинна, приймають підсвічування правила
Змінено
- Умовні формати тепер підсвічують комірки в .xlsx. Правила умовного формату значення комірки та формули тепер несуть диференційний стиль — колір заливки, колір шрифту та жирний / курсив / підкреслення — записаний у таблицю стилів книги, тож Excel фарбує відповідні комірки. Раніше умовні формати XLSX зберігалися без жодного підсвічування
Версія 2.88.199
Додано
- Функції формул TEXTJOIN та CONCAT. Вбудований калькулятор формул тепер обчислює
TEXTJOIN(з'єднує текстові значення з роздільником, необов'язково пропускаючи порожні комірки) таCONCAT(з'єднує текстові значення без роздільника), обидві розширюють аргументи діапазону комірка за коміркою — на відміну від старішоїCONCATENATE. Збережені файли.xlsxзаписують ці функції Excel 2016 з префіксом_xlfn., тож Excel відкриває їх як справжні функції, а повторне відкриття показує просте ім'я
Версія 2.88.198
Додано
- Функції формул SUMIFS, COUNTIFS, AVERAGEIFS, MAXIFS та MINIFS. Вбудований калькулятор формул тепер обчислює ці багатоумовні агрегації, що підсумовують, підраховують, усереднюють або беруть найбільше чи найменше з комірок, що відповідають усім критеріям у одному або кількох паралельних діапазонах; критерії приймають оператори порівняння такі як
">=30"та текстові підстановки. AVERAGEIFS без відповідних комірок повертає #DIV/0!, а MAXIFS/MINIFS повертають 0, як у Excel, а новіші MAXIFS та MINIFS записуються у.xlsxз префіксом Excel_xlfn.
Версія 2.88.197
Додано
- Функції формул IFS, SWITCH та IFNA. Вбудований калькулятор формул тепер обчислює сучасні логічні функції
IFS(значення першої умови, що істинна),SWITCH(зіставлення виразу зі списком випадків з необов'язковим типовим) таIFNA(підставляння значення лише коли результат — помилка #N/A). Оскільки ці функції були представлені після оригінального набору функцій .xls, збереження в.xlsxтепер записує їх з префіксом Excel_xlfn., тож Excel відкриває їх як справжні функції, а повторне відкриття такого файлу показує просте ім'я функції знову
Версія 2.88.196
Додано
- Функції формул INDEX та OFFSET. Вбудований калькулятор формул тепер обчислює
INDEX(читання значення за позицією рядка та стовпця всередині діапазону) таOFFSET(читання значення на задану кількість рядків та стовпців від якорної комірки), обидві черезCalculate. Двонаправлені пошукиINDEX/MATCHта посилання, прив'язані черезOFFSET, тепер обчислюються коректно, а позиція поза діапазоном повертає помилку #REF!, щоб відповідати Excel
Версія 2.88.195
Виправлено
- Експортований HTML зберігає межі та затінення рядка заголовка. Коли комірка використовувала іменований шрифт, експорт XLSX-у-HTML записував ім'я шрифту в подвійних лапках усередині атрибута стилю в подвійних лапках, що скорочувало стиль, тож комірка втрачала свої межі, заливку та розмір. Імена шрифтів тепер в одинарних лапках, тож стилізований рядок заголовка експортується зі своїми лініями сітки недоторканими — включаючи лінію, що закриває верх таблиці — разом зі своїм кольором фону
- Експорт RTF тепер відповідає компонуванню HTML та Excel. Експорт XLSX-у-RTF отримав межі комірок, охоплення об'єднаних комірок та суцільне затінення заливки, і тепер масштабує ширини стовпців, щоб вмістити сторінку для друку, тож широкий стовпець з AutoFit більше не виходить за сторінку. Раніше таблиця RTF не мала меж, опускала об'єднані заголовки та могла бути значно ширшою за сторінку
Версія 2.88.194
Виправлено
- Повторне збереження книги .xls із текстовим полем більше не пошкоджує її. Відкриття файлу XLS із текстовим полем та повторне збереження раніше дублювало внутрішній запис малюнка, створюючи книгу, що призводила до збою Excel при повторному відкритті. Дані малюнка текстового поля тепер правильно зберігаються при циклічному перенесенні, тому повторно збережена книга відкривається нормально
Версія 2.88.193
Виправлено
- Файли .xlsx, захищені паролем, тепер відкриваються в Excel. Збереження книги з паролем через
SaveAsEncryptedраніше produce пакунок ECMA-376 Standard Encryption, чий AES-шифротекст генерувався неправильно, тож Excel відхиляв файл навіть з правильним паролем. Шифрування AES-128 тепер produce стандарт-відповідний вивід, а шифрована книга відкривається в Excel 2007 та пізніших з паролем, використаним для збереження
Змінено
- Апаратно-прискорений AES для шифрування XLSX. Шифр AES-128, що лежить в основі XLSX Standard Encryption, тепер використовує інструкції CPU AES-NI на 32- та 64-бітних Windows, коли процесор їх підтримує, прискорюючи збереження, захищені паролем. Процесори без AES-NI автоматично відкочуються до портативної програмної реалізації, тож вивід ідентичний на кожній машині
Версія 2.88.192
Додано
- Масивні формули переживають збереження та повторне відкриття XLSX. Багатокоміркова масивна (CSE) формула, встановлена через
SetArrayFormula, тепер зберігається та перезавантажується з файлів.xlsxяк справжня масивна формула, тож збереження книги та повторне відкриття зберігає прив'язаний діапазон виливу недоторканим, і кожна комірка все ще обчислюється у свій власний елемент матричного результату. Раніше збережена масивна формула втрачала свій діапазон виливу під час повторного відкриття файлу
Версія 2.88.191
Додано
- Масивні формули виливаються через діапазон комірок (XLSX). Діапазон рушія XLSX отримує ту саму
SetArrayFormula, що й рушій XLS: багатокоміркова масивна (CSE) формула на кшталт{=MMULT(A1:B2;D1:E2)}, встановлена над блоком комірок, виливає свій матричний результат, тож кожна комірка обчислюється у свій власний елемент. Це завершує підтримку багатокоміркових масивних формул в обох рушіях XLS та XLSX
Версія 2.88.190
Додано
- Масивні формули виливаються через діапазон комірок (XLS). Новий метод
SetArrayFormulaна діапазоні встановлює багатокоміркову масивну (CSE) формулу на кшталт{=MMULT(A1:B2;D1:E2)}над блоком комірок, а калькулятор формул тепер виливає матричний результат у цей блок, тож кожна комірка зчитує свій власний елемент. Раніше комірка з масивною формулою обчислювалась як непідтримувана. Матриця обчислюється один раз за перерахунок та ділиться між усім діапазоном
Версія 2.88.189
Додано
- Функції формул MINVERSE та MMULT. Вбудований калькулятор формул тепер обчислює
MINVERSE(обернена матриця) таMMULT(добуток матриць). Викликані черезCalculate, кожна повертає матрицю результату як двовимірний масив, що можна читати елемент за елементом.MINVERSEвимагає квадратного діапазону та повертає помилку #NUM! для сингулярної матриці;MMULTвимагає узгодження внутрішніх розмірів (стовпці першого діапазону дорівнюють рядкам другого) та інакше повертає помилку #VALUE!
Версія 2.88.188
Додано
- Функція формули MDETERM. Вбудований калькулятор формул тепер обчислює
MDETERM, повертаючи детермінант матриці квадратного діапазону черезCalculate. Неквадратний діапазон чи діапазон, що містить порожню чи нечислову комірку, повертає помилку #VALUE!, щоб відповідати Excel
Версія 2.88.187
Додано
- Статистичні функції формул. Вбудований калькулятор формул тепер обчислює
MEDIAN,LARGE,SMALLтаRANK, тож формули, що підсумовують діапазон чисел, перераховуються коректно черезCalculate.MEDIANприймає суміш вбудованих чисел та діапазонів;LARGEтаSMALLповертають k-те найбільше та k-те найменше значення;RANKповідомляє позицію числа, ранжуючи за спаданням за замовчуванням або за зростанням, коли задано ненульовий аргумент порядку
Версія 2.88.186
Додано
- Функції формул пошуку. Вбудований калькулятор формул тепер обчислює
CHOOSEтаMATCH, тож формули, що обирають аргумент за індексом чи знаходять позицію значення в рядку чи стовпці, перераховуються коректно черезCalculate.MATCHпідтримує всі три типи збігу — точний (0), найбільше значення, не більше за шукане у зростаючому діапазоні (1, типовий), та найменше значення, не менше за шукане у спадаючому діапазоні (-1) — та порівнює текст без урахування регістру
Версія 2.88.185
Додано
- Фінансові функції формул. Вбудований калькулятор формул тепер обчислює
PV,FV,PMT,NPERтаRATE, тож формули теперішньої вартості, майбутньої вартості, платежу, терміну та процентної ставки перераховуються коректно черезCalculate. Необов'язкові аргументи майбутньої/теперішньої вартості та таймінгу платежу (тип) враховуються, аRATEрозв'язується ітераційно
Виправлено
- Десяткові крапки в рядках формул. Виправлено проблему, коли рядок формули, переданий до
Calculate, що містив десяткову крапку (наприклад=PV(0.05;10;100)), міг не парситися; числові літерали з дробовою частиною тепер обчислюються коректно
Версія 2.88.184
Додано
- Інформаційні функції формул. Вбудований калькулятор формул тепер обчислює
ISERROR,ISERR,ISNA,ISNUMBER,ISLOGICAL,ISNONTEXTтаISREF, тож формули тестування помилок та типів перераховуються коректно черезCalculate.ISERRвиключає #N/A, тоді якISNAвідповідає лише #N/A
Версія 2.88.183
Додано
- Текстові функції формул. Вбудований калькулятор формул тепер обчислює
FIND,SEARCH,SUBSTITUTE,REPLACE,TRIM,PROPER,CLEAN,CHAR,CODE,T,EXACTтаREPT, тож аркуші, що використовують ці текстові функції, перераховуються коректно черезCalculateзамість повернення результату непідтримуваної функції.FINDчутливий до регістру, тоді якSEARCH— ні
Виправлено
- Функцію CHAR розпізнано. Виправлено проблему пошуку імені, де функція
CHARбула зареєстрована під неправильним регістром літер і не могла розв'язуватися у формулах
Версія 2.88.182
Змінено
- Функція формули IFERROR. Рушій формул тепер розпізнає та обчислює
IFERROR(value, value_if_error), повертаючи резервне значення, коли перший аргумент обчислюється в будь-яку помилку Excel (#NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A), а інакше — саме значення. Вона переноситься через цикл в обох рушіях — закодована як маркер функції в .xls (BIFF8) та як рядок формули<f>в .xlsx (OOXML) — тож книги відкриваються та перераховуються коректно в Excel
Виправлено
- NA() тепер повертає #N/A. Функція
NA()обчислюється у значення помилки #N/A замість повідомлення про непідтримку, тож формули обробки помилок, побудовані навколо неї (наприкладIFERROR(NA(), 0)), працюють як очікувалося
Версія 2.88.181
Додано
- Текстові поля (XLSX). Новий
TXLSXWorksheet.AddTextBoxдодає окремо стояче текстове поле, прив'язане до прямокутника комірок, видане у малюнок аркуша як форма з тілом тексту. Це приводить рушій XLSX у відповідність з наявною підтримкою текстових полів рушія XLS
Версія 2.88.180
Додано
- Іменовані константи розміру паперу (XLSX). Рушій XLSX додає
xlsxPaperLetter,xlsxPaperA4,xlsxPaperA3та інші константиxlsxPaper*для властивостіTXLSXWorksheet.PaperSize, дзеркалячи константиxlPaper*рушія XLS, тож розмір паперу можна задавати за іменем замість сирого коду паперу Excel
Версія 2.88.179
Додано
- Властивості документа XLS. Рушій XLS отримує властивості
IXLSWorkBookTitle,Subject,Author,Keywords,Comments,CompanyтаManager, записані у потоки .xls OLE SummaryInformation / DocumentSummaryInformation (як Unicode) під час збереження, тож панель Excel «Файл > Відомості» їх показує. Це приводить рушій XLS у відповідність з наявним набором властивостей документа рушія XLSX
Версія 2.88.178
Додано
- Площинні та кільцеві діаграми (XLSX).
TXLSXChartTypeдодаєxlsxChartAreaтаxlsxChartDoughnutпоруч з наявними стовпчастими, смужними, лінійними та круговими типами, тожTXLSXWorksheet.AddChartможе видавати площинні та кільцеві діаграми. Рушій діаграм XLS (BIFF8) зберігає свій набір стовпчаста / смужна / лінійна / кругова
Версія 2.88.177
Додано
- Паритет API операцій діапазону між рушіями. Рушій XLSX отримує методи діапазону в стилі Excel
TXLSXRange.CopyTo,MoveTo,InsertRows,DeleteRows,InsertColsтаDeleteCols; рушій XLS отримує координатні методи аркушаIXLSWorksheet.CopyRange,MoveRange,InsertRows,DeleteRows,InsertColsтаDeleteCols. Обидва рушії тепер відкривають копію/переміщення діапазону та вставлення/видалення цілих рядків/стовпців під однаковими іменами
Версія 2.88.176
Додано
- Вбудовані стилі комірок. Новий
TXLSXRange.ApplyBuiltinStyle(XLSX) таIXLSRange.ApplyBuiltinStyle(XLS) відтворюють вигляд стандартних іменованих стилів комірок Excel — Добре, Погано, Нейтрально, Обчислення, Перевіряти комірку, Пояснювальний текст, Введення, Пов'язана комірка, Примітка, Виведення, Попереджувальний текст, Заголовок 1-4, Назва, Підсумок та Акцент 1-6 — одним викликом, застосовуючи відповідну заливку та шрифт
Версія 2.88.175
Додано
- Сортування діапазону. Новий
TXLSXRange.Sort/TXLSXWorksheet.SortRange(XLSX) таIXLSWorksheet.SortRange(XLS) перевпорядковують рядки прямокутника за одним чи кількома ключовими стовпцями, висхідно чи низхідно. Цілі рядки переміщуються разом, несучи значення та форматування комірок; рівні ключі зберігають свій оригінальний порядок (стабільне сортування), а порожні комірки завжди сортуються останніми
Версія 2.88.174
Додано
OpenCSVімпортує файли CSV та TSV в аркуш. Нові перевантаженняTXLSWorkbook.OpenCSVтаTXLSXWorkbook.OpenCSVчитають текст із роздільниками з автоматичним виявленням роздільника (кома, крапка з комою, табуляція чи канал), виявленням кодування на основі BOM (UTF-8 та UTF-16) та обробкою лапок RFC 4180.Openтепер прямує файлами.csvта.tsvдо імпортера автоматично
Змінено
- Необов'язкове виявлення типу значення. Числові, ISO-8601 датові та булеві поля підвищуються до типізованих значень комірок за замовчуванням; виявлення можна вимкнути, щоб зберегти кожне поле як текст, зберігаючи ведучі нулі, довгі цифрові рядки та текст із префіксом
=
Версія 2.88.173
Змінено
OpenODSтепер імпортує видимість прихованих рядків та стовпців. Стиил ODStable-rowтаtable-columnзі значеннямиtable:visibilityтакими якcollapseабоfilterтепер зівставляються зRowHidden/ColHidden, включаючи повторювані рядки та стовпці
Версія 2.88.172
Змінено
- Експорт XLSX у HTML тепер зберігає вертикальне вирівнювання.
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLвидають CSS-правилаvertical-alignдля верхнього, центрального, виправданого та розподіленого вирівнювання комірок, коли ввімкненоIncludeStyles
Версія 2.88.171
Змінено
- Експорт XLSX у HTML тепер пропускає приховані рядки та стовпці.
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLопускають рядки, позначеніRowHidden, стовпці, позначеніColHidden, та нульової ширини явні стовпці зі згенерованої таблиці та<colgroup>
Версія 2.88.170
Змінено
- Експорт XLSX у HTML тепер зберігає межі комірок. Коли стилі включені,
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLвидають краї межі комірок як CSS-стиліborder-left,border-right,border-topтаborder-bottom
Версія 2.88.169
Змінено
- Експорт XLSX у HTML тепер зберігає серії форматованого тексту. Коли стилі включені,
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLвидають серіїTXLSXRichTextяк екрановані елементи<span>з вбудованими стилями шрифту, кольору, акценту та підкреслення
Версія 2.88.168
Змінено
- Експорт XLSX у HTML тепер зберігає явні розміри рядків та стовпців. Коли стилі включені,
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLзаписують явні значенняColWidthчерез<colgroup>та явні значенняRowHeightяк стилі висоти<tr>
Версія 2.88.167
Змінено
- Експорт XLSX у HTML тепер несе коментарі комірок як підказки.
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLзаписують коментарі XLSX в екрановані атрибутиtitle<td>, а експорт на рівні книги розширює межі таблиці, щоб включити якорі лише з коментарями
Версія 2.88.166
Змінено
- Експорт XLSX у HTML тепер зберігає гіперпосилання та прив'язані зображення.
TXLSXWorkbook.SaveAsHTMLтаTXLSXRange.SaveAsHTMLобгортають пов'язані комірки в екрановані якорі<a>та видають прив'язані зображення як вбудовані URI зображеньdata:. Експорт на рівні книги також розширює межі таблиці, щоб включити якорі гіперпосилань та зображень поза заповненими комірками
Версія 2.88.165
Додано
TXLSXTableтепер зберігає видимість рядка підсумків. Нова властивістьTotalsRowShownзаписує та читає прапорець OOXMLtotalsRowShown, тож таблиці XLSX можуть зберігати свій рядок підсумків увімкненим через цикли SaveAs/Open
Версія 2.88.164
Додано
TXLSXWorksheetтепер має типізовані помічники перевірки даних.AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidationтаAddCustomValidationдодають поширені правила XLSX без ручної передачі значеньTXLSXDataValidationType
Версія 2.88.163
Змінено
OpenODSтепер імпортує текстові гіперпосилання ODS. Посилання ODStext:aзxlink:hrefтепер створюють записиTXLSXHyperlinks, зберігають якірний текст в імпортованому значенні комірки та зівставляють цілі фрагментів такі як#Sheet.A1з внутрішніми зв'язками книги
Версія 2.88.162
Змінено
OpenODSтепер імпортує базові коментарі комірок. Комірки ODS зoffice:annotationтепер створюють записиTXLSXCommentsз текстом коментаря таdc:creatorяк автором, утримуючи текст анотації поза значенням комірки
Версія 2.88.161
Змінено
- Демо
ApiTourтепер охоплюють поточні помічники робочого процесу XLSX. Зразки Delphi та C++BuilderApiTourтепер демонструютьWriteRows,ForEachRow,PreviewAutoFilterRows,AutoFilterRowVisible,TXLSXHtmlExportOptionsтаOnUserFunctionExпоруч зі створенням книги, експортом та потоками повторного-відкриття-інспекції
Версія 2.88.160
Додано
OnUserFunctionExдодає контекстно-обізнані зворотні виклики користувацьких формул.TXLSWorkbook,IXLSWorkbookтаTXLSXWorkbookтепер можуть отримуватиTXLSUserFunctionContextз індексом аркуша, рядком та стовпцем, колиCalculateделегує користувацьку чи непідтримувану функцію аркуша коду застосунку
Версія 2.88.159
Додано
TXLSXHtmlExportOptionsдодає настроюваний експорт XLSX у HTML. ПеревантаженняSaveAsHTMLкниги та діапазону можуть перевизначати заголовок документа, застосувати CSS-клас таблиці, опустити вбудовані/типові стилі, подавити BOM UTF-8 або видати фрагмент таблиці без HTML-документа, що оточує
Версія 2.88.158
Додано
TXLSXWorksheet.AutoFilterRowVisibleтаPreviewAutoFilterRowsдодають оцінку попереднього перегляду AutoFilter. Застосунки можуть перевірити, чи відповідає рядок збереженим критеріям AutoFilter XLSX аркуша, чи обійти відфільтровані рядки даних із зворотним викликом видимості, не змінюючи прапорці прихованих рядків
Версія 2.88.157
Додано
TXLSXWorksheet.WriteRowsдодає пакетний вивід рядків XLSX. Викликувачі можуть заповнювати числовий чи A1-стилю діапазон по одному рядку за раз, повертаючи масивVariant, з пропуском цілого рядка, скасуванням та підрахунком записаних рядків
Версія 2.88.156
Додано
TXLSXWorksheet.ForEachRowдодає рядкове сканування XLSX. Зворотний виклик запускається один раз на кожен завантажений рядок, повідомляє рядок плюс перший та останній завантажені стовпці, повертає кількість відвіданих рядків та підтримує скасування
Версія 2.88.155
Змінено
OpenODSтепер імпортує кешовані скалярні результати з комірок формул ODS. Коли комірка формули зберігає числові, булеві, датові чи часові кешовані значення безoffice:value-type, імпортер зберігає кешоване значення комірки, залишаючи синтаксис формул ODS неперетвореним
Версія 2.88.154
Змінено
OpenODSтепер зберігає базові числові та датові формати ODS. Стиил table-cell ODS, пов'язані зі стилями даних дати, часу, числа, відсотка чи валюти, тепер зівставляються з рядкамиNumberFormatXLSX, такими якyyyy-mm-ddта0.00, тож імпортовані значення зберігають базове форматування відображення
Версія 2.88.153
Змінено
- Об'єднані комірки ODS тепер імпортуються як об'єднані діапазони XLSX.
OpenODSзівставляєtable:number-columns-spannedтаtable:number-rows-spannedна комірках ODS зTXLSXMergedCells, зберігаючи значення у верхній лівій комірці та залишаючи покриті комірки порожніми
Версія 2.88.152
Змінено
- Імена аркушів ODS тепер можна читати без завантаження аркушів.
TXLSXWorkbook.GetODSSheetNames(FileName, AList)таGetODSSheetNames(Stream, AList)сканують імена таблицьcontent.xmlз пакетів.ods, декодують XML-екранування, синтезують типові імена для безіменних таблиць та залишають екземпляр книги без змін
Версія 2.88.151
Змінено
- Записи DIMENSION класичного XLS тепер інформують порожні використовувані діапазони. Коли аркуш .xls, авторизований Excel, заявляє використовуваний діапазон у
DIMENSION, але не несе записів комірок, HotXLS тепер відкриває цей діапазон черезUsedRangeта зберігає його під час відкриття/збереження замість відкату доA1
Версія 2.88.150
Виправлено
- Зовнішні посилання формул епохи BIFF5 тепер завантажуються коректно. Класичний парсер XLS тепер розв'язує позитивні зовнішні індекси аркушів Excel5 у маркерах
tRef3d/tArea3dтаtNameX, тож застарілі формули .xls зберігають аркуш-кваліфіковані 3D-діапазони та посилання на зовнішні імена під час відкриття/збереження
Версія 2.88.149
Вилучено
- Записи розширення обчислення та стилю BIFF8 тепер переносяться через цикл. HotXLS зберігає авторизовані Excel записи
MTRSettings,ForceFullCalculation,CrErr,Uncalcedаркуша,XFCRC, незалежніDXF,StyleExtта сімейство записівTableStylesпід час циклів відкриття/збереження класичного XLS, тож метадані перерахунку та розширення стилю більше не відкидаються
Версія 2.88.148
Додано
- Демо C++Builder тепер відповідають покриттю зразка Delphi. Додано проєкти C++Builder для
XlsTables,XlsCondFormat12таXlsCreateChart, з відповідними README-сторінками та покриттям збірки Win32/Win64
Версія 2.88.147
Вилучено
- Користувацькі перегляди BIFF8 тепер переживають цикли класичного XLS. HotXLS зберігає авторизовані Excel блоки
USERSVIEWBEGIN/USERSVIEWENDу глобальних даних книги та підпотоках аркуша, включаючи немодельовані записи всередині блоку, тож збережені користувацькі перегляди не відкидаються під час відкриття/збереження
Версія 2.88.146
Вилучено
- Перегляд книги та глобальні розширення BIFF8 тепер переносяться через цикл. HotXLS зберігає авторизовані Excel записи
HIDEOBJ, нульової довжиниTEMPLATE,TABIDтаBOOKEXTпід час відкриття/збереження, тож політика відображення прихованих об'єктів, маркери шаблонів, ідентифікатори вкладок аркушів та метадані розширень книги не відкидаються
Версія 2.88.145
Змінено
- TXLSXWorkbook тепер може імпортувати базові файли OpenDocument Spreadsheet.
OpenODS(FileName)таOpenODS(Stream)читають таблиціcontent.xmlз пакетів.odsв аркуші, зберігаючи імена аркушів, скалярні значення, повторювані рядки та повторювані стовпці. Стилі, формули, малюнки, діаграми та розширені функції ODS не конвертуються
Версія 2.88.144
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють критерії стовпців AutoFilter.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер перемаповують зсувиColIdAutoFilterColumns, коли діапазон фільтра переміщується, та видаляють критерії, що потрапляють у видалені стовпці
Версія 2.88.143
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють ручні розриви сторінок.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер переміщують розриви сторінок у рядках та стовпцях разом з відредагованою сіткою та видаляють розриви, що потрапляють у видалені рядки чи стовпці
Версія 2.88.142
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють посилання налаштувань друку.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер регулюютьPrintArea,PrintTitleRowsтаPrintTitleCols, тож діапазони друку та заголовки повтору прямують за відредагованою сіткою
Версія 2.88.141
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють внутрішні цілі гіперпосилань.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер регулюють внутрішні якоріTXLSXHyperlink.Locationна відредагованому аркуші та аркуш-кваліфіковані внутрішні цілі в інших місцях книги
Версія 2.88.140
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють формули правил.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер регулюють посилання A1 всерединіTXLSXConditionalFormat.Formula1/Formula2таTXLSXDataValidation.Formula1/Formula2, тоді як числові пороги та літеральні списки залишаються без змін
Версія 2.88.139
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють діапазони серій діаграм.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер регулюютьTXLSXChartSeries.CategoriesRangeтаValuesRangeдля діаграм на відредагованому аркуші та діаграм в інших місцях, що використовують аркуш-кваліфіковані посилання, утримуючи прив'язки даних діаграм вирівняними після циклів збереження/повторного відкриття
Версія 2.88.138
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють формули комірок.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер регулюють посилання A1 у формулах комірок, що вижили, на відредагованому аркуші та аркуш-кваліфікованих формулах в інших місцях книги, залишаючи рядки та непов'язані аркуші без змін
Версія 2.88.137
Змінено
- Редагування рядків та стовпців XLSX тепер переміщують якорі малюнків.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер переміщують якорі зображень однієї комірки та змінюють розмір чи переміщують якорі діаграм двох комірок разом з відредагованою сіткою, включаючи цикли збереження/повторного відкриття
Версія 2.88.136
Змінено
- Редагування рядків та стовпців XLSX тепер оновлюють визначені імена.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsтаDeleteColsтепер регулюють формулиTXLSXDefinedNameна рівні книги та на рівні аркуша, що вказують на відредагований аркуш, зберігаючи абсолютні A1-маркери через цикли збереження/повторного відкриття
Версія 2.88.135
Додано
- Текстові поля класичного XLS тепер підтримують зсуви якорів під-комірки.
TXLSTextBoxвідкриваєRow1Offs,Col1Offs,Row2OffsтаCol2Offs, а перевантаженняSetArea, обізнане зі зсувами, зберігає зсуви клієнтського якоря BIFF через цикли збереження/повторного відкриття
Версія 2.88.134
Змінено
- Перевірки вмісту макросів XLSX тепер мають аліас властивості лише для читання.
TXLSXWorkbook.VbaProjectDefinedдзеркалитьHasVbaProject, даючи властиво-орієнтованим викликувачам прямий спосіб перевірити, чи присутній вмістvbaProject.bin
Версія 2.88.133
Змінено
- Аркуші XLSX тепер відкривають очищення значень діапазону безпосередньо.
TXLSXWorksheet.ClearRangeValuesприймає посилання A1 чи межі рядків/стовпців та очищає значення/формули, зберігаючи стилі, тож викликувачам не потрібно спочатку створювати обгорткуTXLSXRange
Версія 2.88.132
Вилучено
- Діапазони XLSX тепер можуть очищати вміст комірок за допомогою явного помічника, орієнтованого на значення.
TXLSXRange.ClearValuesвидаляє значення та формули по всьому діапазону, зберігаючи індекси стилів, відповідаючиClear, але роблячи очищення лише вмісту легшим для виявлення
Версія 2.88.131
Змінено
- Літерали перевірки даних списку XLSX тепер екранують вбудовані подвійні лапки.
TXLSXDataValidations.AddListтаTXLSXWorksheet.AddListValidationподвоюють символи лапок усередині тексту елементів, розділених комами, перед обгортанням їх як рядка формули Excel, тож спадні значення, що містять лапки, переносяться через цикл коректно
Версія 2.88.130
Вилучено
- Критерії AutoFilter XLSX тепер можна очищати безпосередньо з колекції критеріїв.
TXLSXAutoFilterColumns.ClearCriteriaвидаляє всі збережені критерії фільтра окремого стовпця, утримуючиAutoFilterRangeаркуша на місці
Версія 2.88.129
Додано
- Об'єднані діапазони XLSX тепер нормалізують реверсні координати під час додавання.
TXLSXMergedCells.Addзберігає діапазони в порядку верхній-лівий / нижній-правий, навіть коли викликувачі передають кінцеву комірку першою, produce стабільні посилання такі якA2:E6
Версія 2.88.128
Додано
- Колекції аркушів XLSX тепер підтримують видалення за іменем напряму.
TXLSXSheetsдодаєDeleteByName, дозволяючи застосункам видаляти аркуш за ім'ям без урахування регістру, зберігаючи вибір активного аркуша узгодженим
Версія 2.88.127
Додано
- Колекції діаграм XLSX тепер підтримують прямий пошук та видалення за заголовком.
TXLSXChartsдодаєIndexOfName,FindByName,DeleteByNameтаDelete, тож застосунки можуть знаходити чи видаляти діаграми за заголовком без ручного сканування колекції
Версія 2.88.126
Додано
- Колекції зовнішніх-зв'язків XLSX тепер підтримують прямий пошук та видалення цілі.
TXLSXExternalLinksдодаєIndexOfTarget,FindByTarget,DeleteByTargetтаDelete, тож застосунки можуть перевіряти чи видаляти метадані пов'язаних книг без ручного сканування колекції
Версія 2.88.125
Додано
- Колекції об'єднаних комірок XLSX тепер підтримують прямий пошук діапазону та видалення.
TXLSXMergedCellsдодаєIndexOfCell,FindAt,DeleteAtтаDeleteInRange, тож застосунки можуть перевіряти чи видаляти об'єднані діапазони без ручного сканування колекції
Версія 2.88.124
Додано
- Колекції умовного форматування та перевірки даних XLSX тепер підтримують обізнаний з діапазоном пошук та видалення.
TXLSXConditionalFormatsтаTXLSXDataValidationsдодаютьIndexOfCell,FindAt,DeleteAtтаDeleteInRange, тож застосунки можуть знаходити чи видаляти правила, що охоплюють комірку чи перетинають діапазон, без ручного скануванняsqref
Версія 2.88.123
Додано
- Колекції зображень XLSX тепер підтримують прямий пошук якоря та видалення.
TXLSXImagesдодаєIndexOfCell,FindAt,DeleteAt,DeleteInRangeтаDelete, тож застосунки можуть перевіряти чи видаляти вбудовані зображення без ручного сканування колекції
Версія 2.88.122
Додано
- Колекції стовпців AutoFilter XLSX тепер підтримують прямий пошук та видалення.
TXLSXAutoFilterColumnsдодаєFindByColIdтаDeleteByColId, тож застосунки можуть перевіряти чи видаляти критерії окремого стовпця без ручного сканування колекції
Версія 2.88.121
Додано
- Колекції таблиць XLSX тепер підтримують прямий пошук та видалення таблиць.
TXLSXTablesдодаєIndexOfName,FindByNameтаDeleteByName, тож застосунки можуть знаходити чи видаляти іменовані таблиці аркуша без ручного сканування колекції
Версія 2.88.120
Додано
- Колекції визначених імен XLSX тепер підтримують прямий пошук об'єктів та видалення.
TXLSXDefinedNamesдодає перевантаженняIndexOfName(Name, SheetIndex),FindByNameтаDeleteByName, тож застосунки можуть працювати з іменами на рівні книги та на рівні аркуша без ручного сканування колекції
Версія 2.88.119
Додано
- Колекції коментарів та гіперпосилань XLSX тепер підтримують пошук та видалення на основі комірки.
TXLSXCommentsтаTXLSXHyperlinksвідкриваютьIndexOfCell,FindAt,DeleteAtтаDeleteInRange, тож код застосунку може знаходити чи видаляти коментарі та зв'язки аркуша без ручного сканування колекції
Версія 2.88.118
Змінено
- Демо ApiTour тепер перевіряють об'єкти книги XLSX після повторного відкриття. Приклади ApiTour Delphi та C++Builder повторно відкривають згенеровану книгу XLSX та записують рядки
reopen-inspectдля визначених імен, коментарів, гіперпосилань, діапазонів автофільтра та критеріїв автофільтра уApiTour-XLSX-Modified.xlsx
Версія 2.88.117
Вилучено
- Записи книги спільного використання файлів та захисту ревізій BIFF8 тепер переносяться через цикл. HotXLS зберігає тіла записів
FILESHARING,FILESHARING2,PROT4REVтаPROT4REVPASS, авторизовані Excel, під час відкриття/збереження, тож рекомендація лише для читання, спільне використання та метадані захисту ревізій не відкидаються
Версія 2.88.116
Змінено
- Демо ApiTour тепер охоплюють помічники об'єктів книги XLSX. Приклади ApiTour Delphi та C++Builder створюють визначене ім'я, коментар до аркуша, гіперпосилання, діапазон автофільтра та критерії автофільтра, зберігаючи наявні робочі процеси зворотного виклику, заміни тексту та експорту
Версія 2.88.115
Змінено
- Демо InteractiveFeatures тепер можуть повторно відкривати класичні книги XLS зі зведеними таблицями. Вкладки Pivot Delphi та C++Builder можуть відкривати наявну класичну книгу XLS зі зведеною таблицею, перераховувати збережені зведені таблиці на кожному аркуші та реєструвати кількість полів, кількість полів даних та діапазон-джерело кешу кожної таблиці
Версія 2.88.114
Змінено
- Демо InteractiveFeatures тепер можуть повторно відкривати класичні книги XLS для робочих процесів TextBox. Форми Delphi та C++Builder можуть відкривати наявну класичну книгу XLS, знаходити збережені окремо стоячі текстові поля малюнків, перераховувати їх та продовжувати операції редагування, видалення, видалення діапазону та збереження проти відкритого файлу
Версія 2.88.113
Змінено
- Демо C++Builder тепер включають зразок InteractiveFeatures для розширених робочих процесів книги. Форма VCL надає той самий інтерактивний шлях Pivot / TextBox / Macro, з типізованим створенням класичних зведених таблиць XLS, редагуванням окремо стоячих текстових полів малюнків та завантаженням/експортом/очищенням вмісту XLSM
vbaProject.binплюс перевіркою проаналізованих модулів
Версія 2.88.112
Змінено
- Демо Delphi тепер включають зразок InteractiveFeatures для розширених робочих процесів книги. Форма VCL створює типізовані класичні зведені таблиці XLS, редагує окремо стоячі текстові поля малюнків та обробляє завантаження/експорт/очищення вмісту XLSM
vbaProject.binплюс перевірку проаналізованих модулів
Версія 2.88.111
Додано
- Класичні аркуші XLS тепер підтримують окремо стоячі текстові поля малюнків. Використовуйте
TXLSShapes.AddTextBox, щоб створитиTXLSTextBoxз власним якорем рядків/стовпців, текстом, текстовими серіями, форматуванням ліній/заливки та звичайним видаленням форми без створення коментаря до комірки
Версія 2.88.110
Змінено
- Демо ApiTour тепер охоплюють більше шаблонів автоматизації книги. Зразки ApiTour Delphi та C++Builder демонструють запис діапазону на основі зворотного виклику з
WriteCells, сканування завантажених комірок зForEachCell, оновлення шаблонів зFindTextтаReplaceText, експорт виділеного діапазону в HTML уApiTour-Range.htmlта зворотні виклики користувацьких формул Delphi черезOnUserFunction
Версія 2.88.109
Змінено
- Демо QuickStart тепер показують повнішу першу книгу. Зразки QuickStart Delphi та C++Builder створюють стилізовану таблицю множення з формулами підсумків рядків та стовпців, замороженими панелями та відповідними діями XLS/XLSX; дерево демо тепер також включає відполіровані HTML readme-сторінки для кожного прикладу
Версія 2.88.108
Змінено
- Діапазони XLSX тепер мають прямі помічники експорту в HTML.
TXLSXRange.SaveAsHTML(FileName)таTXLSXRange.SaveAsHTML(Stream)експортують лише виділений діапазон XLSX як HTML-таблицю UTF-8, спільно використовуючи екранування, базовий вивід стилю та обробку охоплення об'єднаних комірок рендерера HTML книги
Версія 2.88.107
Додано
- Аркуші XLSX тепер включають помічники пошуку та заміни тексту.
TXLSXWorksheet.FindTextтаTXLSXWorksheet.ReplaceTextсканують завантажені текстові комірки в порядку головування рядків, пропускають формули та не-текстові значення та підтримують необов'язкове зіставлення з урахуванням регістру для робочих процесів шаблонів
Версія 2.88.106
Змінено
- Прапорці перегляду BIFF8 Window2 тепер зберігають користувацький стан ліній сітки та заморожених панелей. HotXLS тепер очищає
fDefaultHdr, колиWindow2.icvHdrзберігає користувацький колір ліній сітки, зберігаєfFrozenNoSplit, авторизований Excel, під час відкриття/збереження та записуєfFrozenNoSplitдля виводуFreezePanes
Версія 2.88.105
Змінено
- Пороги формул CF12 тепер переносяться через цикл через правила BIFF8 Data Bar, Color Scale та Icon Set. Значення порогів на основі формул компілюються у байти маркерів формул CF12 під час збереження та відновлюються у
TXLSCfValue.Valueпід час повторного відкриття книги
Версія 2.88.104
Змінено
- Формули класичного XLS та пороги наборів піктограм тепер видають щільніші записи BIFF8. Цілочисельні константи у формулах використовують компактний маркер
tInt, коли вони вписуються у BIFF-діапазон беззнакових цілих, аTXLSIconSetSpec.ThresholdEqualsInclude[Index]тепер керує байтом порівняння «дорівнює» порогу набору піктограм CF12, тож викликувачі можуть обрати семантику порівняння «включити» чи «виключити»
Версія 2.88.103
Змінено
- Класичні аркуші XLS тепер включають помічник пошуку тексту.
IXLSWorksheet.FindText(SearchText, Row, Col[, MatchCase])знаходить першу відповідну завантажену текстову комірку, пропускає формули та не-текстові комірки та очищає повернуті координати, коли збігу не знайдено
Версія 2.88.102
Змінено
- Класичні аркуші XLS тепер включають помічник заміни тексту.
IXLSWorksheet.ReplaceText(SearchText, ReplacementText[, MatchCase])замінює збіги в завантажених текстових комірках, пропускає формули та не-текстові комірки та повідомляє кількість змінених комірок для робочих процесів заповнення шаблонів
Версія 2.88.101
Змінено
- Діапазони тепер мають прямі помічники експорту в HTML.
IXLSRange.SaveAsHTML(FileName)таIXLSRange.SaveAsHTML(Stream)експортують виділений діапазон через наявний рендерер HTML, тож викликувачам більше не потрібно створювати екземплярTXLSHTMLExportчи передаватиxlHTMLявно для поширених фрагментів діапазону
Версія 2.88.100
Змінено
TXLSWorkbook.GetSheetNames(Stream, AList)тепер читає потоки пакета XLSX так само як і потоки класичного XLS. Застосунки можуть передавати потоки в пам'яті, потоки BLOB бази даних чи завантажені потоки XLSX класичному фасаду та отримувати впорядковані імена аркушів без попереднього збереження у файл
Версія 2.88.99
Додано
- API пошуку аркушів, створення гіперпосилань та багатоділяночних виділень тепер легші у використанні. Колекції аркушів класичного XLS та XLSX додають
TryGetSheetByName, класичні аркуші XLS додають перевантаження зручностіAddHyperlink, аIXLSWorksheet.SelectAreasможе записувати активні багатодіапазонні виділення
Версія 2.88.98
Змінено
- Класичні книги XLS тепер відкривають аліас
UserNameдля поля «збережено-ким».IXLSWorkbook.UserNameзівставляється з тим самим значенням WRITEACCESS, що йLastSavedBy, тож код, що використовує конвенцію іменуванняUserName, може читати та оновлювати ім'я аудиту книги напряму
Версія 2.88.97
Змінено
- Аркуші XLSX тепер поділяють зворотний виклик сканування комірок та помічники запису діапазону.
TXLSXWorksheet.ForEachCellперераховує завантажені комірки в порядку рядків зі значенням та текстом формули, тоді якTXLSXWorksheet.WriteCellsзаповнює числові чи A1-стилю діапазони з зворотного виклику з пропуском окремих комірок та скасуванням
Версія 2.88.96
Додано
- Класичні аркуші XLS тепер підтримують керований зворотним викликом запис діапазону.
IXLSWorksheet.WriteCellsзаповнює 1-базований числовий чи A1-стилю діапазон у порядку рядків, дозволяє зворотному виклику надавати кожне значення комірки, підтримує пропуск окремих комірок та може скасувати довгі цикли запису раніше
Версія 2.88.95
Змінено
- Класичні аркуші XLS тепер можуть перераховувати завантажені комірки через зворотний виклик.
IXLSWorksheet.ForEachCellобходить наявні комірки аркуша в порядку рядків, передає 1-базовані координати аркуша, рядка та стовпця зі значенням та текстом формули та дозволяє зворотному виклику скасувати довгі сканування раніше
Версія 2.88.94
Змінено
- Обчислення формул тепер може викликати визначені застосунком функції.
TXLSWorkbook.OnUserFunctionтаTXLSXWorkbook.OnUserFunctionдозволяютьCalculateделегувати користувацькі чи непідтримувані функції аркуша коду застосунку, передаючи оцінені аргументи та використовуючи повернутий результатVariantпід час обробки
Версія 2.88.93
Додано
- Захист аркуша класичного XLS тепер відкриває прапорці дозволів окремих дій.
IXLSWorksheetдодаєAllowDeleteRows,AllowInsertRows,AllowFormatCells,AllowSort,AllowAutoFilterта решту властивостей дозволів SheetProtect, з опціями BIFF8, записаними та прочитаними назад через наявні записи захисту
Версія 2.88.92
Змінено
- Вміст VBA класичного XLS тепер має явні помічники завантаження/збереження/очищення.
IXLSWorkbook.LoadVBAProjectFromFile,SaveVBAProjectToFile,HasVBAProjectтаClearVBAProjectвідкривають збережений вміст сховища OLE VBA, тоді якVBAProjectзалишається проаналізованим переглядом модулів лише для читання
Версія 2.88.91
Змінено
- Критерії AutoFilter класичного XLS тепер можна перевіряти через колекцію полів.
IXLSWorksheet.AutoFilterColumnsвідкриває поточну кількість полів AutoFilter BIFF8 та 1-базовані елементи полів, включаючи активний стан, оператор та збережені значенняCriteria1/Criteria2DOPER
Версія 2.88.90
Змінено
- Класичні аркуші XLS тепер мають одновикликовне налаштування критеріїв AutoFilter.
IXLSWorksheet.ApplyAutoFilterвстановлює діапазон AutoFilter аркуша та записує критерій поля в тому самому виклику, з перевантаженнями діапазону в стилі A1 та 1-базованого числового плюс необов'язкові двокритеріальні оператори
Версія 2.88.89
Вилучено
- Форми класичного XLS тепер можна видаляти за діапазоном комірок.
TXLSShapes.DeleteInRangeвидаляє прив'язані зображення чи форми, чиї клієнтські якорі OfficeArt перетинають 1-базований діапазон аркуша, повертаючи кількість видалених форм
Версія 2.88.88
Змінено
- Атрибути компонування таблиці експорту класичного HTML тепер настроюються.
TXLSHTMLExport.TableBorderWidth,CellPaddingтаCellSpacingкерують згенерованими атрибутами<table>для стилізованого та простого виводу HTML, типово повертаючись до попередніх нульових значень
Версія 2.88.87
Додано
- Експорт класичного HTML тепер підтримує мінімальний вивід таблиці.
TXLSHTMLExport.SimpleExportзаписує просту HTML-таблицю без згенерованих CSS-класів, якорів гіперпосилань чи атрибутів title коментаря, зберігаючи екранований текст відображення та охоплення об'єднаних комірок
Версія 2.88.86
Змінено
- Експорт класичного HTML тепер може записувати заголовок документа.
TXLSHTMLExport.Titleзаписує екранований HTML-елемент<title>перед згенерованим блоком стилю, тоді як типове порожнє значення зберігає наявний вивід без змін
Версія 2.88.85
Змінено
- Експорт класичного HTML тепер несе коментарі комірок як підказки.
TXLSHTMLExport.Optionsтепер за замовчуванням включаєxhComments, записуючи текст коментаря комірки як екрановані атрибутиtitle, дозволяючи викликувачам все одно прибрати опцію для простого виводу комірок
Версія 2.88.84
Змінено
- Вивід гіперпосилань експорту класичного HTML тепер настроюється.
TXLSHTMLExport.Optionsза замовчуванням встановлено на[xhHyperlinks]для наявної поведінки, а викликувачі можуть прибратиxhHyperlinks, щоб експортувати пов'язані комірки як простий екранований текст
Версія 2.88.83
Змінено
- Експорт класичного HTML тепер зберігає гіперпосилання комірок.
SaveAsHTMLобгортає пов'язані комірки в теги якоря HTML, видає адреси гіперпосилань як екрановані значенняhref, несе текст ScreenTip як екрановані атрибутиtitleта зберігає відображений текст комірки екранованим всередині посилання
Версія 2.88.82
Змінено
- Класичні книги XLS тепер можуть керувати іменем користувача «збережено-ким».
IXLSWorkbook.LastSavedByвідкриває поле «збережено-ким» WRITEACCESS, тож згенеровані чи відредаговані книги можуть зберігати явне ім'я аудиту, тоді як невідредаговані книги-джерела продовжують зберігати свої оригінальні метадані
Версія 2.88.81
Змінено
- Класичні аркуші XLS тепер можуть керувати індексом кольору ліній сітки, що відображаються.
IXLSWorksheet.GridlineColorIndexвідкриває полеicvHdrWindow2, тож збережені аркуші можуть повторно відкриватися з обраним кольором ліній сітки, залишаючи видимість ліній сітки та налаштування друку ліній сітки без змін
Версія 2.88.80
Змінено
- Класичні книги XLS тепер можуть встановлювати активний аркуш за індексом.
IXLSWorkbook.ActiveSheetIndexвідкриває 1-базовану властивість активної вкладки, backed полем активного аркуша WINDOW1, дозволяючи збереженим книгам повторно відкриватися на обраному аркуші без зміни першої видимої вкладки
Версія 2.88.79
Змінено
- Структури класичного XLS аркуша тепер можуть керувати автоматичними стилями структури.
TXLSOutline.ApplyStylesвідкриває прапорець стилю структури WSBool, дозволяючи збереженим аркушам зберігати чи явно вмикати застосування стилю структури Excel без зміни рівнів структури чи розташування підсумків
Версія 2.88.78
Змінено
- Компонування сторінки класичного XLS тепер може керувати автоматичними розривами сторінок.
IXLSPageSetup.AutoPageBreaksвідкриває прапорець автоматичних розривів сторінок WSBool аркуша, дозволяючи збереженим аркушам зберігати автоматичні розриви сторінок увімкненими чи явно вимикати їх, зберігаючи ручні розриви сторінок
Версія 2.88.77
Змінено
- Класичні книги XLS тепер можуть керувати групуванням дат AutoFilter.
IXLSWorkbook.AutoFilterDateGroupingвідкриває прапорець групування дат Window1 позитивним булевим API, дозволяючи збереженим книгам зберігати групування фільтра дат Excel увімкненим чи явно вимикати його
Версія 2.88.76
Змінено
- Класичні книги XLS тепер можуть встановлювати позицію та розмір вікна книги напряму.
IXLSWorkbook.XWindow,YWindow,WindowWidthтаWindowHeightвідкривають поля геометрії Window1, тож збережені книги можуть повторно відкриватися з обраним прямокутником вікна
Версія 2.88.75
Змінено
- Класичні книги XLS тепер можуть зберігати прихований стан вікна книги напряму.
IXLSWorkbook.WindowHiddenзівставляється з прапорцем прихованості Window1, дозволяючи збереженим книгам повторно відкриватися з прихованим вікном книги без зміни видимості аркуша
Версія 2.88.74
Змінено
- Класичні книги XLS тепер можуть зберігати мінімізований стан вікна книги напряму.
IXLSWorkbook.Minimizedзівставляється з прапорцем мінімізованості Window1, дозволяючи збереженим книгам повторно відкриватися з мінімізованим вікном книги
Версія 2.88.73
Змінено
- Класичні книги XLS тепер можуть приховувати чи показувати вертикальну смугу гортання напряму.
IXLSWorkbook.ShowVerticalScrollзівставляється з прапорцемfDspVScrollWindow1, дозволяючи збереженим книгам відкриватися з прихованою чи видимою вертикальною смугою гортання
Версія 2.88.72
Змінено
- Класичні книги XLS тепер можуть приховувати чи показувати горизонтальну смугу гортання напряму.
IXLSWorkbook.ShowHorizontalScrollзівставляється з прапорцемfDspHScrollWindow1, дозволяючи збереженим книгам відкриватися з прихованою чи видимою горизонтальною смугою гортання
Версія 2.88.71
Змінено
- Класичні книги XLS тепер можуть приховувати чи показувати панель вкладок аркушів напряму.
IXLSWorkbook.ShowSheetTabsзівставляється з прапорцемfDspTabsWindow1, дозволяючи збереженим книгам відкриватися з прихованими чи видимими вкладками аркушів без зміни видимості аркуша
Версія 2.88.70
Змінено
- Класичні книги XLS тепер можуть встановлювати співвідношення панелі вкладок книги напряму.
IXLSWorkbook.TabRatioвідкриває значенняwTabRatioWindow1, тож викликувачі можуть регулювати простір, зарезервований для вкладок аркушів проти горизонтальної смуги гортання
Версія 2.88.69
Змінено
- Класичні книги XLS тепер можуть встановлювати першу видиму вкладку аркуша напряму.
IXLSWorkbook.FirstSheetвідкриває значенняitabFirstWindow1 як 1-базовану властивість, тож викликувачі можуть обрати, яка вкладка аркуша з'являється на лівому краї, коли Excel відкриває книгу
Версія 2.88.68
Змінено
- Класичні аркуші XLS тепер можуть зберігати та встановлювати видимість символів структури.
IXLSWorksheet.DisplayOutlineSymbolsзівставляється з прапорцем BIFF WINDOW2fDspGuts, дозволяючи збереженим аркушам приховувати символи структури та групування у перегляді вікна
Версія 2.88.67
Змінено
- Класичні аркуші XLS тепер можуть зберігати та встановлювати видимість заголовків рядків та стовпців.
IXLSWorksheet.DisplayHeadingsзівставляється з прапорцем BIFF WINDOW2fDspRwCol, дозволяючи збереженим аркушам приховувати номери рядків та літери стовпців у перегляді вікна
Версія 2.88.66
Змінено
- Класичні аркуші XLS тепер можуть зберігати та встановлювати перегляд показу-формул.
IXLSWorksheet.DisplayFormulasзівставляється з прапорцем BIFF WINDOW2fDspFmla, тож Excel може відкрити аркуш, що показує текст формул замість обчислених результатів
Версія 2.88.65
Змінено
- Класичні аркуші XLS тепер можуть встановлювати масштаб звичайного перегляду незалежно.
IXLSWorksheet.NormalViewZoomвідкриває кешований масштаб Normal WINDOW2, тож викликувачі можуть зберігати різні рівні масштабування, поки аркуш у перегляді «Page Break Preview»
Версія 2.88.64
Змінено
- Класичні аркуші XLS тепер можуть встановлювати масштаб перегляду «Page Break Preview» напряму.
IXLSWorksheet.PageBreakPreviewZoomвідкриває кешований масштаб попереднього перегляду WINDOW2, тож викликувачі можуть зберігати різні рівні масштабування Normal та «Page Break Preview»
Версія 2.88.63
Змінено
- Класичні аркуші XLS тепер відкривають помічники розщеплених панелей.
IXLSWorksheet.SplitPanes(Width, Height)створює рухоме розщеплення панелі з використанням наявного записувача панелі BIFF, аUnsplitPanesочищає запис панелі перед збереженням
Версія 2.88.62
Вилучено
- Класичні аркуші XLS тепер мають простіші помічники заморожених панелей.
IXLSWorksheet.FreezePanes(Cols, Rows)заморожує запитані ліві стовпці та верхні рядки, тоді якUnfreezePanesприбирає запис панелі перед збереженням
Версія 2.88.61
Змінено
- Виявлення імен аркушів класичного XLS тепер приймає потоки.
TXLSWorkbook.GetSheetNames(Stream, List)читає імена аркушів BIFF з потоку XLS, наданого викликувачем, без завантаження вмісту аркуша, відповідаючи помічнику імені файлу для даних книги в пам'яті
Версія 2.88.60
Виправлено
- Колекції аркушів тепер відкривають прямі помічники пошуку за іменем.
IXLSWorkSheets.SheetByName(Name)таTXLSXSheets.SheetByName(Name)повертають відповідний об'єкт аркуша чиnil, тож викликувачам більше не потрібно розв'язувати індекс перед доступом до аркуша
Версія 2.88.59
Змінено
- Фасад XLSX тепер читає імена аркушів напряму з потоків.
TXLSXWorkbook.GetSheetNames(Stream, List)читає впорядковані імена зxl/workbook.xmlбез завантаження XML аркуша, відповідаючи перевантаженню імені файлу для книг у пам'яті та з BLOB
Версія 2.88.58
Змінено
- Фасад XLSX тепер відкриває швидке виявлення імен аркушів.
TXLSXWorkbook.GetSheetNames(FileName, List)читає впорядковані імена зxl/workbook.xmlбез завантаження XML аркуша
Версія 2.88.57
Додано
TXLSWorkbook.GetSheetNamesтепер підтримує пакети XLSX. Метод читаєxl/workbook.xmlз файлів.xlsx,.xlsm,.xltxта.xltmта повертає впорядковані імена аркушів без завантаження XML аркуша
Версія 2.88.56
Змінено
- Класичні книги XLS тепер можуть читати імена аркушів без завантаження аркушів.
TXLSWorkbook.GetSheetNames(FileName, List)сканує потік глобальних даних книги та повертає впорядковані імена аркушів з файлів.xlsExcel 97-2003
Версія 2.88.55
Змінено
- Критерії AutoFilter діапазону класичного XLS тепер записують записи фільтра BIFF8.
TXLSRange.Autofilter(Field, Criteria)створює діапазон фільтра за потреби та видає умовиAUTOFILTERдля простих рядкових, числових, булевих, порожніх, непорожніх критеріїв та критеріїв із префіксом порівняння
Версія 2.88.54
Змінено
- Класичні аркуші XLS тепер мають помічники AutoFilter на рівні аркуша.
IXLSWorksheet.SetAutoFilter,ClearAutoFilterтаAutoFilterRangeкерують діапазонами спадних списків фільтра BIFF8 напряму, повторно використовуючи наявніAUTOFILTERINFOта записувач імен бази даних фільтра
Версія 2.88.53
Додано
- Класичні аркуші XLS тепер відкривають створення перевірки даних списку.
IXLSWorksheet.AddListValidation(Range, Items)записує записи BIFF8DVALтаDV, утримує спадний список видимим за замовчуванням, підтримує вбудовані списки, розділені комами, та зберігає правила через циклиOpen/SaveAs
Версія 2.88.52
Додано
- Обчислення формул тепер працює послідовно між точками входу XLS та XLSX.
TXLSWorkbook.Calculateтепер приймає Excel-стилю формули з ведучим знаком рівності такі як=SUM(A1:B1)+C1, а фасад XLSX додаєTXLSXWorkbook.CalculateплюсTXLSXWorksheet.Calculate. Шлях XLSX поділяє парсер маркерів формул HotXLS та оцінювач для посилань на комірки та діапазони, посилань на комірки формул, міжаркушевих посилань та іменованих діапазонів на рівні книги чи аркуша
Версія 2.88.51
Додано
- Діапазони XLSX тепер підтримують об'єднання через рядок у стилі Excel.
TXLSXRange.Merge(True)записує один запис<mergeCell>на рядок, відповідаючи поведінці класичного XLSRange.Merge(True), тоді якMergeбез аргументів таMerge(False)продовжують створювати один об'єднаний прямокутник на весь діапазон
Версія 2.88.50
Змінено
- Розташування BIFF8 HeaderFooter та HFPicture тепер відповідає поточним правилам MS-XLS. HotXLS зберігає авторизовані Excel записи
HeaderFooter($089C) для тексту колонтитулів парної / першої сторінки та відтворює записиHFPicture($0866) після розмірів аркуша та об'єктів малюнків згідно з ABNF аркуша, тож деталі компонування сторінки переживають цикли відкриття/збереження .xls
Версія 2.88.49
Змінено
- Серії форматованого тексту коментаря тепер мають типізований API.
TXLSComment.TextRunsвідкриває записиFormatRunTXOBIFF8, тож викликувачі можуть перевіряти чи встановлювати межі шрифтів окремих символів у коментарях .xls, тоді як HotXLS все одно зберігає базові байти серій для безпечних циклів
Версія 2.88.48
Змінено
- Додаткові SX-записи зведеної таблиці тепер відкриті через типізований API. HotXLS тепер приєднує завантажені записи зведених таблиць BIFF8 такі як
SXIVD,SXLI,SXFormat,SXEx,SXVDEx,SXRule,SXFiltтаSXAddlдоTXLSPivotTable.SupplementalRecordsдля перевірки, продовжуючи зберігати оригінальні сирі байти для циклів збереження
Версія 2.88.47
Вилучено
- Кешовані значення зовнішньої книги тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає записи BIFF8
XCTтаCRN, приєднані до завантажених записівSUPBOOK, тож кешовані значення комірок для зв'язків зовнішніх книг більше не відкидаються під час збереження
Версія 2.88.46
Змінено
- Рівні структури вбудованих стилів тепер переживають цикли відкриття/збереження .xls. HotXLS тепер читає та зберігає байт BIFF8
iLevelSTYLEдля вбудованих стилів, тож метадані стилів RowLevel_1..7 та ColLevel_1..7 Excel більше не скидаються до значення за замовчуванням під час збереження
Версія 2.88.45
Змінено
- Метадані визначених імен тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає завантажені біти опцій та байти скорочень запису BIFF8
NAME, якщо визначене ім'я не редагується, тож метадані функції, об'єкта, процедури, обчислюваного виразу та бінарного імені, авторизовані Excel, більше не очищаються під час збереження
Версія 2.88.44
Вилучено
- Маркери книги ObProj тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає завантажені записи BIFF8
ObProjнавіть коли сховище VBA не відкрите через об'єктну модель, тож маркери проєкту VBA на рівні книги та метадані третіх сторін більше не відкидаються під час збереження
Версія 2.88.43
Змінено
- Прапорці опцій аркуша тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає немодельовані біти BIFF8
WSBOOLтакі як прапорці аркуша-діалогу, автоматичного розриву сторінок, застосування стилю та відображення жолобка структури, продовжуючи оновлювати наявні налаштування «вмістити-у-сторінку» та підсумку структури через публічний API
Версія 2.88.42
Змінено
- Додаткові метадані книги тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає завантажені тіла записів BIFF8
COUNTRY,BOOKBOOL,BACKUP,FNGROUPCOUNT,USESELFSтаRECALCIDзамість перезапису їх значеннями за замовчуванням, утримуючи метадані сумісності та обчислення на рівні книги стабільними
Версія 2.88.41
Змінено
- Багатоділянкові виділення та фокус активної панелі тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає завантажені записи BIFF8
SELECTIONта значення активної панеліPANES, якщо виділення аркуша чи панелі не змінені через API, тож фокус розщепленої/замороженої панелі Excel та багатодіапазонні виділення більше не згортаються під час збереження
Версія 2.88.40
Вилучено
- Імена зовнішньої книги тепер переживають цикли відкриття/збереження .xls. HotXLS тепер зберігає завантажені записи BIFF8
EXTERNALNAME, приєднані до зовнішніх записівSUPBOOK, включаючи метадані DDE/OLE/зв'язку та хвости формул, тож зовнішні імена та визначення зв'язків більше не відкидаються під час збереження
Версія 2.88.39
Змінено
- Файли BIFF8 .xls, захищені паролем, тепер використовують та читають записи RC4 CryptoAPI FILEPASS. HotXLS тепер записує метадані
FILEPASSvMajor=2 у стилі Excel 2007/2010 для шифрованих книг .xls та читає як застарілі RC4 vMajor=1, так і файли RC4 CryptoAPI vMajor=2/3/4, тож книги, захищені паролем, більше не зазнають збою чи зниження до старішого заголовка шифрування
Версія 2.88.38
Змінено
- Метадані гіперпосилань .xls, авторизовані Excel, тепер переживають цикли відкриття/збереження. HotXLS тепер зберігає тіло запису BIFF8
HLinkдля завантажених гіперпосилань, якщо гіперпосилання не редагується, утримуючиstreamVersionджерела, біти опційhlstmfтакі якfIcon, дані моніка та пов'язані метадані цілі стабільними між збереженнями
Версія 2.88.37
Змінено
- Стан вікна книги тепер переживають цикли відкриття/збереження .xls. HotXLS тепер читає та зберігає позицію вікна, розмір, прапорці видимості/іконки, першу відображену вкладку аркуша, кількість вибраних вкладок та співвідношення смуги гортання вкладок запису BIFF8
WINDOW1замість перезапису їх значеннями за замовчуванням при кожному збереженні
Версія 2.88.36
Змінено
- Користувачі «збережено-ким» WriteAccess BIFF8 тепер переживають цикли відкриття/збереження .xls. HotXLS тепер читає та зберігає тіло запису
$005C WRITEACCESSзамість заміни користувача «збережено-ким» Excel наHotXLS, тож метадані аудиту книги залишаються стабільними після збереження
Версія 2.88.35
Виправлено
- Автори коментарів Excel тепер переживають цикли відкриття/збереження .xls. Поле
stAuthorзапису BIFF8Noteтепер парситься та передається в модель примітки малюнка замість заміни порожнім рядком, тож автор «Створено» коментаря, записаний Excel, зберігається, коли HotXLS зберігає книгу знову
Версія 2.88.34
Змінено
- Опції OfficeArt FOPT форми тепер відкриті через мішок опцій низького рівня.
TXLSShape.OfficeArtOptionsдозволяє розширеним викликувачам перевіряти, встановлювати та видаляти будь-який збережений FOPT PID якLongWordчиWideString, тоді як наявні високорівневі APILine,Fill, кольору та видимості залишаються без змін
Версія 2.88.33
Змінено
- Додаткові записи правил solver-container OfficeArt тепер переносяться через цикл. Крім типізованого
msofbtConnectorRule($F012), HotXLS тепер зберігає не-папкові дочірні елементи solver такі якOfficeArtFArcRule($F014) таOfficeArtFCalloutRule($F017) як сирі записи OfficeArt всерединіmsofbtSolverContainer($F005), тож розширені малюнки Excel більше не втрачають не-з'єднувальні зв'язки solver під час збереження
Версія 2.88.32
Змінено
- Маркери OfficeArt ClientData більше не дублюються після збереження невідомих записів. MS-XLS визначає
OfficeArtClientData($F011) як маркер нульової довжини, чиї наступний записObjзалишається окремим записом BIFF. v2.88.32 розпізнає цей маркер замість захоплення його як невідомий лист SpContainer, тож проаналізовані форми видають рівно один маркер $F011 під час збереження, тоді як неправильні контейнерні припущення залишаються поза шляхом XLS
Версія 2.88.31
Змінено
- Правила з'єднувача OfficeArt тепер переносяться через цикл. Малюнки .xls, авторизовані Excel, зберігають прив'язки з'єднувальних ліній у
msofbtSolverContainer($F005) з дочірніми записамиmsofbtConnectorRule($F012). v2.88.31 парсить та видає цю пару $F005/$F012 черезTMsoConnectorRules, зберігаючи стартову форму, кінцеву форму, форму з'єднувача та місця з'єднання через цикл збереження/перезавантаження. Раніша примітка аудиту перераховувала $F121, але MS-ODRAW визначаєOfficeArtFConnectorRuleяк $F012
Версія 2.88.30
Змінено
- Нерозпізнані листові записи SpContainer OfficeArt тепер переносяться через цикл. Файли .xls, авторизовані Excel, часто вбудовують листові Fbt такі як
msofbtClientTextbox($F00D),OfficeArtFPSPL($F11D) таOfficeArtUDefProp($F122) всередині кожного SpContainer форми. v2.88.30 захоплює невідомі листові елементи рівня форми якTMsoFbtUnknownта повторно видає їх у порядку парсингу міжClientAnchorформи та завершальним маркеромmsofbtClientDataнульового тіла - Обсяг та подальша робота. Інші невідомі листові елементи рівня малюнка залишаються відкладеними; випадок solver-container правил з'єднувача обробляється v2.88.31. Контейнерні невідомі, такі як
msofbtClientData($F011), що використовується як контейнер замість сиблінгового маркера, залишаються аудиту Slice 3
Версія 2.88.29
Додано
- Поведінка FtLbsData «ковтати-все» обмежує обсяг. Наявний випадок
$0013перевизначаєRecLen := Len - offs, щоб поглинути всі байти після заголовка FtLbsData у блобFObjRec_LBSData, тож підзаписи, що з'являються ПІСЛЯ FtLbsData (зазвичай лише FtEnd), все одно переносяться через цикл через цей механізм без змін. Нова інтеграція FObjTailRaw спеціально націлена на прогалину перед FtLbsData, де типово живуть FtMacro та ObjLinkFmla. Щойно авторизовані поля зі списком / спискові рамки через API малювання мають порожнійFObjTailRaw→ побайтово ідентичний вивід v2.88.28
Вилучено
- Невідомі підзаписи ComboBox та ListBox OBJ тепер переносяться через цикл. TMSOShapeComboBox.ParseObj та TMSOShapeListBox.ParseObj вже типізовано парсили FtSbs ($000C), FtSbsFmla ($000E) та FtLbsData ($0013) у виділені поля, але будь-який інший підзапис файлу-джерела (FtMacro $0004, ObjLinkFmla, FtNts $000D тощо), що з'являється між CMO та FtLbsData, мовчазно відкидався при провалі випадку. v2.88.29 додає ту саму else-гілку, що й Picture v2.88.28, захоплюючи 4-байтовий заголовок + тіло невідомого підзапису у
FObjTailRaw. Обидва методи AddObj видають захоплені байти між тілом CMO та підзаписом FtSbs, щоб відповісти порядку підзаписів специфікації BIFF8
Версія 2.88.28
Додано
- Типізований + сирий патерн співіснування. На відміну від PictureFrame (v2.88.27), що використовував обмін if/else між типізованим та сирим виданням, Picture поєднує обидва: типізовані поля зберігають поверхню API (викликувачі все ще можуть регулювати
ftCfValueтощо), тоді як сирий хвіст зберігає лише невідомі байти. Щойно авторизовані зображення через API малювання мають порожнійFObjTailRaw, тож вивід побайтово ідентичний v2.88.27
Вилучено
- Невідомі підзаписи Picture-shape OBJ тепер переносяться через цикл. TMSOShapePicture.ParseObj вже типізовано парсив FtCf ($0007), FtPioGrbit ($0008) та FtPictFmla ($0009) у виділені поля, але будь-який інший підзапис файлу-джерела (FtMacro $0004, FtNts $000D тощо) мовчазно відкидався при провалі випадку. v2.88.28 додає else-гілку, що додає повний 4-байтовий заголовок + тіло нерозпізнаних підзаписів у
FObjTailRaw; TMSOShapePicture.AddObj потім видає ці байти дослівно після свого типізованого виводу підзапису та перед маркером FtEnd. Об'єкти зображень файлу-джерела з гаками макросів переживають повторне збереження
Версія 2.88.27
Додано
- Цикл завершального-підзапису OBJ розширено на форми PictureFrame. TMSOShapePictureFrame.AddObj раніше видавав лише застарілі жорстко кодовані підзаписи FtCf ($0007, тіло $FFFF) та FtPioGrbit ($0008, тіло $0000) між CMO та FtEnd. Для щойно авторизованих рамок зображень новий код все одно видає ці значення за замовчуванням; для рамок зображень, проаналізованих з .xls-джерела, захоплені байти
FObjTailRawвидаються дослівно натомість, зберігаючи будь-який вміст FtPictFmla / нетипового FtCf / нетипового FtPioGrbit файлу-джерела через цикл збереження
Виправлено
- Примітка дослідження — Flush автоматично виправляє sz.
TMsoShapeContainer.Flushперезаписує заголовок розміру запису Obj під час фіксації черезData.SetWord(Data.DataLength - 4, 2), що означає, що жорстко кодовані значенняsz := $1A, що жили в реалізаціях AddObj HotXLS роками, не були багами специфікації після усього — Flush виправляє їх автоматично. v2.88.27 все ще обчислює sz точно для ясності сирцевого коду, але поведінка середовища виконання без змін з цього perspectives
Версія 2.88.26
Додано
- Цикл завершального-підзапису OBJ розширено на форми Chart та CheckBox. v2.88.25 представила збереження сирих байтів для байтів між CMO ($0015) запису Obj та його маркером FtEnd ($0000), але лише TMSOShapeTextBox.AddObj видавав захоплений хвіст. Цей випуск застосовує той самий патерн до TMSOShapeChart.AddObj та TMSOShapeCheckBox.AddObj — обидва поділяють просту структуру видання «CMO + FtEnd» TextBox, тож зміна — це однорядкова підстановка змінної (
sz := $1A + Word(Length(FObjTailRaw))) плюс цикл дослівних байтів перед маркером FtEnd
Змінено
- Завершальні підзаписи діаграми (наприклад FtMacro для макросів вбудованого об'єкта діаграми) та підзаписи стану прапорця (FtCbls + FtCblsData + ObjLinkFmla, MS-XLS §2.5.140-141 / §2.5.149) тепер переживають збереження/перезавантаження HotXLS. Щойно авторизовані діаграми та прапорці через API малювання все одно видають типовий CMO+FtEnd 26 байт (побайтово ідентичний v2.88.25), тож наявні викликувачі не бачать зміни поведінки. Форми Picture / ComboBox / ListBox / PictureFrame мають власний динамічний типізовано-підзаписний видання, що конфліктує з FObjTailRaw — їх інтеграція відкладена на майбутні коміти
Версія 2.88.25
Додано
- Захоплення загальної бази, видання лише TextBox (перший шматок R5-3). TMsoShapeContainer.ParseObj тепер захоплює діапазон байтів між кінцем тіла CMO та маркером FtEnd у нове внутрішнє поле
FObjTailRaw: TBytes; TMSOShapeTextBox.AddObj вставляє ці байти між своїм виданням CMO та маркером FtEnd, із заголовком розміру запису Obj, відрегульованим відповідно. Щойно авторизовані коментарі (без байтів джерела) зберігають побайтово ідентичний вивід v2.88.24. Інші класи форм (Picture / CheckBox / ComboBox / ListBox / Chart) успадковують захоплення, але їх типізовані перевизначення AddObj зберігають застарілу поведінку «синтезувати з нуля» — видання сирих байтів для цих типів форм відкладено на майбутні коміти
Змінено
- Завершальні підзаписи запису OBJ тепер зберігаються через цикл збереження для коментарів. Запис Obj BIFF8 ($005D) ланцюгує послідовність типізованих підзаписів після обов'язкового CMO ($0015), завершену маркером FtEnd ($0000), згідно з MS-XLS §2.4.181. Для форм Note (коментар) завершальний блок — це типово FtNts 26 байт (§2.5.149), що несе GUID та прапорець fSharedNote — обидва істотні, коли Excel пізніше об'єднує коментарі між користувачами у спільних книгах. HotXLS раніше відкидав кожен байт після CMO під час читання та видавав лише порожній FtEnd під час запису, тож будь-який FtNts файлу-джерела губився при кожному повторному збереженні HotXLS
Версія 2.88.24
Додано
- Збереження сирих байтів у TMSOShapeTextBox. ParseTXO захоплює байти Continue після тексту дослівно у нове внутрішнє поле
FFormatRunsRaw: TBytes; Store видає їх назад як Continue форматування-серій та регулює заголовокcbRunsбазового запису для відповідності. Щойно авторизовані коментарі (черезAddComment) зберігають застарілий вивід єдиної-типової-серії без змін, тож побайтово ідентичний вивід збережено для типових книг. Типізований доступ Excel-API до окремих серій формату все ще відкладено — наявний одинарний WideString API коментаря без змін
Змінено
- Багатошрифтові та багатокольорові коментарі комірок тепер переносяться через цикл. Блок форматування-серій запису BIFF8 TXO (
rgTxoRuns+TxOLastRunзгідно з MS-XLS §2.5.272) несе окремо-серійні перевизначення шрифту та кольору, що дають коментарю його форматовано-текстове стилізування. HotXLS раніше відкидав увесь блок під час читання та видавав єдину порожню типову серію + LastRun під час запису — зводячи будь-яке «Важливо!» виділене червоним, будь-яке жирне слово всередині тексту коментаря, в однорідне типове форматування при кожному повторному збереженні HotXLS
Версія 2.88.23
Додано
- Три нові властивості TXLSPageSetup.
PrintResolution: LongWord,PrintVResolution: LongWordтаCopies: LongWord— усі за замовчуванням мають значення, що записувач раніше жорстко кодував (600 / 600 / 1), тож книги, що ніколи їх не торкаються, produce побайтово ідентичний вивід v2.88.22. Встановлювачі затискаються наHigh(Word), тож надто велике значення викликувача не може обернутися під час видачі
Вилучено
- Роздільна здатність друку та кількість копій тепер переносяться через цикл — запис Setup тепер повністю покритий. Три Word-поля запису Setup (
iResза зміщенням 12,iVResза зміщенням 14,iCopiesза зміщенням 32, згідно з MS-XLS §2.4.257) несуть вибір Excel «Параметри сторінки → Сторінка → Якість друку» та «Кількість копій». HotXLS раніше відкидав усі три під час читання та видавав жорстко кодовані значення (600 DPI / 600 DPI / 1 копія), тож будь-яка відрегульована користувачем роздільна здатність чи кількість копій мовчазно відкочувалася при кожному повторному збереженні HotXLS
Виправлено
- Робота над циклом запису Setup завершена. З цим виправленням кожне видиме користувачу поле запису BIFF8 Setup ($00A1) переноситься через цикл від початку до кінця — розмір паперу / масштаб / номер першої сторінки / ширина та висота «вмістити-у-сторінку» / орієнтація / порядок друку / чорно-білий / чорновик / друк коментарів / помилки комірок / роздільна здатність / копії. Лише два біти grbit spec-hint (
fNoPls,fNoOrient) залишаються нерозкритими, обидва з яких HotXLS записує як нуль, відповідаючи типовій поведінці Excel
Версія 2.88.22
Додано
- Дві нові властивості TXLSPageSetup.
UseFirstPageNumber: Booleanдзеркалить біт (False = «Авто», за замовчуванням);FirstPageNumber: Integerнесе значення iPageStart (за замовчуванням 1, затискається до spec-legal signed-Word діапазону -32768..32767 встановлювачем). HotXLS переноситьiPageStartдослівно навіть колиUseFirstPageNumber— False, тож перемикання між Авто та користувацьким в Excel зберігає останнє введене користувачем значення
Вилучено
- «Номер першої сторінки» користувацького Page Setup тепер переноситься через цикл. Запис BIFF8 Setup несе вибір книги «Параметри сторінки → Сторінка → Номер першої сторінки» як два пов'язані поля: біт 7 grbit (
fUsePage) обирає між типовим «Авто» Excel та явним номером початкової сторінки, а знакове Word за зміщенням 4 (iPageStart) тримає це користувацьке значення, згідно з MS-XLS §2.4.257. HotXLS раніше відкидав обидва під час читання та видававiPageStart = 1з очищеним бітом, тож введене користувачем «Номер першої сторінки: 100» мовчазно відкочувалося до «Авто» при кожному повторному збереженні HotXLS
Версія 2.88.21
Додано
- Нова булева властивість TXLSPageSetup.PrintNotesAtEnd. За замовчуванням
False, відповідаючи типовому UI Excel. Зчитувач та записувач переносять біт дослівно (навіть колиPrintNotes = False), тож книга з тимчасово вимкненими коментарями зберігає перевагу «наприкінці аркуша» для повторного вмикання користувачем — дзеркалячи власну поведінку Excel
Вилучено
- Вибір «Друк коментарів наприкінці аркуша» тепер переживає цикл збереження. Біт 9 grbit запису BIFF8 Setup (
fEndNotesзгідно з MS-XLS §2.4.257) несе розрізнення випадаючого списку «Параметри сторінки → Аркуш → Коментарі» між «Як відображено на аркуші» (за замовчуванням) та «Наприкінці аркуша». HotXLS вже переносив PrintNotes (біт 5) для керування тим, чи друкуються коментарі, але біт 9 відкидався під час читання та видавався як нуль під час запису — тож обране користувачем «Наприкінці аркуша» мовчазно відкочувалося до «Як відображено на аркуші» при кожному повторному збереженні HotXLS
Версія 2.88.20
Змінено
- Вибір книги «Встановити точність як відображено» тепер переноситься через цикл. Запис BIFF8 CalcPrecision ($000E) несе прапорець File → Options → Advanced → «Встановити точність як відображено» на рівні книги згідно з MS-XLS §2.4.35. HotXLS раніше не мав випадку диспетчера для $000E, а TXLSWorkbook.StorePrecision видавав жорстко кодоване
1(= збережена повна точність). Відмічений користувачем «Встановити точність як відображено» мовчазно відкочувався до «повна точність» при кожному повторному збереженні HotXLS — ховаючи навмисне намірення користувача, що будь-який подальший перерахунок повинен назавжди скоротити значення комірок до їхніх відформатованих десяткових знаків
Виправлено
- Нова булева властивість TXLSWorkbook.UseFullPrecision. За замовчуванням
True(відповідає типовому BIFF8 та типовому UI Excel не відмічено). ВстановленняFalseдзеркалить відмічання деструктивної опції «точність як відображено» — HotXLS сам не скорочує жодне значення комірки під час циклу, але прапорець тепер вірно записується назад, тож наступний перерахунок Excel шанує його. З цим виправленням кожен запис calc BIFF8 (CalcCount / CalcMode / CalcPrecision / CalcDelta / CalcIter / CalcSaveRecalc) переноситься через цикл від початку до кінця
Версія 2.88.19
Додано
- Нова булева властивість TXLSWorkbook.RecalcOnSave. За замовчуванням
True(відповідає як типовому UI Excel, так і застарілому жорстко кодованому значенню), тож книги, що ніколи не торкаються властивості, зберігають побайтово ідентичний вивід v2.88.18. Встановлювач приймає будь-яке булеве значення; зчитувач нормалізує довільні ненульові байти джерела доTrue
Змінено
- Прапорець «Перерахувати книгу перед збереженням» тепер переноситься через цикл. Запис BIFF8 CalcSaveRecalc ($005F) несе булеве значення File → Options → Save → «Перерахувати книгу перед збереженням» книги, згідно з MS-XLS §2.4.37. HotXLS раніше не мав випадку диспетчера для $005F, а StoreCalculationSettings видавав жорстко кодоване
1— тож вимкнений користувачем «перерахунок при збереженні» мовчазно повторно вмикався при кожному повторному збереженні HotXLS, що насправді mattered для книг з ручним обчисленням, де користувач навмисно заморозив значення комірок на диску
Версія 2.88.18
Додано
- Три нові властивості TXLSWorkbook.
EnableIteration: Booleanдзеркалить прапорець;MaxIterations: LongWord— обмеження ітерацій (затискається до spec-legal діапазону 1..32767 встановлювачем);MaxIterationChange: Double— дельта збіжності (негативний вхід відкочується до spec-значення за замовчуванням 0.001). Значення за замовчуванням відповідають значенням, що записувач використовував жорстко, тож книги, що ніколи не торкаються нових властивостей, produce побайтово ідентичний вивід v2.88.17
Змінено
- Налаштування ітераційного обчислення (увімкнути + макс ітерацій + макс зміна) тепер переносяться через цикл. Записи BIFF8 CalcIter ($0011), CalcCount ($000C) та CalcDelta ($0010) разом несуть тріо опцій Excel «Увімкнути ітераційне обчислення» (File → Options → Formulas), згідно з MS-XLS §2.4.33 / §2.4.31 / §2.4.32. Жоден із трьох не мав випадку диспетчера раніше, а StoreCalculationSettings видавав їх жорстко кодованими значеннями (вимкнено / 100 / 0.001). Налаштований користувачем 1000-ітераційний цикл з дельтою збіжності 0.0001 мовчазно скидався до «ітерація вимкнена, 100, 0.001» при кожному повторному збереженні HotXLS — ламаючи формули циклічних посилань та моделі, чутливі до збіжності фінансів
Версія 2.88.17
Додано
- Режим обчислення книги (Ручний / Автоматичний / Авто окрім таблиць) тепер переноситься через цикл. Запис BIFF8 CalcMode ($000D) несе вибір на рівні книги «Formulas → Calculation Options» згідно з MS-XLS §2.4.36. HotXLS раніше не мав випадку диспетчера для $000D взагалі, тож значення файлу-джерела відкидалося під час завантаження, а записувач завжди видавав жорстко кодоване
$0001(Автоматично). Обраний користувачем режим Manual мовчазно відкочувався до Автоматично при кожному повторному збереженні HotXLS — погано для великих книг, де Manual встановлено навмисно для продуктивності. Новий обробник ParseCalcMode зберігає значення джерела на книзі, а StoreCalculationSettings тепер видає збережене значення замість константи - Нова властивість TXLSWorkbook.CalculationMode. Властивість читання-запису
LongWord, що приймаєxlCalcManual(0),xlCalcAutomatic(1, за замовчуванням) абоxlCalcAutomaticExceptTables(0xFFFF) — три нові константи, експортовані зlxTNC.inc. Встановлювач затискає невідомі значення до spec-значення за замовчуванням, тож пошкоджений файл-джерело не може залишити книгу у невизначеному стані. Наявний код, що ніколи не торкається властивості, зберігає застаріле значення за замовчуванням «Автоматично», тож попередній вивід побайтово ідентичний для типових книг
Версія 2.88.16
Додано
- Нова властивість TXLSPageSetup.PrintCellErrors. Властивість читання-запису
LongWord, що приймаєxlPrintErrorsDisplayed(0, за замовчуванням),xlPrintErrorsBlank(1),xlPrintErrorsDash(2) абоxlPrintErrorsNA(3) — чотири нові константи, експортовані зlxTNC.inc. Наявні викликувачі PageSetup, що ніколи не торкаються властивості, зберігають значення за замовчуванням («відображено»), тож застарілий вивід друку без змін
Вилучено
- Вибір «Помилки комірок як» Page Setup тепер переживає цикл збереження. Запис BIFF8 Setup ($00A1) пакує випадаючий список «Параметри сторінки → вкладка Аркуш → Помилки комірок як: відображено / <порожньо> / <тире> / <N/A>» у біти 10-11 свого слова grbit як
iErrors, згідно з MS-XLS §2.4.257. HotXLS раніше відкидав ці біти під час читання та видавав їх як нуль під час запису, тож книга, налаштована користувачем друкувати#DIV/0!як#N/A, мовчазно відкочувалася до «відображено» після кожного повторного збереження HotXLS. Зчитувач тепер декодуєiErrorsу нову властивістьTXLSPageSetup.PrintCellErrors, а записувач перебудовує поле з неї
Версія 2.88.15
Додано
- Шість нових властивостей TMSOShapeTextBox для явного стилізування коментарів.
HAlignment,VAlignment,Rotation,LockText,JustLastLineтаSecretEditвідкриті як властивості читання-запису на кожній формі коментаря;AddCommentза замовчуванням встановлює зліва+зверху+горизонтально+розблоковано, тож викликувачі, що їх не торкаються, зберігають попередній вигляд
Вилучено
- Вирівнювання та орієнтація коментаря комірки тепер переносяться через цикл. Базовий запис BIFF8 TXO ($01B6) несе п'ять типізованих прапорців у своєму слові
grbit(hAlignment, vAlignment, fLockText, fJustLast, fSecretEdit) плюс окреме словоrotдля орієнтації тексту, згідно з MS-XLS §2.4.329. Зчитувач раніше відкидав усі ці, а записувач фіксувавgrbitна жорстко кодованому0x0012(зліва + зверху) з обертанням завжди 0, тож кожне збереження скидало центрований чи обернутий коментар назад до зліва+зверху+горизонтально незалежно від джерела. Зчитувач тепер декодує типізовані поля під час завантаження, а записувач компонуєgrbitз них, тож компонування переживає цикл збереження/перезавантаження
Виправлено
- Записувач TXO тепер компонує reserved4 / reserved5 уздовж меж полів специфікації. Попередній код видавав зміщення 2-9 базового запису як дві довгі записи (rot + reserved4 потім reserved5); записувач тепер розщеплює їх на
Wordrot,Wordreserved4,Longreserved5 — вміст байтів без змін (все ще all-zero для форм Note), але структура джерела тепер відповідає зміщенням полів MS-XLS §2.4.329, роблячи майбутні TXO-виправлення важчими для роззосередження
Версія 2.88.14
Виправлено
- Зміщення TXO cchText виправлено — виправлення довжини коментаря v2.88.13 тепер насправді спрацьовує. Попередній випуск представив перевірку здорового глузду базового запису TXO читанням
cchTextза зміщенням 8, але MS-XLS §2.4.329 розміщуєcchTextза зміщенням 10 (після grbit, rot та 6 reserved / controlInfo байтів). Зміщення 8 потрапляє всередину long reserved5, що завжди нульовий на об'єктах Note-форми, тож кожен коментар тихо зісковзував у оборонний відкат, що просто відновлював поведінку pre-v2.88.13. Виправлення коригує зміщення на 10 — довгі коментарі тепер дійсно зшиваються через записи Continue, а короткі коментарі більше не підбирають завершальний padding. Жодних подальших поведінкових змін поза тим, що v2.88.13 завжди мав постачати
Версія 2.88.13
Змінено
- Довгі коментарі комірок тепер читаються назад повної довжини. Запис BIFF8 TXO ($01B6) розщеплює своє тіло тексту між базовим записом та одним чи кількома записами Continue, з кількістю символів, опублікованою в базовому записі за зміщенням 8 як
cchText. Попередній зчитувач коментарів пропускав базовий запис повністю, трактував DataList[1] як увесь текст та зупинявся там — тож коментар довший за приблизно 4100 широких символів мовчазно скорочувався, а коротший коментар, чий запис Continue ніс завершальний padding, підбирав сміття наприкінці. Зчитувач тепер споживаєcchTextяк авторитетну кількість символів, обходить кожен сегмент Continue згідно з MS-XLS §2.4.329 (розрив rgb сидить на межі символу, тож не потрібен облік часткових символів), та зупиняється, щойно бюджет задоволено, тож блок форматування-серій, що йде після тексту, ніколи не_BLEED_into рядок. Коментарі з пошкодженими / відсутніми базовими записами все одно відкочуються до застарілого шляху «усі решта байтів»
Версія 2.88.12
Змінено
- Кешовані рядки довші за ~4100 символів з рядково-повертаючих формул тепер переносяться через цикл через записи Continue. v2.88.11 під'єднала сторону читання запису BIFF8 String ($0207), але споживала лише перше тіло запису, тож кешований рядок, чиї байти UCS-2 переповнювали 8224-байтовий ліміт BIFF та виливалися в один чи кілька записів Continue ($003C), мовчазно скорочувався. Обробник тепер обходить увесь DataList рівня диспетчера: він читає cch та fHighByte з базового запису, копіює тіло, що вписується там, потім конкатенує кожен наступний сегмент Continue як сирі байти згідно з гарантією межі символу MS-XLS §2.5.293 — XLUnicodeString ніколи повторно не видає fHighByte mid-string. Кожен сегмент обмежений рештою бюджету символів, тож сторонній надмірний Continue не може зробити результат довшим за cch. Однозаписні рядки (поширений випадок) прямують тим самим швидким шляхом, що й раніше
Версія 2.88.11
Виправлено
- Рядково-повертаючі формули тепер переносять через цикл кешований текст, обчислений Excel. Попередній випуск охоплював числовий, булевий, помилковий та порожній варіанти кешу BIFF8 FormulaValue (MS-XLS §2.5.133), але залишив рядковий варіант у списку справ, оскільки його кешоване значення живе в окремому записі String ($0207), що негайно слідує за записом Formula. ParseFormula тепер запам'ятовує координати комірки, коли бачить рядковий варіант Formula, а новий обробник ParseString декодує завершальний запис $0207 згідно з MS-XLS §2.4.268 та маршрутизує WideString у
FCachedFormulaValue.GetCellValueтепер може відкотися до обчисленого Excel тексту щоразу, коли оцінювач HotXLS не може його відтворити. Оборонний скид на початку ParseFormula відкидає будь-який застарілий якір, що чекає, тож пошкоджений файл-джерело з відсутнім записом String не може переплутати пізніший. Записи довші за 8224 байт, що переповнюються у шматки Continue, все одно відкочуються до виводу оцінювача як відоме обмеження
Версія 2.88.10
Додано
- Записи BIFF8 Formula тепер переносять через цикл кешоване значення, обчислене Excel. ParseFormula раніше пропускав 8-байтовий вміст FormulaValue за зміщенням 6 повністю, тож кешований результат кожної формули в завантаженому .xls (числа, булеві, помилки, порожні) викидався, а HotXLS мав переоцінювати кожну комірку через власний рушій формул. Коли цей рушій не міг відповісти Excel (непідтримувані функції XLM, розірвані зовнішні зв'язки, формули, які рушій ще не реалізував), комірка мовчазно ставала порожньою чи нульовою. Зчитувач тепер декодує чотири числовий / булевий / помилка / порожній варіанти згідно з MS-XLS §2.5.133 та зберігає їх у нове поле
TXLSCellRef.FCachedFormulaValue;GetCellValueвідкочується до цього кешу лише при провалі оцінювача, тож щойно авторизовані формули все ще проходять через оцінку, як і раніше. Рядковий варіант продовжує відкладатися до оцінювача, оскільки парсер завершального запису String ($0207) ще не під'єднано
Версія 2.88.9
Виправлено
- Записи BIFF8 Formula з нерозв'язними значеннями тепер позначають fAlwaysCalc замість біта reserved1. Коли оцінювач HotXLS не міг обчислити формулу під час збереження, записувач раніше встановлював
grbit = 0x0002— біт 1, який MS-XLS §2.4.127 резервує та вказує зчитувачам ігнорувати. Excel відповідно ігнорував його, трактував значення-заповнювач кешу 0 як авторитетне та мовчазно відображав 0 замість перерахунку. Записувач тепер встановлюєgrbit = 0x0001(fAlwaysCalc, біт 0), тож Excel повторно запускає формулу при наступному перерахунку, а комірка показує правильний результат
Версія 2.88.8
Виправлено
- PageSetup.PrintTitleColumns / PrintTitleRows тепер викликають виняток на неправильному вході. Встановлення будь-якої властивості з malformed рядком діапазону (що
ColDiapasonToValues/RowDiapasonToValuesне міг парсити) раніше мовчазно відкидало призначення — книга зберігала будь-який діапазон Print_Titles, що вже був установлений, чи жодного діапазону взагалі, а викликувач не мав способу дізнатися, щось пішло не так. Встановлювачі тепер викликаютьException.Createз описовим повідомленням, що називає проблему значення, відповідаючи наявному стилю виключень на шляхах невірного-індексуTXLSRange
Версія 2.88.7
Додано
- Додано errata примітку до аудиту специфікації BIFF8 раунд 2. Перевірка меж полів [MS-XLS] прояснила, що два висновки, позначені як P2 в оригінальному звіті (
dev-notes/XLS-BIFF8-Spec-Audit-Round2.md), не є фактичними багами: біт-15, встановлений в історії прапорця BOF $000080C9, належить полю verXLHigh (біти 14-17, значення 2 = «Excel 2002»), а не хвосту reserved1 (біти 19-31); а використання в ParseFormula ведучого маркера PtgExp для виявлення спільних / масивних формул відповідає тому, що специфікація має на увазі, і правильно дизамбігується наступним записом ShrFmla / Array. Обидва пункти тепер анотовані як відкликані
Вилучено
- Поле miyRw Row тепер залишається в межах діапазону специфікації MS-XLS. Де-BIFF8 версії Excel кодували «використовувати типову висоту рядка книги» через OR біта 15 у miyRw, а HotXLS переносив цей ідіом вперед у записувач BIFF8, хоча MS-XLS §2.4.221 обмежує miyRw до 8192 твіпів. Сучасний Excel видає звичайне 255 (12.75 пт за замовчуванням) у тому самому випадку та використовує біт grbit fUnsynced для сигналізації ручних перевизначень, тож трюк з бітом-15 змусив вивід HotXLS відхилитися від авторитетних файлів .xls (значення 32 959 = 0x80FF для «типово» було технічно поза специфікацією). Записувач тепер відкидає OR та записує 255 напряму; зчитувач все ще очищає біт 15 на вході для зворотної сумісності з файлами HotXLS v2.88.6 та раніших плюс рідкісними генераторами третіх сторін, що скопіювали BIFF5-ідіом
Версія 2.88.6
Виправлено
- Аркуші макросів та модулі VBA тепер зберігають свій слот порядку BoundSheet8. Зчитувач раніше відкидав записи BoundSheet8, чиє поле
dtбуло 1 (аркуш макросів) або 6 (модуль VBA), тож колекція Sheets HotXLS скорочувалася на ці записи. Будь-яке перехресне посилання XTI в ExternSheet, що вказувало на позицію аркуша за макросним аркушем у порядку файлу, потім розв'язувалося до неправильного аркуша HotXLS після SaveAs. Зчитувач тепер додає аркуш-заповнювач для кожного запису BoundSheet8 та зберігає сирий байтdtу новій властивостіSheet.SheetTypeRaw; записувач видає оригінальний байт назад. Записи BOF підпотоку макросів ($0040) також трактуються як підпотоки аркушів під час парсингу, тож комірки всередині аркушів макросів зберігаються, а не мовчазно поглинаються попереднім аркушем
Версія 2.88.5
Вилучено
- Запис BIFF8 Row тепер переносяться через цикл fCollapsed, fExAsc, fExDes та fPhonetic. Раніше зчитувач відкидав fCollapsed (біт 4 grbit) — записувач виводив його з переходів рівнів структури сусідніх рядків, що неправильно класифікувало рядки, які файл-джерело явно згорнув чи позначив як межі. Старші три біти (fExAsc на 28, fExDes на 29, fPhonetic на 30) також ніколи не читалися та завжди видавалися як нуль, оскільки записувач скорочував 4-байтовий grbit до єдиного 16-бітового слоту ixfe. Зчитувач тепер споживає всі чотири біти згідно з MS-XLS §2.4.221 та фіксує fCollapsed як явний, тож висновок на стороні записувача більше не перезаписує значення, заявлені Excel. Записувач пакує ExAsc / ExDes / Phonetic у біти 12-14 слова ixfe, маскуючи ixfe до spec-дозволеного 12-бітового діапазону, щоб запобігти зіткненню індексу XF з новими прапорцями. Ефекти циклу: товсті-зверху / середні-знизу межі, керовані підказками ExAsc / ExDes, тепер переживають SaveAs HotXLS, а видимість фонетичної інформації на японських аркушах припиняє скидання при кожному збереженні
Версія 2.88.4
Виправлено
- Біт BIFF8 Window2 fPaged тепер позначає лише активний аркуш. Попередні випуски встановлювали
fPaged(MS-XLS §2.4.346 біт 10) на кожному видимому аркуші, що змусило вивід HotXLS відхилятися від того, що сам Excel записує (згідно з специфікацією біт означає «цей аркуш наразі відображається у вікні книги», тож лише підпотік активного аркуша повинен нести його). Зчитувачі Excel все одно відкатувалися доWindow1.itabCur, щоб ідентифікувати справжній активний аркуш, тож зловживання толерувалося, але суворий режим Apache POI та інші інструменти, що довіряютьfPagedяк первинному сигналу, тепер бачать правильний аркуш позначеним
Версія 2.88.3
Вилучено
- Масштаб та колір ліній сітки BIFF8 Window2 тепер переносяться через цикл. Попередні випуски відкидали поля запису WINDOW2 після зміщення 6 під час читання та видавали жорстко кодовані нулі під час запису, тож будь-який масштаб аркуша, збережений Excel (75 відсотків, 125 відсотків тощо), та кастомізація кольору ліній сітки відкочувалися до значень за замовчуванням після SaveAs HotXLS. Зчитувач тепер споживає
icvHdr,wScaleSLVтаwScaleNormalзгідно з MS-XLS §2.4.346: масштаб активного перегляду живитьSheet.Zoom, а значення протилежного перегляду потрапляє у кешований слот, тож перемикання між Normal та Page Break Preview в Excel відновлює попередній масштаб. Записувач видає активнийSheet.Zoomу відповідний слот перегляду та кешоване значення в інший, плюс збережений індекс кольору ліній сітки
Версія 2.88.2
Виправлено
- Виправлено опкод запису BIFF8 HFPicture. Збережені файли .xls тепер видають записи фонового зображення колонтитула з правильним
rt = 0x0866згідно з MS-XLS §2.4.138. Попередні випуски використовували0x086C— опкод для CellWatch — тож Excel намагався парсити вбудований BLIP OfficeArt як посилання на спостережувану комірку та мовчазно відкидав зображення (іноді відмовляючись відкривати книгу, коли вбудовані байти зображення випадково порушували очікувану 16-байтову структуру CellWatch). Книги, що переносять зображення колонтитула через цикл HotXLS, тепер зберігають зображення недоторканим
Версія 2.88.1
Виправлено
- Виправлено опкод запису BIFF8 Theme. Збережені файли .xls тепер видають запис Theme з правильним
frtHeader.rt = 0x0896згідно з MS-XLS §2.4.326. Попередні випуски використовували0x0892— опкод для StyleExt — тож Excel інтерпретував вбудований OOXML-вміст теми як розширення стилю комірки та мовчазно відкочувався до вбудованої теми Office, втрачаючи будь-які кастомізовані кольори теми під час циклу книги через HotXLS
Версія 2.88.0
Додано
- Збережені пакети .xlsx тепер включають частину
xl/theme/theme1.xml. styles.xml завжди видавав посилання<color theme="N"/>для будь-якого кольору шрифту / заливки / межі / вкладки, встановленого через шлях theme-index (та для кольорів теми, перенесених з проаналізованого входу .xlsx), але частина теми не записувалася, тож посилання висіли. Excel толерував упущення, відкочуючись до вбудованої теми «Office» мовчазно, але Office File Validation позначала кожне посилання як «частина теми відсутня», а суворий режим Apache POI відхиляв книгу при першому пошуку.SaveAsтепер видає канонічну тему Office (2007+): 12-слотову схему кольорів (системаwindowText/window, чотири Excel-типові кольори, шість акцентів, два кольори гіперпосилань), схему шрифтів Calibri Light / Calibri, мінімально-дійсну схему форматів (по три записи заливки / лінії / ефекту / background-fill кожен згідно зCT_StyleMatrix).[Content_Types].xmlотримує відповіднийOverride;xl/_rels/workbook.xml.relsотримує зв'язокtheme/theme1.xml, що сідає в хвіст діапазону rid, тож наявні зсувиXlsxFirstExternalLinkRidдля sheets / sst / styles / vba / externalLinks без змін - Пряме призначення
Sheet.Name := '...'тепер також очищає та дедуплікує. Раунд 3 (v2.54.1) додав застосування правил іменування Excel уTXLSXSheets.Add(AName), але встановлювач властивостіTXLSXWorksheet.Nameбув сиримwrite FName, тож найпоширеніший шлях мутації, що раунд не охопив —lxXlsxExport.pas:122 Target.Name := Source.Nameу циклі XLS → XLSX — пропускав будь-яке ім'я, яке BIFF8-джерело траплялося нести (заборонені символи: \ / ? * [ ], довжина > 31, оточуючі одинарні лапки, зарезервованеHistory, регістро-незалежні дублікати наявного аркуша). Встановлювач властивості тепер прямує через новий методSetName, що повторює ту саму логіку дедуплікаціїXlsxSanitizeSheetName+ суфіксу' (N)'(регістро-незалежно, виключити-себе) проти колекції аркушів батьківської книги. Відокремлені аркуші (ще без зворотного вказівникаFWorkbook) пропускають крок дедуплікації та просто очищаються —TXLSXSheets.Addзабезпечить унікальність, коли аркуш приєднається. Ідемпотентне на вже-дійсних іменах, тожFSheets.Add(names[i])на стороні читача залишається чистим циклом
Виправлено
- Крос-аудит [MS-XLSX] раунд 4 — частина теми + встановлювач імені аркуша. Два подальших виправлення, націлені на проблеми, залишені після раундів 1–3 (v2.51.0 / v2.52.0 / v2.54.1). Жодне не ламає наявний виклик; одне розширює поведінку у встановлювачі, інше додає нову завжди-видавану частину
Версія 2.87.4
Змінено
- Спільні формули XLS тепер записують дійсне тіло
ShrFmla. Вивід спільних формул BIFF8 тепер включає обов'язковий байтcUseперед спільною проаналізованою формулою, тож книги, збережені зUseSharedFormulas, більше не зміщують потік маркерів формули на один байт - Метадані стилю таблиці та фільтра XLS тепер відповідають останньому компонуванню MS-XLS.
AddTableтепер записуєLIST12якList12TableStyleClientInfo, встановлює прапорці таблиці та поля AutoFilter уFeature11та видає порожні блокиFeat11FdaAutoFilterокремого стовпця, які очікує Excel - Правила CF12 Data Bar / Color Scale / Icon Set BIFF8 тепер опускають заборонені вмісти DXF. HotXLS прямує правилом MS-XLS, що ці типи CF12 повинні нести порожній блок DXF, зберігаючи свої фактичні налаштування правил у хвості специфічному для виду CF12
Версія 2.87.3
Вилучено
- Метадані таблиці аркуша XLS тепер прямує компонуванню таблиці
Feature11MS-XLS. ВивідAddTableдля файлів .xls тепер записує заголовок таблиціFeatHdr11плюс вмістTableFeatureType/Feat11FieldDataItemFeature11, прибирає застарілий маркер таблиці$0867 FeatHdrта зберігає імена таблиць та стовпців як значенняXLUnicodeString
Виправлено
- Зворотне зчитування таблиці XLS тепер розуміє spec-правильне компонування полів. HotXLS парсить імена таблиць, діапазони, стан рядка підсумків та підписи полів
TableFeatureType, зберігаючи відкат для старіших записів таблиць, згенерованих HotXLS
Версія 2.87.2
Виправлено
- Записи продовження XLS BIFF8 тепер несуть правильні базові довжини. Записи XLS надмірного розміру, розщеплені записувачем, тепер оновлюють довжину першого запису до 8224 байт замість залишення оригінальної надмірної довжини у заголовку BIFF
- Великі таблиці аркуша XLS тепер використовують spec-правильні шматки
ContinueFrt11. Широкі виводиAddTableз великими вмістамиFeature11тепер зберігаються із записами продовження$0875 ContinueFrt11та повторно відкриваються зі збереженими метаданими таблиці, відповідаючи компонуваннюFeature11/ContinueFrt11[MS-XLS]
Версія 2.87.1
Змінено
- Ліміт сітки аркуша XLSX тепер включає останній рядок та стовпець Excel.
TXLSXRange,RCRange,EntireRowтаEntireColumnтепер дозволяють рядок 1048576 та стовпець 16384 (XFD), відповідаючи межам номерів рядків та стовпців [MS-XLSX]. Раніше внутрішнє затискування використовувало нуль-базовані максимуми, тожXFD1048576та діапазони, що торкаються останнього рядка чи стовпця, мовчазно скорочувалися до попереднього рядка/стовпця
Виправлено
- Документація та тести шифрування XLSX тепер відповідають реалізованому шляху запису. Сторінки довідки та регресійний звіт тепер стверджують, що
SaveAsEncryptedзаписує вивід ECMA-376 Standard Encryption для непорожніх паролів, тоді якOpenEncryptedвсе ще викликає виняток для шифрованих пакетів та відкочується для звичайних файлів .xlsx
Версія 2.87.0
Виправлено
- Збереження з паролем XLSX тепер працює (хвиля J фаза 2, беклог #29).
TXLSXWorkbook.SaveAsEncrypted(FileName, Password)тепер записує справжній ECMA-376 Standard Encryption-захищений файл .xlsx (формат Office 2007+). Повний конвеєр [MS-OFFCRYPTO] §2.3.4 на місці: виведення пароля SHA-1 50000-ітерацій фази 1 + блоки верифікатора AES-128 + шифрування тіла пакета AES-CBC + бінарний серіалізаторEncryptionInfoтепер приєднаний чотирма потоками метаданих\005DataSpacesфази 2 (Version / DataSpaceMap / DataSpaceInfo / TransformInfo) та записувачем OLE Compound File Binary, що скидає все у контейнер Cfb, який Excel відкриває з паролем користувача. Робочий процес: викликувач викликаєSaveAsEncryptedз непорожнім паролем → HotXLS серіалізує книгу у вбудований в пам'яті .xlsx zip відкритого тексту → шифрує через AES-128 CBC з свіжим випадковим 16-байтовим salt та верифікатором → записує вивід CFB черезStgCreateDocfile. Відкриття в Excel 2007+: введення пароля → вміст відкривається. Неправильний пароль: відхилено.OpenEncrypted(сторона дешифрування) все ще є окремим пунктом беклогу та продовжує викликатиEXlsxEncryptionNotImplementedпри отриманні шифрованого файлу
Версія 2.86.1
Додано
- Стандартне шифрування XLSX — криптографічна основа (хвиля J фаза 1, беклог #29). Два нові внутрішні модулі приносять половину шифру та виведення ключів шляху запису ECMA-376 Standard Encryption.
lxAES.pasобгортає AES Браяна Гладмана (зв'язаний зthirdparty/Win32/aes*.obj+thirdparty/Win64/aes*.obj) та відкриває точки входу шифрування AES-128 ECB одного блоку та AES-128 CBC.lxXlsxStdEncrypt.pasреалізує чистий Pascal SHA-1 (FIPS-180-4), виведення пароля [MS-OFFCRYPTO] §2.3.4.10 50000-ітерацій, блоки верифікатора §2.3.4.7 (EncryptedVerifier+EncryptedVerifierHash), шифрування тіла пакета AES-CBC (8-байтовий LE префікс розміру + zero-pad до 16-байтової межі + IV-of-zeros) та бінарний серіалізаторEncryptionInfo§2.3.4.6.TXLSXWorkbook.SaveAsEncryptedвсе ще викликаєEXlsxEncryptionNotImplemented— хвиля J фаза 2 додасть записувач OLE Compound File Binary (контейнерні потоки\005DataSpaces) та під'єднає конвеєр доSaveAsEncrypted. До того часу нові модулі — внутрішнє каркасне забезпечення, на яке викликувачі не повинні покладатися
Версія 2.86.0
Вилучено
- Цикл QueryTable та External Data Connection (хвиля I, беклог #28). Створені Excel QueryTables та зовнішні з'єднання даних (Data → Get External Data from Web / SQL / OLEDB) тепер переживають цикл збереження/відкриття HotXLS. Раніше зчитувач BIFF8 мовчазно пропускав
QsiSXTag($0802),QsiSXTagExt($0810) таDConn($0876), тож метадані, що описують запит up-stream, відкидалися під час збереження, а таблиця деградувала до простих значень комірок. Зчитувач тепер захоплює ці записи як непрозорі байти, а записувач видає їх назад у підпотік аркуша (поруч із блоком PIVOTVIEW згідно з [MS-XLS] §2.1.7.20.5) та глобальні дані книги (поруч із блоком пізніх глобалів перед EOF згідно з §2.1.7.20.3). HotXLS все ще не моделює типізовану структуру QSI / DConn програматично — створення нових QueryTables з коду викликувача відкладено на пізнішу хвилю — але книги, що вже містять їх, більше не втрачають метадані оновлення. Лише BIFF8 (.xls); BIFF5 не зачеплено
Версія 2.85.1
Змінено
- Відновлено збірку бібліотеки Win32 / Win64. Дві допоміжні змінні лінії-елемента зведеної таблиці у випромінювачі SXLI wave H5.3 multi-data-field були оголошені як окремі анонімні типи
array of array of Word, які компілятор Delphi трактує як різні безіменні типи та відхиляє при прямому призначенні зE2008 Incompatible types. Бібліотека HotXLS не збиралася з v2.84.1 на RAD Studio 12.0 через 37.0. Дві змінні тепер оголошені разом, тож вони поділяють єдиний анонімний тип, виправляючи призначення та відновлюючи вивід .dcu / .bpl для обох цілей Win32 та Win64. Жодних змін поведінки середовища виконання — випромінювані байти SXLI ідентичні v2.85.0
Версія 2.85.0
Змінено
- Типізований API проміжних підсумків зведеної таблиці (хвиля H5.4). Типізоване поле
TXLSPivotFieldтепер відкриває властивість наборуSubtotals: TXLSPivotSubtotalsпоруч з наявним сиримSubtotalMask: Word. Викликувачі можуть призначати, наприклад,Field.Subtotals := [xlpsSum, xlpsAverage];замість ручної упаковки бітів поляgrbitSubSXVD. Відкрито дванадцять типів проміжних підсумків (xlpsDefault, xlpsSum, xlpsCount/CountA, xlpsAverage, xlpsMax, xlpsMin, xlpsProduct, xlpsCountNums, xlpsStdDev, xlpsStdDevP, xlpsVar, xlpsVarP), кожен зівставляється з єдиним бітом згідно з [MS-XLS] §2.4.279. СиреSubtotalMaskзалишається джерелом істини циклу — зарезервовані біти 12-15 зберігаються під час читання/запису. Закриває відоме обмеження wave H4.3 «конфігурація row field subtotal SXVD.grbitSub недоступна з API» та завершує подальші дії зведеної таблиці wave H5
Версія 2.84.1
Додано
- Розширення SXLI multi-data-field (хвиля H5.3). Коли зведена таблиця має більше одного поля даних І вісь поля даних відповідає заданій осі SXLI (
DataFieldAxisIsRow = True&& вісь рядків, абоDataFieldAxisIsRow = False&& вісь стовпців), записувач тепер реплікує кожну комбінацію декартового добуткуDataFieldCountразів зiData = 0 .. DataFieldCount - 1, плюсDataFieldCountрядків загального підсумку, тож кожне поле даних отримує власний підсумок. Вісь, що не хостує, без змін. Excel та інші зчитувачі тепер відтворюють multi-data-field зведені таблиці у компонуванні, яке викликувач мав на увазі, замість відкату до попередньої апроксимації «єдинеiData = 0на комбінацію». Single-data-field зведені таблиці випромінюють побайтово ідентичний вивід v2.84.0. Дельта-стиснення (H5.1) згортає повторювані комбінації до ~8 байт на репліку, тож розширення додає мінімальні накладні витрати байтів. Закриває відоме обмеження wave H4.3 «multi-data-field SXLI некоректно розширено»
Версія 2.84.0
Змінено
- API попереднього вибору осі сторінки зведеної таблиці (хвиля H5.2). Типізоване поле
TXLSPivotFieldтепер несе властивістьPageItemIndex, яку програмно побудовані зведені таблиці можуть встановити для попереднього вибору певного елемента кешу на фільтрі осі сторінки. ТиповеxlPageItemAll(= $7FFD) залишає фільтр на «(Усе)», тож викликувачі, що ніколи не призначаютьPageItemIndex, поводяться побайтово ідентично v2.83.2. Записувач SXPI ($00B6) читаєField.PageItemIndexзамість жорсткого кодування $7FFD, а типізований зчитувач тепер заповнюєPageItemIndexз SXPI під час Open, тож викликувачі можуть перевірити збережений вибір сторінки. Закриває відоме обмеження wave H4.3 «popередній вибір фільтра сторінки викликувачем недоступний з API»
Версія 2.83.2
Змінено
- Менші записи SXLI зведеної таблиці через дельта-стиснення (хвиля H5.1). Записувач зведеної таблиці тепер дельта-стискає лінії SXLI з використанням поля cSic специфікації — кожна ведуча індекси елементів кешу лінії, що відповідають попередній лінії в тому самому записі SXLI, згортаються у спільний префікс-підрахунок, і лише завершальні індекси видаються. Типові записи SXLI осі рядків (кілька полів рядків × десятки елементів) скорочуються на 30–60% без змін семантики. Вивід все ще шматкується, щоб залишитися під 8224-байтовим лімітом запису BIFF. Перша лінія кожного запису SXLI завжди видає cSic = 0 (запис-локально, без cross-record back-reference), а лінія загального підсумку ніколи не дельта-стискається
Версія 2.83.1
Виправлено
- Кольори заливки, шрифту та межі комірок, встановлені через RGB, тепер переносяться через цикл збереження/відкриття .xls. Записувач BIFF8 XFExt ($087D) генерував поле ixfe кожного запису, використовуючи позицію масиву XF у пам'яті, але відповідні записи комірок на диску записують ixfe, використовуючи порядок SaveIndex після обрізки. Щоразу, коли будь-який XF, раніший у таблиці, обрізався під час збереження (типово, коли одна комірка мігрувала з тимчасового XF до кінцевого), ixfe кожного XFExt зміщувався на кількість обрізаних слотів, і насичений колір, пов'язаний з кожною коміркою, зміщувався до сусідньої комірки при повторному завантаженні. Записувач тепер вирішує SaveIndex для кожного насиченого слоту XF та генерує відповідний ixfe на диску, тому кольори комірок RGB, збережені HotXLS — внутрішня заливка, колір шрифту, кольори меж — виживають цикл збереження/повторного завантаження чисто. Записи XFExt для XF, що були повністю обрізані, тепер пропускаються, а не генеруються з відірваним ixfe
Версія 2.83.0
Змінено
- Лінії зведеної таблиці + стан елемента сторінки (хвиля H4.3). Програмно побудовані зведені таблиці тепер випромінюють SXLI ([MS-XLS] §2.4.275, $00B5) для обох осей рядків та стовпців, плюс SXPI ($00B6) для осі сторінки. Це дає зведеному перегляду точність компонування: не-Excel зчитувачі бачать точний порядок відображення, який мав на увазі записувач, великі зведені таблиці відкриваються швидше (Excel не доводиться перераховувати компонування ліній з нуля), а фільтри сторінки зберігаються з типовим вибором «(Усе)» на кожне поле сторінки
- Перерахування рядків + стовпців SXLI. Записувач перераховує декартів добуток елементів кешу полів осей (найвнутрішнє поле варіюється найшвидше, відповідаючи вкладеному-рядковому компонуванню Excel) та видає одну лінію на комбінацію плюс завершальну лінію загального підсумку, позначену бітом SXLI nTypes fGrandTotal. Кожна лінія використовує cSic = 0 (без дельта-стиснення — простіше ціною кількох зайвих байтів на лінію). Вивід шматкується у кілька записів SXLI, коли кількість ліній переповнює 8224-байтовий ліміт BIFF; обмеження безпеки 16384 ліній запобігає неконтрольованому розширенню на патологічних входах
- Стан осі сторінки SXPI. Випромінюється лише тоді, коли принаймні одне поле має Axis = xlpfaPageField. Кожен запис — 10 байт (isxvd + iCache + ipos + objId) з iCache = $7FFD, що сигналізує «(Усе)» — поверхня API для попереднього вибору певних елементів сторінки відкладена на хвилю H5. Зведені таблиці без полів сторінки не випромінюють SXPI (ABNF аркуша перераховує його як необов'язковий)
- Закриває відоме обмеження wave H3 «SXLI / SXPI не випромінюються». Разом з H4.1 (числові формати DataField) та H4.2 (поток записів SXDBB), хвиля H4 закриває всі три відомі обмеження у записувачі зведених таблиць wave H3. Зведені таблиці, побудовані через
IXLSWorksheet.AddPivotTable, тепер постачають самодостатні кеші з повними метаданими компонування