Бележки към изданието на 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 pivot кешове и изгледи на pivot таблици вече се зареждат в типизирания модел чрез връзки на пакета, включително записи на кеша, полета, споделени елементи, групиране, филтри, формати, изчислени дефиниции и разширения
TXLSPivotTable.Makeвече оценява изчислени полета на кеша, изчислени елементи и изчислени членове на данни със свързване на имена, съобразено с зависимости- Разширените режими
ShowDataAsдобавят родителски проценти, текущи проценти и възходящ или низходящ ранг с валидна XLSX маркировка за разширение
Променено
- Генерирането на pivot резултати вече прилага видимост на елементите, избрани страници и филтри за надписи, дати, агрегати и стойности преди изграждане на групирани домейни
- Числови, датски и дискретни групи, сортиране на надписи или стойности на данни, конфигурирани междинни суми и незадължителни материализирани редове или колони с общи суми вече участват в генерирането на резултати
Поправено
- Pivot филтрите вече използват валидна спрямо схемата маркировка за филтър на коренно ниво и символни типове филтри вместо двусмислени числови стойности
- Зареждането, управлявано от връзки, вече не предполага конвенционални или последователни имена на части за pivot кеш, записи на кеша или pivot таблици
Версия 2.225.0
Добавено
TXLSXWorkbook.ConnectionsиTXLSXWorksheet.QueryTablesвече предоставят типизирано създаване и редактиране на метаданни за външни бази данни, уеб, текст и резултати от заявки- Параметрите на връзката запазват точния си вид Boolean, цяло число, число с плаваща запетая, низ или препратка към клетка, включително изрични стойности нула, false и празен низ
Променено
- Отварянето и запазването на XLSX вече разрешават и записват части за връзки и таблици за заявки чрез техните притежаващи релации, синхронизират таблиците с резултати и дефинираните имена и запазват непознати атрибути, дъщерни възли и списъци с разширения
- Редакциите на редове и колони поддържат диапазоните на резултатите от заявките подравнени, докато копирането на работни листи в същата работна книга и между работни книги запазва собствеността на заявките и пренаписва идентификаторите на връзките и конфликтните имена
Поправено
- Таблиците за заявки могат да съществуват едновременно със стандартни таблици, нишкови коментари и pivot таблици без колизии на идентификаторите на релации на работен лист или работна книга
Версия 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 четци, локални за работника, и ограничени опашки producer-consumer, вместо да съхраняват пълно декомпресирано XML на работния лист и пълни буфери за клетки на лист
- Активните работни листове получават независими бюджети за опашки и се обработват в прозорци с размер на работника, запазвайки реда на обратно извикване, без да позволяват на по-късните работни листове да изгладнат работния лист, който се излъчва в момента
Поправено
- Прекратяванията на клетки, неуспешните обратно извиквания и грешките на работника вече събуждат блокираните производители и консуматори, спират кооперативно извличането на XML, присъединяват всички работници и оставят директния четец повторно използваем
Версия 2.221.0
Променено
- Отварянето на многолистов XLSX вече предава поточно всеки ZIP запис на работен лист директно в неговия декомпресор и XML четец, локални за работника, вместо да съхранява декомпресирано XML на работния лист преди синтактичния анализ
- Едновременните четци на работни листове сериализират само кратки позиционирани четения от източника на пакета, така че декомпресията и синтактичният анализ на XML остават паралелни, докато преходната входна памет на работния лист е ограничена от броя на активните работници
Версия 2.220.0
Добавено
- Генерирането на резултати от сводната таблица вече изпълнява всички девет класически режима на
ShowDataAs, включително разлика, процент от базов елемент, процентна разлика, натрупана сума, процент от реда, процент от колоната, процент от общата сума и изчисления на индекс xlPivotBaseItemPreviousиxlPivotBaseItemNextпредоставят типизирани селектори за съседни базови елементи в сравнителни изчисления
Променено
- Процентите и стойностите на индекса на сводната таблица използват междинни суми на редове, колони и общи суми, агрегирани директно от изходните записи, запазвайки правилната семантика на средно аритметично, произведение, брой, дисперсия и стандартно отклонение без повторно сканиране на източника
- Натрупаните суми следват реда на елементите на сводната таблица, нулират се независимо за всяка група на равнище и запазват разредено съхранение на резултатите за сводни таблици с висока кардиналност
Поправено
- BIFF8 записите
SXDIвече използват стандартното 14-байтово фиксирано подредба и запазватShowDataAs, базовото поле, базовия елемент, числовия формат и показваното име чрез типизирани четения, докато наследените HotXLS записи остават четими - Полетата с данни XLSX вече записват индекси на сводни полета, съпоставят селекторите предишен и следващ към необходимите OOXML стойности и излъчват базови атрибути само за режими, които ги използват
- Липсващите клетки за сравнение остават празни, докато наличните нулеви знаменатели връщат
#DIV/0!вместо да бъдат бъркани с липсващи данни
Версия 2.219.0
Поправено
VDBвече прилага амортизация по намаляващия баланс в дробни периоди, превключва към линейна амортизация, когато е изгодно, и зачитаno_switch- Нулевите коефициенти, границите на остатъчната стойност, дробните начални периоди и невалидните диапазони на периоди вече следват резултати, съвместими с Excel, вместо да закръглят периодите и да връщат опростено приближение на намаляващия баланс
Версия 2.218.0
Добавено
TXLSXWorksheet.Scenariosвече предоставя типизирано създаване на Мениджър на сценарии What-If с наименувани сценарии, активни и показани индекси, диапазони на променящи се клетки, метаданни за потребител и коментар, заключени и скрити състояния и собствени стойности на входните клетки- Дефинициите на сценарии вече следват копия на работни листове и структурни редакции на редове или колони, докато границите за съвместимост с Excel се проверяват преди да могат да бъдат записани невалидни метаданни
Поправено
- Отварянето и запазването на сценарии, създадени в Excel, вече запазва основните атрибути и вложените входни клетки, вместо да изравнява йерархията до загубен суров XML
- Елементите на работния лист за сценарии, автофилтър, консолидация на данни, обединени клетки и фонетика вече използват реда на схемата, така че строгите консуматори на електронни таблици не изискват проход за поправка
Версия 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 вече приема поточни UTF-16 little-endian и big-endian XML части с маркер за ред на байтовете или необходимата endian-специфична декларация, включително знаци извън Basic Multilingual Plane
Променено
- Обновяванията на кеша на PivotTable с висока мощност вече използват детерминистични хеш-индекси за споделени стойности и заделят матрицата на записите еднократно, запазвайки реда на първо срещаните елементи, като избягват повтарящи се линейни търсения и растеж ред по ред
- Проектираните директни четения отхвърлят клетките извън избраните редове и колони преди копирането на сурови стойности, формули и rich text в буфери за работен лист
Поправено
- Деформиран XML с дублирани маркери за ред на байтовете, неподдържани или противоречиви декларации за кодиране, UTF-32 сигнатури, нечетни UTF-16 дължини на байтове или невалидни сурогатни двойки вече се отхвърля
- Паралелните работници на директния четец вече инициализират цялото състояние на задачата преди стартиране, спират да вземат нови задачи за работен лист след отказ, повторно повдигат грешката на задачата с най-нисък индекс детерминистично и изчистват всеки създаден работник, ако конструирането на пула се провали
Версия 2.213.0
Добавено
T.TESTвече оценява независими проби или с обединена равна дисперсия, или с неравна дисперсия на Уелч, в допълнение към сдвоените проби, включително едноопашати и двуопашати вероятности
Променено
- Отварянето на XLSX вече следва целите на релациите между работна книга, работен лист и рисунка за работни листове, споделени низове, стилове, теми, макроси, външни връзки, коментари, нишкови коментари, VML, рисунки, изображения, диаграми, таблици и PivotTable, включително валидни пакети, които използват преименувани или непоследователни пътища на части
Поправено
- Деформирани пакети с дублирани идентификатори на релации вече не позволяват на по-късна неподдържана релация да замени първата използваема цел по време на възстановяване на съвместимостта
Версия 2.212.0
Променено
- Проследяването на зависимости във формулите вече се мащабира по-добре в големи работни листове чрез индексиране на клетъчните и диапазонните зависимости преди преизграждания и инвалидация на мръсните клетки
- Големите статистически и регресионни формули вече оценяват всяка числова стойност в подадените диапазони вместо да спират при предишния буфер с фиксиран размер
Поправено
- XLSX клетките извън мрежата на работния лист се отхвърлят консистентно, така че невалидните координати вече не могат да се alias-ват към валидни клетки
- Редактирането на формули вече не нулира режима на изчисление на работната книга, ограниченията за итерация, флаговете за пълно изчисление или други настройки за изчисление
- Четенията на списъци с blob вече валидират изрично заявените диапазони и позволяват валидни празни slices в края на потока
Сигурност
- Шифроването на класически XLS вече покрива потоците на pivot кеша заедно с данните на работния лист
- Деформираните опашки на SST разширенията и записите на централната директория на ZIP се отхвърлят преди прекомерно голямо заделяне, отрязани четения или вмъкнати в коментара фалшиви записи на директория да могат да повлияят на зареждането
Версия 2.211.0
Добавено
TXLSPivotTable.Makeвече материализира всяко конфигурирано поле с данни със собствена агрегация и разширява стойностите по редове или колони споредDataFieldAxisIsRow
Променено
- Генерирането на pivot резултати преизползва хеш-индексирани домейни на ключове за редове и колони във всички полета с данни, избира плътно или разредено съхранение на акумулатора според формата на резултата, запазва реда на елементите в кеша отвъд девет ключа и излъчва четливи комбинирани етикети за много-полеви оси
Поправено
Countвече включва непразни текстови, булеви, грешни, дата и числови стойности в кеша, докатоCountNumsвключва само числови и дата стойности,Productвръща нула за пресечни точки без числови стойности, празните вече не се броят като записи, а pivot-и само със стойности могат да материализират общите си суми без полета за редове или колони
Версия 2.210.0
Добавено
TXLSWorkbookViewerвече рендерира XLSX условни запълвания, цвят и ударение на шрифта, числови формати, насочени положителни и отрицателни data bars, градиенти, граници, оси, скрити стойности и всички вградени семейства icon-setTXLSWorkbookViewer.RefreshConditionalFormatsпреизгражда подготвеното агрегирано и прагово състояние, след като извикващите модифицират прикачена XLSX работна книга на място
Променено
- Визуализаторът кешира един подготвен оценител на условно форматиране за активен работен лист, преизползва го при превъртане, селекция и операции по прерисуване и го освобождава, когато работната книга или работният лист се промени
Поправено
- Осите на data bars при най-дясната граница вече се отрязват вътре в притежаващата клетка вместо да се чертаят в съседната клетка
Версия 2.209.0
Добавено
- XLSX работните листове вече излагат подготвен оценител на условно форматиране, който разрешава приоритета на правилата,
StopIfTrue, относителните формули, диференциалните стилове, Top/Bottom класиране, тестове над/под средното, дублирани и уникални стойности, относителни периоди от дати, дву- и трицветни скали, data bars и icon sets за всяка клетка
Променено
- HTML и PDF експортите вече рендерират съответстващи условни запълвания, ударение и цвят на шрифта, числови формати, цветови скали, насочени положителни и отрицателни data bars, изрични оси, глифове на семейство икони, скрити стойности и цветове на тема с резолюция на нюанса
- Големите домейни на условно форматиране вече преизползват компилирани относителни формули без разпределяне на синтактично дърво за всяка клетка, потокизират статистики за средно стойност, отклонение, минимум и максимум, запазват подредени стойности само за правила за класиране или перцентил, пакетно сортират Unicode ключове за дубликати и използват индекси на кандидат-ленти за редове, за да избягват сканирането на несвързани правила
Поправено
- Класическите условни правила вече зареждат типовете изрази правилно и оценяват обърнато между граници, предикати за текст без чувствителност към регистъра, празни клетки и предикати за грешки консистентно
Версия 2.208.0
Променено
- Двигателят за пакетно съхранение на клетки вече записва естествени маркирани string, Boolean, error и blank payload-и, итерира клетките в ред major-ред и кодира с дължина на изпълнение последователни клетки от равен тип за по-ниска консумация на памет и по-бърз последователен изход
- Споделените низове на класическата работна книга вече държат байтовете на знаците в едно заделяне и създават декодирани string стойности мързеливо, намалявайки режийните разходи за заделяне при големи таблици с уникални низове
Добавено
- Pivot таблиците вече могат да изчисляват пълна матрица на резултатите от записи на кеша с групиране на ключове за редове и колони и всички 11 поддържани агрегиращи функции
- Класическите диаграми на работната книга вече излагат типизирани данни за серии, ос, легенда и информация за chart-group за работни процеси на конвертиране и инспектиране
Версия 2.207.0
Добавено
TXLSPivotCache.RefreshFromSourceизгражда pivot кеш от диапазон на источник работен лист: чете заглавния ред, за да именува полетата, дестилира отделните стойности на всеки ред данни в домейна на споделени елементи за поле, заключва типа на полето от първата непразна стойност и записва индекса на споделения елемент за всеки (запис, поле) — така pivot таблица може да бъде създадена програмно от диапазон с данни вместо да разчита наrefreshOnLoadна Excel. Четец на стойности базиран на callback държи pivot модула свободен от директна зависимост от работен лист
Версия 2.206.0
Добавено
- Нов
TlxCellMMU(модулlxCellMMU) реализира пакетиран, row-major двигател за съхранение на клетки с кодиране с дължина на изпълнение на равен-тип и празни поредици клетки и маркиран байтов тип-код, който служи едновременно и като селектор за ширина на данните — така колона от малки цели числа струва един байт на клетка вместо осем. Двигателят кодира числата в най-малката ширина, която запазва стойността (int8 / int16 / int32 / 2-десетични / 4-десетични мащабирани цели / IEEE double), съхранява string-index, boolean, error и blank клетки компактно и излага APIGetValue/SetNumber/SetStringплюс forward итератор. Това е следващо-поколение ядро зад feature flag за съществуващияTXLSXCellsAPI, насочено към 10–25× намаляване на работния набор в плътни листове
Версия 2.205.0
Добавено
TXLSCustomChart.GetChartInfoвече декодира семантично резюме от суровия поток на BIFF chart записи — фамилия тип диаграма (bar, line, pie, area, scatter, radar, doughnut, surface, bubble), броя на серийите и наличие на легенда — така типът на BIFF диаграма може да бъде запитан програмно и конверсията от BIGH към XLSX диаграма може да избере правилната целева фамилия. Съхранението с byte-passthrough, което гарантира fidelитет на двупосочно пренасяне, остава непроменено
Версия 2.204.0
Променено
- Класическата
.xlsтаблица със споделени низове вече записва ASCII-only низове в компресирано 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— отваряйки вратата към in-memory и крос-платформена обработка на.xls. Четецът покрива v3 подредбата, която HotXLS среща в практиката (header + in-header DIFAT + обхождане на FAT верига + MiniFAT и мини-поток за потоци под 4096 байта + дървото на директорията); записващото устройство излъчва минимален, но валиден v3 контейнер, достатъчен за изхода на HotXLS
Версия 2.202.0
Добавено
- Състоянието на сортиране на autofilter вече има типизиран модел (
TXLSXSortStateс децаTXLSXSortCondition), покриващ sort-by стойност / цвят на клетка / цвят на шрифт / икона, метод на сортиране (none / stroke / pinYin), чувствителност към регистъра, сортиране по колона и per-condition персонализирани списъци — така приложенията могат да изграждат състояния на сортиране програмно вместо да редактират суров XML, докато наследственият opaqueSortStateXmlpassthrough все още печели за файлове, които HotXLS не е авторизирал - Динамичните филтри вече се четат и записват като типизиран
TXLSXDynamicFilterType(над/под средно и std-dev, днес/вчера/утре, тази/последната/следващата седмица, месец, тримесечие и година, year-to-date, Q1–Q4, M1–M12) с опционални границиval/maxVal— отварянето на работна книга, която използва динамичен филтър, вече не го губи при запис
Версия 2.201.0
Добавено
- Surface и 3-D surface диаграми (
xlsxChartSurface/xlsxChartSurface3D) вече са first-class типове диаграми — записвани, четени и пренасяни двупосочно като другите фамилии диаграми - API-то за авторство на autoshape покрива практично подмножество от списъка с preset-геометрии на OOXML — триъгълници, диаманти, успоредници, шестоъгълници, осмоъгълници, стрелки, chevrons, callouts, flowchart възли, звезди, сърца, слънце, луна, скоби и brace-и — всяко съпоставено със своя правилен
prstтокен и[MS-ODRAW]shape id, така че авторизираните фигури да се рендерират правилно в Excel (пълният списък от 187 preset-а вече се запазваше при двупосочно пренасяне чрез raw-anchor passthrough)
Версия 2.200.0
Поправено
- Отварянето на работна книга, чийто autofilter използва цвят-филтър или икона-филтър, вече не губи този филтър при запис —
colorFilterиiconFilterвече се четат в типизирани колони (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) и се преизлъчват буквално, вместо да се губят като неразпознати деца на filter-column
Версия 2.199.0
Добавено
TCondFormatRule.Evaluateотговаря дали правило за условно форматиране се задейства за дадена клетка, покривайки сравнения на cell-value, изрази с формули, текст съдържа/започва с/завършва с, правила за празни и за грешки — основата за запитване кои клетки дадено правило маркира в момента и за рендериране на CF резултати извън Excel
Променено
FACTи вътрешните помощници за факториел вече използват предварително изчислена таблица 0!..170! вместо да преизчисляват O(n) произведение при всяко извикване, ускорявайкиFACT, multinomial коефициенти и пътищата за разпределение Poisson/Binomial/chi-square
Версия 2.198.0
Променено
- Запазването на работен лист вече групира клетките в редове с едно count-then-fill преминаване вместо да разраства индекса на всеки ред с realloc-per-cell, премахвайки скрито O(cells × cells-per-row) копие в големи листове
- Графът на зависимости във формулите вече индексира своите референтни диапазони по (лист, ред), така че засяването на мръсна клетка двоично търси кандидат-лентата вместо да сканира всяка формула при всяка променена клетка — колкото по-голяма е работната книга и колкото повече листове има, толкова по-голямо е ускорението при преизчисление
- Row-major, сортиран по колони обход на клетки вече е изложен като
TXLSXWorksheet.BuildRowMajorCellOrder, така че запис, клипборд, autofilter и други row-ordered консуматори споделят едно обход вместо да го преизваждат
Версия 2.197.0
Поправено
- Radar, stock и pie-of-pie/bar-of-pie диаграми вече не се губят, когато
.xlsxработна книга, която ги съдържа, се отвори и презапише — четецът на диаграми вече разпознава контейнерните елементиc:radarChart,c:stockChartиc:ofPieChart, които вече записва, възстановявайки симетрично покритие четене/запис SUBTOTALс функционални кодове 101–111 вече изключва стойности на скрити редове, аAGGREGATEвече зачита своите опционни кодове за игнориране на скрит ред (2, 3, 6, 7), съответствайки на Excel вместо да третира идентично вариантите include-hidden и ignore-hidden- Извикване на вградена функция с фиксирана арност с повече аргументи от декларираните (например
=SIN(1,2)) вече повдига#VALUE!централно вместо да бъде приемано от диспечера
Версия 2.196.0
Поправено
- Вмъкването или изтриването на редове и колони вече разделя клетъчни-стойностни и изразни условни формати плюс валидации на данни, когато редактираните целеви области изискват различни относителни котви за формули, докато запазва настройки на правилата, присвоява уникални приоритети на условното форматиране и поддържа непокътнати агрегатни домейни на условно форматиране
Версия 2.195.2
Променено
- PDF експортът вече subset-ва вградения TrueType шрифт чрез Windows
fontsub.dllAPI-тоCreateFontPackage, запазвайки само глифите, които документът реално е рендерирал, вместо да вгражда целия.ttf— обикновено смалявайки PDF-а 8–20× за Unicode-тежки листове; преминава към пълно вграждане, когато subset-ването е недостъпно
Версия 2.195.1
Поправено
- Вмъкването или изтриването на редове и колони в класическия
.xlsдвигател вече пренаписва всяка засегната референция във формулата (клетъчни формули и дефинирани имена), за да съответства на семантиката на Excel — референции под вмъкване се изместват, референции изцяло вътре в изтриване стават#REF!, а частично припокриващи се области се свиват — вместо да оставят остарели координати
Версия 2.195.0
Променено
- Изтриването на колони на таблица вече конвертира всеки засегнат structured-reference токен към
#REF!в работнолистни формули, формули на таблица, дефинирани имена и серии на диаграми, като запазва несвързаните референции и стринговите литерали
Поправено
- Изтриването на цяла таблица вече не оставя квалифицирани structured референции, сочещи към таблица, която вече не съществува
- Клонираните валидации на данни вече запазват своя IME режим на въвеждане
Версия 2.194.0
Променено
- Редакциите на редове и колони вече поддържат идентификатори на колони на Excel таблица, имена, изчислени формули, формули за суми, колони на филтър, диапазони на филтър и условия за сортиране подравнени с редактираната таблица
Поправено
- Формулите за условно форматиране и валидация на данни вече ребазират относителни и смесени референции, когато изтриване премахва първата им целева област
- Състоянията на сортиране на работен лист и таблица вече записват валидни атрибути и отхвърлят условия, чиито диапазони са били изтрити
Версия 2.193.0
Променено
- Редакциите на редове и колони вече обновяват сложни и крос-обхват формули на дефинирани имена, диапазони с данни за bubble диаграми и прагове за визуално условно форматиране базирано на формула
- Bubble и scatter диаграмите вече възстановяват своите диапазони от серии за X-ос, Y-ос и размер на балон при повторно отваряне
Поправено
- Много-областни цели на условно форматиране и валидация на данни вече изместват всяка оцеляла област независимо вместо да оставят пълния списък с цели непроменен
- Котви на text box и WordArt вече се местят или преоразмеряват с вмъкнати и изтрити редове и колони
Версия 2.192.0
Добавено
- Поточните директни четения и обхождане с row-cursor могат да оптират в структурирани rich низове с пълно форматиране на изпълнения, фонетични изпълнения и фонетични свойства, като запазват ограничено съхранение на споделени низове
TXLSDirectWriter.WriteRichStringзаписва форматиран и фонетичен текст като inline или дедуплицирани споделени низове
Променено
- Дедупликацията на rich споделени низове вече отличава форматирането на изпълнения и фонетичните метаданни, докато запазва обикновеното string interning на съществуващия си бърз път
Поправено
- Фонетичният текст в inline низове вече не се включва в показваната стойност на клетката
Версия 2.191.0
Добавено
TXLSXRange.SetDynamicArrayFormulaвече създава естествени dynamic-array формули с пълната верига от метаданни на Excel XLDAPR
Променено
- Корените на dynamic-array вече споделят един дедуплициран запис с метаданни на работната книга, а копията на работен лист или диапазон крос-работна книга пренанасят този запис в целевата работна книга
- Поддържаните метаданни за dynamic-array остават достъпни, когато запазването на неподдържани package-part е изключено, докато несвързаните метаданни за стойности все още се премахват
Поправено
- Spill клетките на dynamic-array вече не се моделират като наследени CSE последователи, а замяната или изчистването на корена вече не оставя остарели индекси в метаданните
- Премахването на последния корен на dynamic-array вече премахва неизползваната част с метаданни, релацията на работната книга и записа в content-type
Версия 2.190.0
Променено
- Поточните директни четения и обхождане с row-cursor вече разгръщат последователите на shared-formula в пълни клетъчно-относителни формули, като запазват поведение за проекция и ограничена памет
Поправено
- Работните книги с dynamic-array вече запазват индекси на метаданни за клетки и стойности, атрибути за преизчисление на формули, релации на метаданни на пакета и непроменени префикси за future-function по време на цикли на отваряне и запис
- Изключването на запазване на неподдържана част вече не оставя увиснали индекси на метаданни на работен лист, след като частта с метаданни е премахната
Версия 2.189.0
Добавено
- Отварянето на XLSX работни книги вече разгръща последователите на shared-formula в пълни per-cell формули с правилни относителни, абсолютни, смесени, диапазонни и sheet-квалифицирани референции
Поправено
- Само-затварящите се последователи на shared-formula вече не прихващат по-късен XML за стойност или формула, а техните кеширани резултати оцеляват цикли на отваряне и запис
- CSE масивните формули вече запазват своите котва и последователни отношения през редакции на структурата на ред или колона, копия на пълен диапазон, дублиране на работен лист и копия на лист крос-работна книга
- Присвояването на нормална формула или изчистване на клетка вече премахва остаряла CSE масивна принадлежност, така че изчислението не може да бъде пренасочено към стара котва на масив
- Копирането само на част от CSE масив вече не създава увиснали последователни референции в целта
- Копията на диапазон вече snapshot-ват припокриващи се източници и изместват относителни референции във формули, предотвратявайки изходни клетки или котви на масив да бъдат презаписани преди да бъдат копирани
- Редакциите на ред или колона, които пресичат само част от CSE масив, се отхвърлят вместо мълчаливо да преоразмеряват или откъсват масива
Версия 2.188.0
Добавено
TXLSDirectReader.SharedStringMemoryLimitограничава декодираната памет за споделени низове и автоматично мигрира по-големи таблици към изтриваемо при затваряне индексирано временно съхранение с фиксиран по размер кеш за стойностиTXLSRowCursor.SharedStringMemoryLimitизлага същото ограничено съхранение на споделени низове за forward-only обхождане на редове
Променено
- Директното парсиране на споделени низове вече запазва само-интервал стойности, CDATA, XML обекти, не-BMP знаци, празни елементи и реда на rich-text изпълнения, като изключва фонетичния guide текст от показваната стойност
Поправено
- Отварянето на XLSX работни книги вече запазва всеки елемент от споделен низ в ред на документа, предотвратявайки дублиран текст или различно форматиране на rich низове да колапсират по-късни индекси на клетки
- Запазването на XLSX работни книги вече дедуплицира rich низове по граници на изпълнения и свойства на форматиране вместо само по видим текст, запазвайки отделно форматиране за клетки с еднаква показана стойност
Версия 2.187.0
Добавено
TXLSDirectReader.FirstRowиLastRowограничават поточните четения до 1-базиран диапазон от редове и спират парсирането на работен лист след заявения диапазонTXLSDirectReader.IncludeColumnиClearColumnProjectionпредоставят константно-времева проекция на колони, която прескача неизбраните клетки преди декодиране на стойност и диспечериране на callback
Версия 2.186.0
Добавено
TXLSDirectWriter.UseSharedStringsможе да дедуплицира повтарящ се текст в OOXML част за споделени низове с точни общи и уникални бройки, намалявайки размера на пакета за данни с много повторенияTSimpleDomReaderпредоставя компактно еднопосочно XML дърво за заявки с произволен достъп до метаданни на работна книга и части на пакета, с търсене по QName и local-name, чувствително към регистъра
Променено
- Директното четене на XLSX вече използва асистирано от хеш точно диспериране на елементи, еднопосочно събиране на атрибути и константно-времево търсене на колона в текущия ред, докато запазва поточно поведение на паметта
- Генерирането на XML за споделени низове вече използва буфер с линеен растеж, за да избегне повтарящи се копия на целия низ при големи таблици с различни низове
Поправено
- CSV експортът на формули вече не добавя втори знак за равенство, когато текстът на формулата вече включва такъв
- XLSX PDF експортът вече не отрязва текст на клетка чрез оценка на броя знаци преди layout
- Хешовете за име на XML четец вече проследяват инструкции за обработка, атрибути и се връщат към своите притежаващи елементи без да излагат остаряло състояние на елемент
Версия 2.185.1
Поправено
- Вмъкването или изтриването на редове и колони вече коригира локални и крос-лист референции във формулите точно веднъж, докато запазва имена на функции и текстови литерали
Версия 2.185.0
Добавено
TXLSPDFExportвече предоставя едно-базиран избор на изходFirstPageиLastPage, пълно логическоPageCountи шест варианта наCalculatePageCountза класически и XLSX диапазони, работни листове и работни книги без конструиране на PDF обекти за странициTXLSXWorkbook.SaveWorkbookAsHTMLпубликува видими работни листове в един навигируем HTML документ със стабилни per-sheet котви, екранирани заглавия и имена на листове и опция за включване на скрити или много скрити листовеTDataToXLS.BeforeRecordможе да прескача записи преди извеждане на ред, аBeforeValueможе да трансформира или потиска стойности на полета с контекст на набор данни, детайлно ниво, изходно поле и колона за експортTXLSWorkbookViewerизлага коментари и хиперлинкове на избрани клетки, повдига събитие за хиперлинк, контролирано от приложението, рисува индикатори за коментари и XLSX шрифтове, запълвания и подравняване и нормализира селекция и рендериране в обединени диапазони
Променено
- Примерът ConversionWorkbench вече може да produce PDF изход и публикува всички видими XLSX работни листове за HTML цели, докато примерът WorkbookViewer демонстрира навигация в обединени клетки, коментари и активиране на хиперлинкове
Версия 2.184.0
Добавено
- Класически XLS и XLSX диапазони могат да копират Unicode табличен текст и стилизиран HTML в клипборда на Windows чрез
CopyToClipboard, запазвайки формули, обединени клетки, линкове, форматиране на показване и безопасно екранирани вградени табулации, прекъсвания на редове и кавички TXLSXWorkbookвече запазва персонализирани части на пакета, достъпни от неизвестни package-root, workbook, worksheet или drawing релации, включително обработка на колизии в ID на релация, content types, детски релации, избор на компресия и точни payload байтове;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytesиClearUnsupportedPartsизлагат контрола и диагностиката- Класическите XLS записвания излагат begin, work и end callback-и с отменяне чрез
OnProgressEx, докатоIXLSWorkbookProgressпредоставя структурирани диагнози със стабилни кодове, тежест, операция, контекст на лист, естествени върнати стойности и детайли за изключения TXLSXWorkbookвече излага същите структурирани повърхностиDiagnostics,LastDiagnosticиOnDiagnosticза запис, отваряне, преизчисляване, отменяне и отчитане на изключения- Парсраните VBA модули вече поддържат редактиране на
SourceCodeи запис на обновения компресиран поток на модула обратно през класически XLS, самостоятелно VLS съхранение и макро-разрешени OOXML записвания, докато запазват префикси на потоци и недокоснато съдържание на проекта - Класическите работни листове и колекции от фигури вече излагат типизирани
TXLSCheckBox,TXLSComboBoxиTXLSListBoxформ контроли с помощници за създаване, етикети, инспектиране на вид контрола, котви на клетки, изтриване и откриване при отваряне/запис TXLSXRange.ApplyFormatPatchможе селективно да копира компоненти на шрифт, запълване, граница, числов формат, подравняване и защита с настилка на изходен шаблон, докато запазва целевите стойности и неизбрано форматиранеTDataToXLSможе рекурсивно да експортира свързани master-detail набори от данни чрезReadDetailTablesиIndentDetailTables, запазвайки активни връзки към данни, добавяйки всяка detail таблица под нейния master запис и наследявайки опции за поле, заглавие и форматиране на всяко нивоTXLSXWorksheet.AddWordArtсъздава котвен към клетка DrawingML текст с preset изкривяване плюс конфигурируеми цветове за текст и контур, а пътят за запазване на raw drawing-anchor запазва пълната WordArt фигура при по-късни цикли на отваряне/записTXLSWorkbookViewerдобавя VCL визуализатор на работни листове за класически и съвременни обекти на работна книга с зареждане на XLS, XLSX, XLSM, template и ODS файлове, форматиран текст на клетка, класически стилове, размери на редове и колони, заглавки, рендериране на мрежа и селекция, ленти за превъртане, селекция с мишка, навигация с клавиатура, позициониране на клетки, превключване на работни листове и събития за селекция или работен лист- Новите Delphi примери
FeatureShowcaseиWorkbookViewerдемонстрират стилизиран PDF печат, заглавия за печат, ръчни прекъсвания, класически форм контроли, селективни format patch-и, WordArt, диагнози, създаване на визуализатор по време на изпълнение, зареждане на файлове, навигация в клетки, превключване на работни листове и събития на визуализатора със съответстващи английски ръководства и теми за developer-reference
Променено
- Класически XLS и съвременен XLSX PDF експорт на работна книга, работен лист и диапазон вече записва всеки видим работен лист в един документ, прескача скритите и chart листовете, рендерира плътни запълвания, цветове на шрифтове, размери на шрифтове, удебелено и курсивно ударение, хоризонтално и вертикално подравняване, изрични граници на клетки и опционални мрежи на работен лист, следва area за печат, размер на хартия, ориентация, полета, мащаб, fit-to-width настройка, ширини на колони, действителни височини на редове, ръчни прекъсвания на ред и колона, повтарящи се заглавни редове и колони и три-частни headers и footers с полета за страница, общ-страници, име на лист, дата и час, разбива широки и високи диапазони по двете оси, излъчва локално-независим PDF числов синтаксис и вгражда подходящ TrueType шрифт плюс ToUnicode map за текст извън WinAnsi
- XLSX разширените progress callback-и вече получават надеждни състояния begin, work и end за запис, отваряне и преизчисляване, докато наследственият callback остава само work и всяка операция нулира предишното състояние на отменяне
- Класическата XLS сериализация вече propagate-ва неуспехи на работен лист, диаграма, style-extension, VBA, control-stream, storage и output commit вместо да отчита успех, а записите на файлове подготвят пълния compound файл преди атомарно заместване на целта
- XLSX и ODS записванията на файлове вече изграждат пълен съседен временен пакет и атомарно заместват целта само след успешно финализиране, оставяйки съществуващите файлове непроменени след отменяне или неуспех
Версия 2.183.0
Добавено
TXLSDirectWriterвече поддържа преизползваеми package-level handles за стил на клетки и клониране на стил без буфериране на редовете на работния лист; същият индекс на стил може да бъде приложен към произволен брой клетки или преизползван крос-работни листове- Директните стилове на клетки предоставят 30 възможности за форматиране, обхващащи име на шрифт, размер, BGR цвят, удебелено, курсив, strikeout, outline, shadow, пет режима подчертаване, 19 модела на запълване с цветове преден план/фон, пет независимо оцветени ръба на границата с 14 стила на линии и диагонални посоки, вградени или персонализирани числови формати, хоризонтално и вертикално подравняване, пренасяне, shrink-to-fit, отстъп, завъртане на текст, quote prefix и защита locked/hidden
- Стилизирани варианта са достъпни за низове, числа, булеви, дати, формули, грешки и всеки тип кеширан резултат от формула, позволявайки на експортьори с голям обем да избират предварително построен стил по целочислен индекс по време на последователни записвания
Променено
- Директното записващо устройство дедуплицира равни компоненти за шрифт, запълване, граница и числов формат при изграждане на
styles.xml, докато запазва стабилни индекси на стил на клетки, вече записани в потоци на работен лист - Генерираните direct-writer таблици за стилове вече включват стандартните
noneиgray125запълвания по подразбиране преди персонализираните запълвания за по-строга OOXML съвместимост
Версия 2.182.0
Добавено
TXLSDirectWriterвече записва условно форматиране, докато запазва своя memory профил независим от броя редове, с осем оператора за cell-value, правила за изрази, правила за текст съдържа/не съдържа/започва с/завършва с, правила за top или bottom стойност и процент, правила за над или под средното, дублирани и уникални стойности, празни и непразни клетки, клетки с грешка и без грешка, data bars, дву- и трицветни скали и всички 17 базови фамилии icon-set- Директните правила за условно форматиране поддържат изрични приоритети, оценка stop-if-true, опции за average standard-deviation и равенство, замяна на праг на икони, показване само на икони и наобратно, видимост на стойност на data-bar, BGR цветове и диференциални стилове за запълване, цвят на шрифт, удебелено и курсив
Променено
- Директното записващо устройство дедуплицира еквивалентни диференциални стилове крос-работни листове и съхранява само правила и стилове за условно форматиране, така че използването на памет се мащабира с броя на правилата вместо с броя на редовете в работния лист
- Видовете праг автоматичен минимум и максимум за data-bar се нормализират до стандартните токени
minиmaxв базовия OOXML елемент за широка съвместимост с електронни таблици
Версия 2.181.0
Добавено
TXLSDirectWriterвече записва защита на работен лист и работна книга без буфериране на данни от работен лист, включително 15 фино-зърнест разрешения за работен лист, наследени верификатори на парола, модерни метаданни за хеш, редактируеми защитени диапазони с опционални пароли или security descriptors, заключки за структура и прозорец на работна книга, сурово присвояване на верификатор и изчистване на защита
Поправено
- Неподдържаните drawing anchors вече запазват всеки затварящ елемент, когато са реконструирани за изход с двупосочно пренасяне, така че shape-only рисунки остават добре-формирани след отваряне и запис
- Правата за защита на XLSX работен лист вече следват дефиницията на OOXML за locked-flag, така че разрешените действия записват
0, забранените действия записват1, а пропуснатите атрибути се отварят повторно със своите schema стойности по подразбиране - Наследените пароли за XLSX работен лист, защитен диапазон и работна книга вече използват Excel-съвместимия 16-битов алгоритъм за верификатор с ANSI конверсия и 15-байтовото ограничение
Версия 2.180.0
Добавено
- Моделът на XLSX работен лист вече пренася двупосочно елементите What-If Scenario Manager (
<scenarios>) и Data Consolidation (<dataConsolidate>). Нови raw-XML свойстваScenariosXmlиConsolidateXmlвърхуTXLSXWorksheetносят вътрешното съдържание буквално — записващото устройство излъчва wrapper елементите, четецът парсра децата scenario/data-consolidation обратно. Файлове за финансово моделиране, които дефинират сценарии или дефиниции за консолидация, вече не ги губят при двупосочно пренасяне
Версия 2.179.0
Добавено
- Нова помощна функция
XlsxBuildNumFmtконструира OOXML кодове за числов формат от семантични свойства —Decimals,Thousands(разделител),NegativeRed(червени отрицателни),CurrencySymbolиPercent. Извикващите вече не се нуждаят от ръчно написани format низове като"$#,##0.00;[Red]-$#,##0.00"— builder-ът ги produce-ва от прости параметри. Проектиран за използване сCell.NumberFormatилиWorkbook.NumberFormats.Add
Версия 2.178.0
Добавено
- Моделът на XLSX работен лист вече пренася двупосочно VBA code name (
<sheetPr codeName="..."/>), съществен за VBA interop, където VBA проектът реферира работни листове по code name. Ново свойствоCodeNameвърхуTXLSXWorksheet - Коментарите вече поддържат превключвател за видимост
AlwaysShowвърхуTXLSXComment— когато е True балонът на коментара е винаги видим (превключвателят на Excel per-comment “Show/Hide Comment”), а не само при посочване - Валидацията на данни вече пренася двупосочно атрибута за IME режим (
imeMode) върхуTXLSXDataValidation. Enum-ът от 11 стойности контролира поведението на CJK input-method при въвеждане на клетка (noControl / off / on / hiragana / fullKatakana / и др.). Съществен за файлове с Japanese/Korean/Chinese-locale - Моделът на работен лист получава свойство
PaneStateза атрибута pane-state върху<pane>отвъд съществуващото обработване на frozen-mode — поддържа състоянияfrozenSplit(замразено-след-подвижно) иsplit
Версия 2.177.0
Добавено
- Три предишни регистрирани-но-неимплементирани работнолистни функции вече имат пълен dispatch:
DOLLAR(текст, форматиран като валута),FIXED(текст с фиксиран десетичен знак с опционално потискане на запетая) иAREAS(брой области в референция). Преди те бяха регистрирани вInitFuncHash, но нямаха случай в calc-engine — оценяването на=DOLLAR(...)мълчаливо връщаше грешни резултати - Моделът на XLSX работен лист вече пренася двупосочно per-view-type мащаби на zoom (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), цвят на мрежата (sheetView color) и флагове за показване на sheet-view (showFormulas/showZeros). Нови свойства върхуTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - Посоката на обобщение на outline вече се пренася двупосочно. Нови свойства
SummaryBelow,SummaryRightиShowOutlineSymbolsвърхуTXLSXWorksheetконтролират дали редове/колони за обобщение се появяват под/вдясно от детайла и дали символите за outline са видими. Записващото устройство излъчва<outlinePr>вътре в<sheetPr>; четецът го парсра обратно - calcPr на работната книга вече носи атрибутите
forceFullCalcиcalcCompletedнаред със съществуващото триоcalcId/fullCalcOnLoad/calcMode/iterate
Версия 2.176.0
Добавено
- Двигателят за XLSX формули вече разрешава structured table референции преди компилация. Нов метод
ResolveStructuredRefsвърхуTXLSXWorkbookсканира текста на формулата за моделиTableName[ColumnSpec]и ги замества с конкретни A1 диапазонни референции, използвайки колекциятаTXLSXTableна работната книга. Поддържаните спецификации включват диапазон от данни на колона (Sales[Qty]), колона на текущ ред (Sales[@Total]), пълни данни (Sales[#Data]/Sales[#All]), заглавки (Sales[#Headers]) и ред със суми (Sales[#Totals]). Резолюцията се изпълнява автоматично вътре вGetCompiledFormula— съществуващите формули не са засегнати, тъй като non-table идентификаторите се оставят буквално. Преди structured референции предизвикваха провал на компилацията на формулата
Версия 2.175.0
Добавено
- Двигателят за формули вече поддържа компилация на формули в R1C1 reference-style. Нов метод
GetCompiledFormulaR1C1върхуTXLSCalculator(иGetCompiledR1C1върхуTXLSFormula) приема формула, написана в R1C1 нотация (R2C3за абсолютна,R[-1]C[2]за относителна,RCза текуща клетка), и я компилира, като първо конвертира в A1 нотация, използвайки ред/колона на клетката с формулата. Самостоятелна функцияR1C1ToA1изпълнява конверсията — тя разпознава маркеритеR/C, които са самостоятелни (не част от име на функция като ROUND), парсра опционалните скобирани отмествания и produce-ва еквивалентната A1 референция. Стринговите литерали и идентификаторите се прескачат. Преди можеха да се компилират само формули в A1-style
Версия 2.174.0
Добавено
- AutoFilter изходът на
TXLSDirectWriterвече поддържа колони на работен лист и таблицен филтър, value филтри, blank филтри, date-group филтри, custom comparison филтри, dynamic филтри, top/bottom филтри, флагове за filter button, състояния на сортиране, условия на сортиране, XML екраниране и потискане на дублирани диапазона на работен лист/таблица филтър по време на поточни XLSX файлове
Версия 2.173.0
Добавено
- Table изходът на
TXLSDirectWriterвече поддържа коментари на таблица, бройки на totals row, етикети на колони totals-row, функции на колони totals-row, формули на calculated-column, формули на totals-row и XML екраниране за метаданни на table-column по време на поточни XLSX файлове
Версия 2.172.0
Добавено
TXLSDirectWriterвече записва Excel table части по време на поточни XLSX файлове, включително релации работен лист таблица, content types на table part, диапазони на таблица, имена на колони, флагове за header-row и totals-row и флагове за показване на вграден table style без изграждане на пълен обектен модел на работна книга
Версия 2.171.0
Добавено
TXLSDirectWriterвече записва валидации на данни на работен лист по време на поточни XLSX файлове, включително list, whole-number, decimal, date, time, text-length, custom-formula, произволенsqref, prompt, error-alert, allow-blank, dropdown и флагове за input/error съобщение без изграждане на пълен обектен модел на работна книга
Версия 2.170.0
Добавено
TXLSDirectWriterвече записва дефинирани имена на работна книга и sheet-local по време на поточни XLSX файлове, включително скрити имена, коментари, генерирани абсолютни диапазони, print области, print title редове, print title колони, комбинирани print titles, quoted sheet-name референции, XML екраниране и семантика за замяна при повтарящи се print-name setters без изграждане на пълен обектен модел на работна книга
Версия 2.169.0
Добавено
TXLSDirectWriterвече записва хиперлинкове на работен лист по време на поточни XLSX файлове, включително външни URL, mailto и file релации, вътрешни местоположения на лист, display текст, tooltips, едноклетъчни или многклетъчни диапазони на хиперлинк, barewww.URL нормализация, XML екраниране и percent-encoded цели на релация без изграждане на пълен обектен модел на работна книга
Версия 2.168.0
Добавено
TXLSDirectWriterвече записва метаданни за print и sheet-view по време на поточни XLSX файлове, включително превключватели за показване на мрежа и header на ред/колона, полета на страница, odd header/footer текст, print мрежи и заглавки, центриране на страница, размер на хартия и landscape ориентация, fit-to-page размери и ръчни прекъсвания на страница за ред или колона без изграждане на пълен обектен модел на работна книга
Версия 2.167.0
Добавено
TXLSDirectWriterвече записва метаданни за layout на работен лист по време на поточни XLSX файлове, включително размери по подразбиране за колона и ред, персонализирани ширини на колони, скрити редове и колони, обединени диапазони, AutoFilter диапазони, frozen panes, цветове на sheet tab и right-to-left sheet views без изграждане на пълен обектен модел на работна книга
Версия 2.166.0
Добавено
- Поточните XLSX работни процеси вече включват изброяване на sheet-name без сканирания на работен лист, избор на sheet за row-cursor по име, сурово числово поточно четене на дати, преизползване на direct writer, запис на error-клетки и writers за кеширани резултати от формула за число, низ, Boolean, дата и стойности за грешка
Версия 2.165.0
Поправено
TXLSDirectReader.ReadStreamвече възстановява позицията на потока на извикващия след директно сканиране, съответствайки на документирания потоков контракт и позволявайки на приложенията да преизползват същия поток след директно четене
Версия 2.164.0
Добавено
- Експортите на dataset чрез
TDataToXLSвече поддържат string списъциIncludeFieldsиExcludeFields. Приложенията могат да whitelist-ват експортирани полета, да пропускат чувствителни колони и да поддържат заглавки, редове с данни, ширини на колони и export callbacks подравнени с избрания набор полета
Версия 2.163.0
Добавено
- CSV експортът получава конфигурируемо quoting на текста през XLS и XLSX двигателите.
TXLSWorkbookвече излагаCSVEmitFormulasиCSVQuoteAllStrings, аTXLSXWorkbookдобавяCSVQuoteAllStrings. Когато са включени, експортът на формули записва текст на формула, а string полетата се ekранират в кавички, докато числови, дата, Boolean, Null и Empty полета запазват нормалните правила за quoting
Версия 2.162.0
Добавено
- XLSX двигателят получава система за abortable progress събития. Нов callback
OnProgressExвърхуTXLSXWorkbookсе задейства наред със съществуващияOnProgressс три подобрения: (1) параметърTXLSXProgressState(ppsBegin/ppsWork/ppsEnd), който огражда всяка фаза, така че UI-те знаят кога операция започва и завършва; (2) var параметърAbort: Boolean, който позволява на callback-а да отмени текущата операция по средата — циклите read/write/calc проверяватWorkbook.Abortedи се прекъсват чисто; (3) нова фазаxlsxProgressExportingза експортни операции (HTML/RTF/CSV/ODS). Помощен методFireProgressцентрализира dual-callback диспечерирането. ФлагътFAbortedсе нулира в началото на всяка top-level операция (Open / SaveAs / Recalculate)
Версия 2.161.0
Добавено
- Моделът на XLSX диаграми вече поддържа четири нови елемента на диаграма за по-силна Excel съвместимост. Chart data table (
c:dTable):TXLSXChartполучава превключвателиShowDataTable+ShowDataTableKeys— когато са включени, записващото устройство излъчва елемента data-table вътре в plot area, така че Excel рендерира изходните данни като мрежа под оста на диаграмата. Up/down bars + hi-low lines (stock/OHLC елементи на диаграма):TXLSXChartполучаваHasUpDownBars+UpDownGapWidthиHasHiLowLines— записващото устройство излъчваc:upDownBarsиc:hiLowLinesвътре в елемента chart (line/stock диаграми). 3D view контроли:TXLSXChartполучаваRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— записващото устройство излъчваc:view3Dна ниво диаграма, когато което и да е 3D свойство се отличава от подразбирането. Преди нито един от тези елементи не се излъчваше, така че диаграми, построени с data tables, stock-chart елементи или 3D изгледи, ги губеха при двупосочно пренасяне
Версия 2.160.0
Добавено
- Референциите във формулите вече се коригират автоматично, когато редове или колони се вмъкват или изтриват в XLSX двигателя. Методът
ShiftSheetGeometry— извикван отInsertRows/DeleteRows/InsertCols/DeleteCols— вече обхожда всяка оцеляла клетка с формула и пренаписва нейните A1 референции, за да отразят структурната промяна. Нов text-scannerXlsxAdjustFormulaRowColRefsразпознава single-cell refs (A1,$B$2) и range refs (A1:B3), измества техните компоненти за ред/колона покрай точката на вмъкване и конвертира изтритите референции в#REF!. Както относителните, така и абсолютните референции се изместват (съответствайки на поведението на Excel). Преди формулите мълчаливо оставаха да сочат към грешните клетки след структурна редакция
Версия 2.159.0
Добавено
- Състоянието на сортиране на Autofilter вече се пренася двупосочно през XLSX двигателя.
TXLSXWorksheetполучава свойствоSortStateXml, което носи суровия вътрешен XML на OOXML елемента<sortState>(посока на сортиране по колона, чувствителност към регистъра, метод на сортиране и всяко<sortCondition>с неговия descending флаг + ref). Записващото устройство излъчва елемента след<autoFilter>; четецът парсра атрибутите и условията за сортиране обратно. Преди състоянието на сортиране се drop-ваше мълчаливо при четене и никога не се записваше - Настройките за CJK phonetic/ruby вече се пренасят двупосочно през XLSX двигателя.
TXLSXWorksheetполучаваPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) иPhoneticAlignment(left / center / distributed). Записващото устройство излъчва<phoneticPr>след<sheetData>; четецът парсра атрибутите обратно. Преди phonetic елементът се drop-ваше мълчаливо при четене — файлове за японския пазар губеха своите furigana reading-aid настройки
Версия 2.158.0
Добавено
- XLSX двигателят вече пренася двупосочно таблицата с именувани стилове на клетки (
<cellStyles>). Нов класTXLSXNamedStyle+ колекцияTXLSXNamedStylesвърхуTXLSXWorkbookноси пълната повърхност:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. Записващото устройство излъчва по един<cellStyle>на запис, когато колекцията е непразна; четецът ги парсра обратно. Преди записващото устройство hardcode-ваше един"Normal"запис, а четецът отхвърляше всички именувани стилове, така че файлове със стилове “Good”/“Bad”/“Total”/персонализирано-именувани губеха тези имена при двупосочно пренасяне
Версия 2.157.0
Добавено
- XLSX двигателят вече пренася двупосочно пълния елемент
<calcPr>, а не само превключвателите за итеративно изчисление.TXLSXWorkbookполучаваCalcId(идентификаторът на calc двигател, който Excel използва, за да реши дали кешираните стойности са остарели),FullCalcOnLoad(принуждава Excel да направи пълно преизчисление при отваряне — критично за работни книги, produce-нати от двигател, различен от Excel) иCalcMode(auto / manual / autoNoTable). Записващото устройство излъчва съответстващите атрибути върху<calcPr>; четецът ги парсра обратно. Преди се обработваха самоiterate/iterateCount/iterateDelta, а останалите се drop-ваха мълчаливо
Версия 2.156.0
Добавено
- Оценителят на формули вече имплементира 37 работнолистни функции, които преди бяха регистрирани (ptg присвоен в InitFuncHash), но нямаха dispatch имплементация — те падаха към
#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), Array Pairwise (SUMXMY2,SUMX2MY2,SUMX2PY2) и Комбинаторно/Математика (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Регресионните функции използват least-squares решител; функциите за амортизация имплементират методи right-line, sum-of-years’-digits и declining-balance; функциите за описателна статистика изчисляват средно абсолютно отклонение, kurtosis, skewness, геометрични/хармонични/подрязани средни; а pairwise функциите изчисляват сума от квадратни разлики между два еднакво-големи диапазона. Нов помощникCollectRangeValuesвърхуTXLSCalculatorизвлича числови стойности от аргументи-диапазон за статистическите функции
Версия 2.155.0
Добавено
- Оценителят на формули вече поддържа пет допълнителни статистически и инженерни съвместими имена:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTиF.TEST.ERFCдопълва съществуващата серия error-function,BINOM.INVтърси прага на binomial CDF,CHI.INV.RTalias-ва десно-опашатия chi-square inverse, аF.TESTвръща двуопашатата p-стойност за дисперсия на пробата
Версия 2.154.0
Добавено
- Оценителят на формули вече разрешава крос-работна книга референции чрез нов callback
OnGetExternalValueвърхуTXLSCalculator. Когато 3D range референция сочи във външна работна книга ([1]Sheet1!A1), оценителят се насочва през callback-а вместо да връща#REF!. XLSX двигателят свързва този callback къмGetExternalCellValue, който съпоставя SupBook индекс + индекс на лист към съответстващия<sheetDataSet>кеш наTXLSXExternalLinkи декодира кешираната стойност на клетката по нейния OOXML type атрибут (числова / булева / низ / грешка). Преди крос-работна книга формулите връщаха#REF!безусловно; инфраструктурата за callback сега позволява на всякакъв двигател (BIFF8, XLSX или персонализиран calculator host) да предоставя външни стойности - Оценителят на формули вече изпълнява element-wise array broadcasting върху бинарни оператори (
+/-/*///^). Когато който и да е операнд е 1D или 2D variant масив (напр. резултат от matrix-функция, spilled диапазон или CSE масив операнд), операторът се прилага елемент-по-елемент; скаларен операнд се broadcast-ва към всеки елемент на масивния операнд. Новият помощникApplyArrayBinaryOpобработва валидация на форма, скаларно broadcast и пропагиране на деление-на-нула. Наследената скаларна аритметика е непроменена — array пътят се активира само когато поне един операнд е variant масив - Оценителят на формули вече разпознава функцията
TABLE(What-If Analysis DataTable). Excel съхранява data tables като CSE масив формули, чието тяло еTABLE(rowRef, colRef); предиTABLEбеше неразпозната и падаше към#NAME?. Функцията е регистрирана със синтетичен ptg (ftabTABLE = 4232), така че се пренася двупосочно през BIFF8 формулен encoding, а при eval връща placeholder стойност (0) — реалните резултати са предварително изчислени от Excel и съхранени като кеширани клетъчни стойности, така че HotXLS не преоценява логиката за заместване
Версия 2.153.0
Добавено
- Типизираният модел на PivotTable вече носи типизираните свойства на page-axis (Hier / Caption / Name), обхвата на auto-sort и кукините за raw-XML двупосочно пренасяне за
<formats>и<extLst>, нужни за по-пълна Excel съвместимост.TXLSPivotFieldполучаваPageHier/PageCaption/PageName(F16 — OLAP hierarchy name + page-axis caption + display name) иAutoSortScope(F20 — A1 range референция, заковаваща клетките, които Excel използва за auto-sort на елементите на полето);TXLSPivotTableполучаваFormatsXml/ExtLstXml(F17 — raw inner-XML двупосочно пренасяне за блока<formats>CF / number-format overrides и блока<extLst>slicer / timeline / x14, излъчвани буквално при задаване, така че двупосочното пренасяне е безопасно дори крос версии на двигател). XLSX записващото устройство излъчва съответстващите<pageField hier=... cap=... name=.../>атрибути, детето<autoSortScope>на<pivotField>и блоковете<formats>+<extLst>преди затварящия sentinel - Трасировчикът на формули вече записва per-step snapshots на operand-stack, позволявайки истински стъпка-по-стъпка “Evaluate Formula” дебъгер.
TXLSFormulaStepполучаваStepKind(push / reduce / function),StackBefore/StackAfter(comma-разделени snapshots на operand стека в момента, в който всяка стъпка започна / завърши) иTokenStart/TokenEnd(1-базиран character span, заковаващ стъпката обратно към изходната формула).TXLSFormulaTracerполучаваTraceReversed(връща същите стъпки в обратен ред на оценка — полезно за стъпка-назад UI, което върви от крайния резултат към оригиналните операнди) и свойствоStepCount. Преди трасировчикът записваше само Depth / Source / Expression / Value без състояние на стека - HTML експортът вече вгражда per-cell изображения чрез нов callback
OnCellImageвърхуTXLSHTMLExportи нова опцияxhImages. Когато опцията е зададена и callback-ът е свързан, експортьорът пита имплементатора за фрагмента<img>на всяка клетка (обикновено Base64 data-URI) и го добавя след текста на клетката. Това отделя експортьора от BIFF8 съхранението на изображения на XLS двигател (което живее в per-sheet MsoDrawing записа), така че експортьорът не трябва да парсра anchors сам. HTML експортът на XLSX двигателя вече вгражда изображения; това затваря пропуска за XLS двигателя - RTF импортът вече прилага свойства на символите (удебелено / курсив / подчертано / strikethrough / размер) от RTF контролните думи към шрифта на целевата клетка.
TXLSRTFImportпроследява\b/\i/\ul/\strike/\fsпрез документа и избутва форматирането на доминиращото изпълнение в XF-а на клетката при commit. Ново свойствоImportCharFormat(по подразбиране True) превключва поведението; задайте False, за да възстановите наследения текст-само импорт. Multi-run клетки колапсират до един XF (печели последното активно изпълнение), тъй като cell API-то на XLS двигател е на ниво клетка, а не per-фрагмент — но това е много по-добро от drop-ване на цялото форматиране, каквото правеше наследеният импортьор - Нов клас
TXLSHTMLImportпарсра HTML таблици в клетки на работен лист. Обхожда първата<table>в източника, излъчвайки един ред на работен лист на<tr>и една клетка на<td>/<th>. Зачитаcolspan/rowspan(Excel-style merge), strip-ва тагове вътре в клетка (свивайки вложено форматиране до обикновен текст), декодира петте стандартни character entities (&/</>/"/'/ ) и числовите форми&#NNN;/&#xNN;, и coerce-ва чисти числови низове към Double, така че импортираните таблици остават изчислими. Проектиран за изхода, който самият HotXLS produce-ва (SaveAsHTML), плюс общо copy-paste-качество HTML таблици; не е пълен HTML5 парсер
Версия 2.152.0
Добавено
- XLSX таблиците вече запазват метаданни за totals на ниво колона и формули на таблицата.
TXLSXTableизлагаColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]иColumnTotalsRowFormulas[];SaveAsизлъчва съответстващияtotalsRowFunction,totalsRowLabel,calculatedColumnFormulaиtotalsRowFormulaXML за table-column,Openги чете обратно, а клонингите на таблица ги запазват
Версия 2.151.0
Добавено
- Типизираният модел на PivotTable вече носи per-field колекцията филтри, превключвателя за multi-select, fieldGroup discretePr + groupItems повърхността и модела calculated items / calculated members, нужни за по-пълна PivotTable съвместимост.
TXLSPivotFieldполучава типизирана колекцияTXLSPivotFilters(всеки запис носиFilterTypeпрез 80-членния OOXMLST_FilterTypeenum — 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">, per-field блока<filters><filter .../>, елемента<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, per-field блока<calculatedItems>и table-level блока<calculatedMembers>— така програмно построени pivot-и с филтри / multi-select / групиране / calculated items се пренасят двупосочно
Версия 2.150.0
Добавено
- Дефинираните имена вече запазват текста на формулата си валиден, когато работният лист, който реферират, се изтрие или преименува. Изтриването на лист пренаписва всеки
SheetN!квалификатор вътре във формула на дефинирано име към#REF!(съответствайки на поведението на Excel); преименуването на лист пренаписва квалификатора към новото име. Преди текстът на формулата продължаваше да сочи към несъществуващо име на лист, което Excel тогава маркираше като счупен линк при повторно отваряне - Типизираният модел на PivotTable вече носи field-level ред на сортиране и превключватели за layout, плюс table-level атрибутите layout / display, нужни за по-пълна съвместимост с PivotTable layout.
TXLSPivotFieldполучаваSortType(manual / ascending / descending),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и двойката за page-axis layoutRowPageCount/ColPageCount. XLSX записващото устройство излъчва съответстващите атрибути<pivotField sortType=... compact=... outline=...>и<pivotTableDefinition indent=... outline=... showEmptyRow=...>и елемента<location rowPageCount=... colPageCount=.../>, така че програмно построените pivot-и носят потребителски-зададения layout вместо подразбирането на Excel - Нов метод
FormulaIsVolatileвърхуTXLSWorkbookотчита дали формула би принудила преизчисление при всеки calc pass — т.е. извиква volatile функция (NOW / RAND / TODAY / OFFSET / INDIRECT) или носи неразрешима референция. Сондът споделя същия dependency екстрактор, който recalc двигателят използва, така че отговорът съответства на това, коетоRecalculateреално прави. Извикващите могат да го използват, за да маркират клетки за verification UI, за да populate-нат volatile set на calc-chain в brand-new работна книга или да прескачат кеширането на резултата от току-що въведена формула
Версия 2.149.0
Добавено
- PivotTable кешовете вече могат да се обновяват от своя диапазон-източник програмно. Нов метод
RefreshPivotCache(ACacheId)върхуTXLSXWorkbookповторно сканира диапазона-източник на кеша, преизгражда домейна shared-items per поле (повторно дедупликирайки стойности и повторно извличайки per-type границите) и пренаписва per-record индексите на елементите. Преди HotXLS разчиташе на hardcode-натия флагrefreshOnLoad="1"и отлагаше цялата работа по обновяване към Excel при следващо отваряне; програмните работни процеси вече могат да обновяват in-process
Версия 2.148.0
Добавено
InsertColsвърху XLSX двигателя вече наследява ширината на колоната от своя ляв съсед, съответствайки на подразбираното поведение на Excel за “insert column”. Преди вмъкнатата колона поемаше ширината по подразбиране на работната книга, produce-вайки видим fidelity пропуск след повторно отваряне- XLSX двигателят получава convenience helpers за outline-collapse
ToggleColGrouped/ToggleRowGroupedвърхуTXLSXWorksheet, които обхождат outline дървото и колапсират или разширяват групата на дадено ниво. Самите флагове за collapse вече се пренасяха двупосочно; това добавя липсващото convenience API за обхождане-на-дървото
Версия 2.147.0
Добавено
- HTML експортът вече излъчва
<a name>anchors при клетки, които са цели на вътрешен-хиперлинк, така че#SubAddressхиперлинковете се разрешават правилно, когато четецът кликне върху тях. Преди линковете се излъчваха, но целите нямаха anchors, така че вътрешните скокове се разрешаваха до нищо - CSV експортът получи свойство
CSVEmitFormulasвърхуTXLSXWorkbook. Когато е True, клетките с формули експортират своя текст на формула (=SUM(A1:A2)) вместо изчислената стойност — полезно за дебъгване и за работни процеси, които re-импортират в различен двигател - URL-ите на външни хиперлинкове вече се percent-encode-ват при запис (
XlsxEncodeHyperlinkUrl): интервал, ъглови скоби, кавички, скоби, тръби, backslash-ове, caret-и и backtick-ове се encode-ват като%XXв атрибута<Relationship Target="..."/>, така че файлът се отваря правилно във всеки браузър. Съществуващите percent-encoded последователности (%20) се запазват както са - Информацията за стил на PivotTable вече носи пълната повърхност
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnвърхуTXLSPivotTable. XLSX записващото устройство излъчва съответстващия елемент, така че програмно построените pivot-и носят потребителски-избрания banding style вместо hardcode-натото подразбиране - Нов метод
CalculateAndVerifyвърхуTXLSXWorkbookпреоценява всяка клетка с формула и сравнява изчисления резултат с кешираната стойност на клетката. Връща броя на несъответствията (0 = всички кеширани стойности съвпадат с пресните изчисления на двигателя; volatile формулите са изключени). Полезно за QA при port-ване на работни книги между двигатели или валидиране, че записващо устройство не е повредило кеширани стойности
Версия 2.146.0
Добавено
- XLSX двигателят вече поддържа итеративно изчисление на кръгови референции (итеративния calc режим на Excel). Ново свойство тройка
Iterate/IterateCount/IterateDeltaвърхуTXLSXWorkbookконтролира поведението: когатоIterate=Trueи цикъл на референция е засечен по време наRecalculate, двигательт преоценява клетки-членове на цикъла доIterateCountпъти (подразбиране 100) или докато промяната на всяка клетка е< IterateDelta(подразбиране 0.001), вместо да връща#REF!. Настройките се пренасят двупосочно през OOXML елемента<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. Финансови модели с умишлени кръгови референции (лихва-върху-лихва, кръгови алокации) вече konvergират вместо да грешат - PivotTable cache полетата вече носят модел за групиране за numeric-range и date-hierarchy групиране.
TXLSPivotCacheFieldполучаваHasGroup+GroupStartNum/GroupEndNum/GroupInterval(числов диапазон) иGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(дата). XLSX записващото устройство излъчва елемента<fieldGroup><rangePr groupBy="range|days|months|..."/>, така че програмно построени pivot-и с групирани полета съответстват на изхода на Excel - HTML експортът вече излъчва endnotes за коментари. Когато
xhCommentsе в опциите за експорт, всяка коментирана клетка получава[n]superscript линк, а пълният текст на коментара (автор + тяло) е изброен като endnote секция след таблицата с back-anchor към клетката. Преди коментарите бяха достъпни само чрез атрибутаtitle=на клетката, който е невидим при печат или copy-paste
Версия 2.145.0
Добавено
- BIFF8 литералите за грешка във формула (
tErrтокен) вече се декодират в типизиранSA_ERRORсинтаксичен елемент вместо да провалят парсенето на формулата. Клетка, съхраняваща=#N/A(или която и да е от седемте Excel константи за грешка), предизвикваше drop-ване на цялата формула при четене; вече байтът за грешка се пренася двупосочно през четене → оценка → запис и реконструира до своята текстова форма (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) чрез нов помощникXlsErrorToString - BIFF8 токенът
tIsect $0F(оператор за имплицитно сечение) вече се декодира в binary-formula транслатора, изграждайки същия възелSA_ISECT, който текстовият парсер produce-ва за@. Преди binary формула, съдържащаtIsect, се проваляше при парсване - Data bar условното форматиране вече излъчва блока за разширение
x14на Excel 2010+ вextLstна работния лист, когато моделът носи което и да е non-default x14 поле (отрицателен цвят на запълване, gradient изключен, цвят на ос, посока, граница). Нов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). Новият write pipeline огледа съществуващия decrypt път: SHA-512 хеширане на парола с 100000-итерационен spin count, AES-256-CBC per-сегментно криптиране на пакет, произволно генериран intermediate key, wrap-нат per трите spec-pinned блочни ключа, и пълен<encryption>descriptor XML, носещ криптирания verifier + key blobs. Изходът е byte-faithful към това, което Excel produce-ва, и се пренася двупосочно чисто презXlsLoadAgileEncryptedFile(верифицирано с тест: правилна парола decrypt-ва, грешна парола се отхвърля) - Нови криптографски примитиви подкрепят Agile write пътя:
XlsHMACSHA512(RFC 2104, нужно за елементаdataIntegrity),XlsBase64Encode(RFC 4648 енкодер, огледащ съществуващия декодер) иAESEncryptCBC(AES-CBC криптиране за всякакъв размер на ключ 128/192/256, обратното на съществуващияAESDecryptCBC). AES модулат вече импортираaes_encrypt_key192/aes_encrypt_key256от Gladman obj (предишно само 128-битово криптиране беше достъпно)
Версия 2.143.0
Добавено
- Оценителят на формули вече парсра и оценява оператора за експлицитно сечение
@(Excel 365 dynamic-array синтаксис, напр.=A2:A4 @ B2:B4). Лексерът излъчва нов токенLT_ISECTза символа@, precedence парсерът изгражда възелSA_ISECT(свързващ по-здраво от^, по-свободно от%), а нов оценителIntersectRangesразрешава и двата операнда като диапазони и връща стойността на единствената пресичаща клетка — имплицитното-сечение правило на Excel. BIFF токен сериализаторът излъчваtIsect $0F, така че операторът се пренася двупосочно през XLS, а пътят за реконструкция на формулен текст излъчва implicit-space формата. Преди такива формули се проваляха при парсване - Стандартен Base64 енкодер (
XlsBase64Encode) вече е достъпен, огледащ съществуващияXlsBase64Decode. Това е предпоставка за пътя за Agile-криптиране запис, който излъчва saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue като Base64 стойности на атрибути - Събитието
OnProgressна работната книга вече се задейства и по време на пълно преизчисление (Recalculate), с нова фазаxlsxProgressCalculating. Преди събитието се задействаше само по време на четене и запис, така че дълги full-recalc-и не даваха heartbeat на UI-то. Събитието се задейства приблизително на всеки 4% от клетките, за да се избегне flooding - Разширените свойства на документа (
docProps/app.xml) вече се пренасят двупосочно още три полета, които Excel записва за защитени с парола / базирани на template документи:Manager,TemplateиDocSecurity(битово поле: 1=защитен с парола, 2=препоръчително само за четене, 4=наложено само за четене, 8=заключен за анотация)
Версия 2.142.0
Добавено
- Типизираният модел на PivotTable вече носи повърхността метаданни, източник, calculated-field, “show values as” и shared-items-граници, която предишният кръг на анализ маркира като пропуски.
TXLSPivotCacheполучаваRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDataплюс типизирана worksheet-source форма (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldполучаваFormula/DatabaseField/MemberPropertyField(calculated полета) и shared-items границите (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldполучаваShowDataAs/BaseField/BaseItemза трансформациите “show values as” (percent-of / difference / running-total / index). XLSX записващото устройство (BuildPivotCacheDefinitionXml/BuildPivotTableXml) зачита всички тези, така че програмно построен pivot (AddPivotTable) излъчва по-богатpivotCacheDefinition+pivotTableDefinition— refreshOnLoad / version тройката / refreshedBy / named-range източник / calculated cacheField формула / sharedItems граници / dataField subtotal + showDataAs. Pivot таблиците, прочетени от файл, продължават да пренасят своя суров XML буквално - Поведението на image anchor вече се пренася двупосочно чрез ново свойство
AnchorTypeвърхуTXLSXImage(xaTwoCell= местене и преоразмеряване с клетки,xaOneCell= местене, но не и преоразмеряване,xaAbsolute= без местене или преоразмеряване). Записващото устройство избира anchor елемента (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor), за да съответства; четецът парсра името на елемента + атрибутаeditAsобратно. Съответства на Excel-ския десен-клик → Size and Properties → Properties диалог - Header/footer вече пренася двупосочно диференциацията even/first-page.
TXLSXWorksheetполучаваEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextплюс четирите превключвателя<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Файлове, в които потребителят еenabled “Different odd and even pages” или “Different first page”, вече не губят секциите even/first-page при двупосочно пренасяне - Page setup вече пренася двупосочно разширените атрибути на
<pageSetup>, които Excel записва за non-default print настройки:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(displayed/blank/dash/NA),UsePrinterDefaults <sheetFormatPr>вече пренася двупосочноcustomHeight,zeroHeight,outlineLevelRowиoutlineLevelCol, така че файлове, в които потребителят е задал потребителски-закова default row height, скрити-default редове или default outline level, вече не губят това поведение- Data bar условното форматиране пренася двупосочно стандартния атрибут
gradient(gradient срещу solid запълване), аTXLSDataBarSpecполучава полетата за разширениеx14на Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColorс theme/tint,Direction,Border) върху модела, така че API консуматорите могат да ги задават - Балоните за коментари пренасят своя VML drawing буквално. Четецът capture-ва
xl/drawings/vmlDrawingN.vmlas-is и записващото устройство го преизпълнява при запис (вместо вградения yellow-balloon template), така че позицията / размерът / цветът на запълване / видимостта на всеки балон, зададени от потребителя, оцеляват - Телата на коментарите пренасят per-run форматиране.
TXLSXCommentполучава мързеливRichText: TXLSXRichTextpayload ( преизползвайки run модела на shared-strings); записващото устройство излъчва по един<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 ignore-hidden вариантите) иAGGREGATE(деветнадесет агрегатора с опционните code 0–7 флагове, които избират error/hidden skipping, включително фамилията LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE с технияkаргумент). И двете преди падаха към unsupported-function пътя;SUBTOTALбеше регистриран, но нямаше имплементация,AGGREGATEне беше регистриран изобщо - Работнолистните функции
CELLиINFOвече се оценяват:CELLподдържаaddress,col,row,type,contents,filename,format, а GUI-stateinfo_type-овете (color,parentheses,prefix,protect,width) връщат неутрални подразбирания;INFOподдържаosversion,system,recalc,memavail,numfile,release,origin. И двете бяха регистрирани, но падаха към#NAME? - Условното форматиране вече пренася двупосочно атрибутите на
cfRulestopIfTrue,stdDev,equalAverageиtimePeriod, плюс пълното десет-членно фамилияtimePeriod(yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth). Тези се drop-ваха мълчаливо при четене; Excel ги записва рутинно в правилата above-average и date-band, а drop-ването им променяше как правилото се преоценяваше при повторно отваряне - CSV експортът получи свойство
TXLSCsvEncodingвърхуTXLSCSVSaverс три режима:ceSystemAnsi(наследено подразбиране),ceUtf16(историческия Unicode режим) иceUtf8, който записва UTF-8 файл с EF BB BF byte-order mark — модерното Excel-friendly подразбиране, което се отваря повторно без text-import wizard при всякакъв locale - CSV импортът получи свойство
LocaleTolerantNumbersвърхуTXLSCSVLoader. Когато е включено, числово поле, което се проваля да се парсра с.като десетичен разделител, се retry-ва с,(и обратно), така че европейско3,14се импортира като числото 3.14 на US машина. Strict режимът (подразбирането) е непроменен, така че leading-zero текст, пощенски кодове и други comma-носещи токени остават текст
Поправено
- Strict-mode number inference на XLSX двигателя вече не coerce-ва comma-носещи текстови полета (напр.
3,14) в числа презTryStrToFloatна Delphi, което толерира запетая като разделител за хиляди, дори когатоThousandSeparatorе зададен на#0. Такива полета вече остават текст, освен ако новата опцияLocaleTolerantNumbersне е включена
Версия 2.140.0
Променено
- XLSX двигателят вече compakt-ира своите шест per-attribute pools за стил (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) преди всеки запис: ново преминаване
CompactStylePoolsсканира индексите на стил на всяка клетка и отхвърля записи в pool-а, които вече не са реферирани от която и да е клетка — записите, които се натрупват, когато клетки се изчистват, изтриват или re-стилизират след като pool записът е бил първоначално добавен. Compakt-ираните pools produce-ват по-малка таблица<cellXfs>в изходния файл (обикновено 30–70% по-малка за документи, които са преминали през няколко цикъла на редакция), съответствайки на compakt-ирането, което XLS двигателят вече прави чрезCreateAllReferredList
Версия 2.139.0
Добавено
- Фигури на drawing-layer, конектори, group фигури и non-chart graphic frames вече се пренасят двупосочно буквално: когато XLSX четецът срещне anchor
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>или non-chart<xdr:graphicFrame>, който типизираният модел (изображения / диаграми / text boxes) не покрива, той capture-ва пълния anchor XML и го преизпълнява непроменен при запис — така рисунки, авторизирани в Excel (стрелки, callouts, group-нати фигури, smart art frames), оцеляват цикъл четене→запис без загуба. Всеки работен лист излага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
Добавено
- Флагът
quotePrefixна OOXML cellXf — механизъм на Excel за маркиране на съхранян текст като литерал, така че да оцелява числово coerce-ване (CSV-импортирани кодове като00123, дълги номера на сметки, всичко, което потребителят е префиксирал с апостроф) — вече се пренася двупосочно в XLSX двигателя:TXLSXAlignmentполучава свойствоQuotePrefix, alignment pool дедуп брои го, записващото устройство излъчваquotePrefix="1"върху съответстващия<xf>, а повторното отваряне го възстановява независимо дали cellXf е носил дете<alignment/>или е бил гол само-затварящ се<xf quotePrefix="1"/>
Версия 2.136.0
Добавено
- Осите на диаграмите вече са напълно програмируеми: новият модел
TXLSXChartAxisна всяка осCategoryAxisиValueAxisна диаграмата предоставяLogBase(логаритмична скала, напр. 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
Добавено
- Лентите за грешка (error bars) на диаграмите вече са програмируеми и преминават пълен цикъл (round-trip) в XLSX машината: всяка
TXLSXChartSeriesполучаваAddErrorBar(dir), връщащTXLSXChartErrBarсValueType(фиксирана / процентна / stdDev / stdErr / персонализирана),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), placeable 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 или шифрован пакет
- Форматираният изобразяване на разширени целочислени стойности от тип Variant вече прилага заявения числов формат последователно, съответствайки на съществуващото поведение за стандартни целочислени стойности
- Споделените низове, валидирането на данни, листовете с диаграми, ZIP архивите, PNG рисуването и формулите за повтарящ се текст вече почистват временните буфери по-защитно при грешни пътища и операции с голям текст
Версия 2.132.18
Поправено
- Присвояването на стойност на вътрешния конструктор на низове (string builder) вече изчиства предишния текст, когато се присвои празен низ, предотвратявайки повторно използваните XML и текстови буфери да задържат остаряло съдържание
Версия 2.132.17
Поправено
- Създаването на листове с диаграми в XLS вече приема цитираните имена на изходни листове, съдържащи удивителен знак, отхвърля прекалено големите препратки към редове, преди да могат да се превърнат във валиден BIFF ред, и ограничава имената на легендата на линия на тренд към лимита за кратък текст на BIFF, така че генерираните записи на диаграми остават добре формирани
Версия 2.132.16
Поправено
- Вътрешните списъци със символни ключове (string-key) и обектни ключове (object-key) вече премахват остарелите ключове за търсене, когато съществуващ слот бъде презаписан, предотвратявайки разрешаването на стари ключове към заместващи записи
- Вътрешните замени на списъци с обекти и трансформираните кешове с уникални ключове вече освобождават притежаваните записи при презаписване, изчистване и унищожаване, предотвратявайки изтичания на памет при многократни операции с работни книги и стилове
Версия 2.132.15
Поправено
- Директните XLSX четения чрез поток вече декодират булеви клетки, които съхраняват OOXML литерални стойности като true и false
- Обновяванията на вътрешния индекс на списъка със символни низове вече премахват остарелите ключове, когато съществуващ слот бъде презаписан, предотвратявайки разрешаването на стари имена към новата стойност
Версия 2.132.14
Поправено
- Подканите за проверка на данни (data-validation) и съобщенията за грешка в BIFF8, чийто первый знак е NUL, вече запазват границите на записите, вместо да записват несъответстваща дължина на DV
Версия 2.132.13
Поправено
- Парсването на XML текст вече отхвърля вложени стартове на обекти като &&, вместо мълчаливо да отхвърля незавършения обект
- Декомпилираните формули вече записват числови константи с инвариантен десетичен разделител точка, така че текстът на формулите да остане преносим между регионалните настройки
Версия 2.132.12
Поправено
- Прозрачността на палитрата PNG вече игнорира прозрачни цветове, които не присъстват в палитрата на изображението, вместо да маркира произволен индекс на палитрата като прозрачен
- Формулите SUMPRODUCT вече спират сканирането на останалите редове след първия ред извън използвания диапазон в аргументи с дълги диапазони, като избягват ненужни четения на клетки, докато запазват изчисления резултат
Версия 2.132.11
Поправено
- Формулите TEXT вече връщат #VALUE!, когато не може да се приложи невалиден или твърде голям числов формат, вместо да се поглъщат като празен успешен резултат
- Урязването на таблицата със споделени низове (shared-string table) вече освобождава правилните опашни блокове и поддържа таблицата годна за повторна употреба след големи цикли на изтриване
Версия 2.132.10
Поправено
- Точните търсения на MATCH вече зачитат заместващите символи (wildcards) на Excel, а метаданните за отместване на редове (row-offset) на класическия XLS вече игнорират редовете извън блока, вместо да повреждат записаната структура на работната книга
- Метаданните за компресиран текст в PNG вече освобождават временните буфери безопасно, ако обработката на частите (chunk processing) предизвика изключение
Версия 2.132.9
Поправено
- Метаданните за компресиран текст в PNG, вмъкването в списъка с части (chunk-list) и обработката на подредбата на байтовете (CRC byte-order) вече остават стабилни във всички поддържани платформи на 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 метаданни, предотвратявайки появата на нечетливи символи (mojibake), когато имената на частите на пакета съдържат Unicode текст
- XML изходът вече записва суров текст и стойности на атрибути като UTF-8 байтове, когато екранирането (escaping) е деактивирано, съответствайки на декларираното кодиране на документа
- Оценяването на формули вече изчиства своето състояние "в ход" след изключения при обратно извикване (callback exceptions) и правилно обработва анулирането на големи числа в Unicode Delphi компилации
- Извличането на матрици от формули за масиви вече зачита ненулевите долни граници на масиви от тип Variant, вместо да предизвиква грешка за валидни масиви, базирани на единица
Версия 2.132.2
Променено
- Сортирането на диапазони вече използва стабилно сортиране O(n log n) за големи сортирани диапазони, като същевременно запазва съществуващото поведение при прехвърляне (round-trip) на съдържанието на редовете
- Числовото парсване и форматиране при ODS и XLSX вече използват повторно инвариантно състояние на форматиране, вместо да го създават многократно в бързите пътища (hot paths)
Поправено
- XML парсването вече приема валидни CDATA блокове и UTF-8 инструкции за обработка без да поврежда текста или да се проваля при валидна маркировка
- Парсването на формули вече приема подписано научно означение (signed scientific notation) и чисто отхвърля деформирани или съкратени байтове на формули
- Класическите пътища за отваряне и записване на работни книги вече освобождават надеждно потоци и хранилища след грешки, предотвратявайки блокирането на временни файлове
- Обработката на двоични буфери вече валидира границите на копиране и четене, увеличава целевите буфери преди копиране и чисто отхвърля невалидни обратни препратки при VBA компресия
Версия 2.132.1
Поправено
- Коригирано е съобщението за грешка, което се появява, когато шифрована работна книга използва неподдържан схема за шифроване: преди това то твърдеше, че ECMA-376 Agile Encryption не може да бъде прочетено, въпреки че Agile декриптирането (AES-128/192/256) се поддържа от версия 2.119.0. Сега съобщението изброява действително поддържаните схеми
- При отказ на шифрован OOXML пакет Open вече насочва повикващите към TXLSXWorkbook.OpenEncrypted, вместо да заявява, че шифрованите работни книги не се поддържат
Версия 2.132.0
Променено
- Зареждането на XLSX е значително по-бързо: XML четецът вече интернира повтарящи се имена на елементи и преобразува стойности на текст и атрибути директно от своя буфер за сканиране, намалявайки разпределенията на памет на клетка с повече от половината. Многонишковото отваряне (2.128.0) печели най-много — премахнатите разпределения бяха тези, които сериализираха работните нишки — като работните книги с множество листове сега се отварят близо два пъти по-бързо от еднонишковия път на многоядрени машини; еднонишковото отваряне също печели няколко процента
Версия 2.131.0
Добавено
- Блоковете за разширение на работния лист, които HotXLS не моделира — записи
<ext>в<extLst>на работен лист, различни от спарклайнове (sparklines), написани от Excel за функции като x14 условно форматиране или слайсери (slicers) — вече се запазват буквално при отваряне на работна книга и се записват обратно при записване, так че отварянето и повторното записване на файл вече не премахва тези разширения. Заснетите блокове са видими само за четене чрезWorksheet.RawWorksheetExtsи се пренасят с листа, когато той се копира в друга работна книга
Версия 2.130.0
Добавено
- Запазените работни книги, които съдържат формули, вече носят частта за изчислителна верига
xl/calcChain.xml, позволявайки на Excel да захрани своята машина за зависимости от записания ред, вместо да я възстановява при зареждане. След повикване наRecalculateверигата следва топологичния ред на графа на зависимостите; в противен случай клетките с формули се изброяват в реда на документа (валидна подсказка, която Excel прецизира в движение). Частта, нейният тип съдържание и нейната връзка с работната книга се извеждат заедно и оцеляват при цикли на отваряне/записване (round-trips)
Версия 2.129.0
Добавено
- Новото свойство
Workbook.ParallelParseThreadsнастройва броя на работниците за многонишковия път Open, въведен в 2.128.0 (0 = автоматично, по един работник на ядро на процесора). Парсването на работни листове изисква много ресурси и заделянето на памет е сериализирано между нишките, така че при някои натоварвания малко изрично ограничение работи толкова добре, колкото — или по-добре от — пълния брой ядра; свойството позволява на интеграторите да изберат това, което работи най-добре за техните файлове
Версия 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е отделен API с възможност за избор и работните книги, които никога не го извикват, се държат точно както преди
Версия 2.126.0
Добавено
- Спарклайнове (sparklines) в XLSX машината: работните листове вече носят групи спарклайнове — мини диаграмите в клетка, които Excel изобразява от диапазон от данни — с трите типа на Excel (линейна, колона, печалба/загуба подредени). Създайте такава с
Worksheet.AddSparklineGroupили изградете групи ръчно чрез новата колекцияWorksheet.SparklineGroups, добавяйки произволен брой спарклайнове на група с източник диапазон и клетка за показване за всеки един - Групите спарклайнове разкриват пълния набор от опции, които Excel предлага: дебелина на линията, маркери за точки от данни, превключватели за подчертаване на висока/ниска/отрицателна/първа/последна точка, осем ARGB слота за цветове (серия, отрицателен, ос, маркери, първи, последен, висок, нисък), мащабиране на вертикалната ос за група или за спарклайн и обработка на празнини/нули/обхвати за празни изходни клетки
- Спарклайновете оцеляват след пълен цикъл на записване→отваряне (round-trip): записването излъчва блока за разширение на работния лист
extLst([MS-XLSX] §2.3.6), така че Excel 2010 и по-нови версии изобразяват спарклайновете, а отварянето на такава работна книга — независимо дали е записана от HotXLS или Excel — възстановява всяка група, опция и диапазон, така че те да продължат да съществуват през циклите на редактиране. Копирането на лист в друга работна книга също клонира неговите групи спарклайнове
Версия 2.125.0
Добавено
- Седем DBCS текстови функции за броене на байтове от анализа на пропуските на XLSSuit вече се оценяват на двете машини:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHBиREPLACEB. Всяка от тях третира своя вход като байтов низ под системната кодова страница ANSI, така че CJK (китайски/японски/корейски) знаци заемат 2 байта, докато ASCII заема 1; операциите, които биха разделили двойка водещ/следващ байт на DBCS, се връщат към най-близката граница на знака, съответствайки на поведението на Excel
Версия 2.124.0
Добавено
- Пет функции за тестване на хипотези и разпределение от анализа на пропуските на XLSSuit вече се оценяват на двете машини:
Z.TEST(едностранна вероятност за дясната опашка, че средната стойност на извадката е понеxпри нулевата хипотеза),T.TEST(p-стойност при сдвоен t-тест за две извадки; несдвоените типове с еднаква/различна дисперсия се отлагат),CHISQ.TEST(p-стойност за съгласуваност чрез CDF на хи-квадрат за горната опашка),HYPGEOM.DIST(хипергеометрична PMF/CDF с кумулативния флаг) иNEGBINOM.DIST(отрицателно-биномна PMF/CDF). Математиката на p-стойността използва повторно съществуващите помощни функции на машината за нормално/Student-t/хи-квадрат CDF чрез автономни вложени рутини, така че никой съществуващ метод Calc не се променя
Версия 2.123.0
Добавено
- Четиринадесет функции за формули, които сравнението с XLSSuit идентифицира като пропуски, вече се оценяват на двете машини:
AVERAGEIF(усредняване по един критерий, липсващият събрат на SUMIF/COUNTIF в машината),WORKDAY.INTLиNETWORKDAYS.INTL(персонализирани маски за почивни дни чрез числови кодове 1-17 или 7-знаков низ Пон-Нед),XIRRиXNPV(вътрешна норма на възвръщаемост и нетна настояща стойност за парични потоци с нерегулярни дати, решени чрез интервално разделяне на две),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(закръгляне без оглед на знака),PERCENTRANK.INC/PERCENTRANK.EXC(процентен ранг със съответната включваща/изключваща интерполация),MODE.MULT(извежда всяка стойност с най-висока честота),ERF.PRECISE(функция на Гаус за грешка чрез нейния алтернативен ред),ACCRINT(начислена лихва) иISPMT(периодична лихва за амортизация с постоянен главница)
Версия 2.122.0
Добавено
- Нишковите коментари (threaded comments) (Excel 365) вече правят пълен цикъл (round-trip) на XLSX машината:
AddThreadedCommentиAddThreadedReplyв работен лист изграждат дърво на отговори от тип родител→дете, закотвено в клетка, автоматично регистрират всеки автор в нов списъкPersonsна ниво работна книга и излъчват специалната частxl/threadedComments/threadedCommentN.xmlза всеки лист плюс обхвата на работната книгаxl/person/person.xml; повторното отваряне на такъв пакет възстановява дървото на разговорите и списъка с участници от тези части, така че веригите от отговори, идентификаторите и екранните имена оцеляват след пълен цикъл на четене→запис
Версия 2.121.0
Добавено
- Оценителят на формули вече изчислява функциите за динамични масиви на Excel 365
XMATCH,SORT,UNIQUEиSEQUENCE, присъединявайки се към вече поддържанитеXLOOKUPиFILTER; резултатите се разпростират като 2-D масиви, така че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, стандартно шифроване (нашияSaveAsEncryptedround trip) и Agile Encryption; грешна парола предизвиква същата ясна грешка при всяка схема
Поправено
- Записването на работна книга
.xlsx, чийто XML на работния лист надвишава приблизително 116 KB — около 3000 реда типични низови данни — се сриваше с препълване на стека; CRC-32 контролната сума на ZIP записващия модул вече обработва данните на части от 64 KB, което държи компресиращия бекенд извън неговия кодов път за големи входни данни, който заделя извънгабаритен временен буфер в стека. Резултатът от контролната сума е непроменен
Променено
- Дедупликацията на споделени низове (shared-string deduplication) вече работи чрез хеш таблица, вместо да сканира списъка с низове, а частта
sharedStrings.xmlсе сглобява чрез предварително разширения конструктор на низове (string builder), вместо чрез многократно свързване (concatenation) — заедно с клетъчния индекс с константно време това намалява времето за записване на 120 000 текстови клетки от десетки секунди до около една трета от секундата
Версия 2.117.0
Променено
- Достъпът до XLSX клетки вече е с константно време: колекцията от клетки на работния лист носи хеш индекс върху (ред, колона), замествайки предишното линейно сканиране — така че попълването, обратно четене или зареждане на голям лист се мащабира линейно с броя на клетките, вместо квадратично; запълването на 100 000 клетки вече отнема значително под секунда, докато преди отнемаше минути
- Ускорението се прилага в цялата машина:
Cells[r, c],HasCell, зареждане на работна книга, записване, копия между работни книги, auto-fit и всеки помощник, който докосва клетки по позиция, всички се възползват; вмъкването или изтриването на редове и колони възстановява индекса в едно преминаване
Версия 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: числовият текст се съхранява като числа, така че формулите продължават да работят, шестнадесетичните (\'hh) и Unicode (\uN) escape последователности се декодират правилно, а заглавните групи (таблица със шрифтове, таблица с цветове, stylesheet, info) се прескачат - Документи без таблица преминават в режим на абзаци, като всеки
\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>, с escape последователности</>/&— така че съдържание на клетки с множество формати може да бъде произведено от шаблон String, вместо да се сглобяват обекти за сегменти (run) на ръка - Записването на маркировка изгражда списъка със сегменти и запазва
Valueкато конкатениран обикновен текст; маркировка без тагове съхранява обикновен String без форматирано полезно натоварване; четенето сериализира атрибутите на всеки сегмент като пълни набори от тагове; неизвестните тагове преминават като буквален текст
Поправено
- Сегмент от форматиран текст (rich-text run), състоящ се изцяло от празни пространства (например един стилизиран интервал между думите), вече оцелява запис и презареждане; преди интервалът беше отхвърлян при повторното отваряне на файла
Версия 2.111.0
Добавено
- Новото събитие
OnProgressвърху XLSX работната книга отчита напредъка на зареждане и запис: то се задейства веднъж за работен лист при парсване по време наOpenили при излъчване по време наSaveAs, носейки фазата (четене или запис), текущия номер на листа базиран на 1 и общия брой — така че приложенията могат да управляват лента за напредък при дълги операции с множество листове при пренебрежими разходи за обратно извикване
Версия 2.110.0
Добавено
- Нов
TXLSRowCursorкурсор за редове в стил dataset за файлове.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контролират как стойностите на булевите клетки се изобразяват навсякъде, където се произвежда текст за показване —FormattedText, HTML експорт и измерване на auto-fit — така че локализираните приложения могат да показват например 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 s по подразбиране), така че работи еднакво на локални дискове и мрежови споделени ресурси без цикъл на съобщения;SynchronizeEventизбира между доставка в главната нишка за обработващи UI (по подразбиране) и директна доставка в нишката на наблюдателя за конзолен код или код на услуга - Файл, който кратко изчезва по време на цикъл на запис, не задейства фалшиво събитие; промяната се отчита, след като новото съдържание е на място
Версия 2.105.0
Добавено
- Ограничен auto-fit в класическия 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
Добавено
- Cross-работна книга работен лист copy in the classic XLS (BIFF8) engine now brings the работна книга-level defined names a формула uses over to the destination — the same thing Excel does when a sheet moves between workbooks: a name the destination already has is bound as-is (no duplicate is created), a missing name is registered with its original definition and visibility so the формула recompiles against it, and a name whose definition cannot resolve in the destination (for example, it points at a sheet that does not exist there) leaves the формула on its computed стойност as before
Версия 2.101.0
Добавено
- Cross-работна книга работен лист copy in the classic XLS (BIFF8) engine now re-points formulas at the source работна книга as an external link when the destination has no sheet of the referenced name and the source has been saved to a файл: the copied клетка stays a live формула (its references switch to the [SourceBook]Sheet form), the source's computed стойност is kept as the cached result so reads keep working until the link is refreshed, and the external работна книга reference round-trips through save and reload; formulas carrying defined-name references, and copies from unsaved source workbooks, keep the computed стойност as before
Версия 2.100.0
Добавено
- Array formulas now survive работен лист copies in the classic XLS (BIFF8) engine: each array диапазон is rebuilt as a whole in the copy — within the same работна книга and across workbooks alike — with the root формула recompiled against the destination's sheet names; an array the destination cannot recompile keeps its computed values instead
Поправено
- Copying a диапазон that contains array-формула cells between classic XLS worksheets no longer risks a crash on the spill cells (which carry no формула tree of their own); such cells now transfer their computed стойност
Версия 2.99.0
Добавено
- Chart sheets can now be copied between classic XLS (BIFF8) workbooks: the chart record stream is cloned into the destination, series category / стойност / name references are recompiled against the destination's sheet names (a series whose sheet has no same-name counterpart falls back to an empty reference so the файл still opens), chart font references migrate by стойност into the destination font table, and the page setup, tab color, zoom, and visibility of the chart sheet come along; this removes the last documented limitation of the cross-работна книга работен лист copy
Версия 2.98.0
Добавено
- Cross-работна книга работен лист copy in the classic XLS (BIFF8) engine now preserves rich-text formatting inside cells: each formatting run's font is migrated by стойност into the destination работна книга's font table and the run is rewritten to point at it, so mixed-font strings keep their appearance instead of falling back to plain text; phonetic (Far-East) auxiliary data travels with the String as well
Поправено
- Fonts referenced only by rich-text runs (and not by any клетка формат) are no longer dropped from the FONT table when saving a classic XLS работна книга, and the runs now follow the same font reordering as клетка formats on save, so rich-text strings keep the correct fonts after a save/reload cycle
Версия 2.97.0
Добавено
- Cross-работна книга работен лист copy in the classic XLS (BIFF8) engine now also clones embedded pictures: the image bytes migrate into the destination работна книга's picture store (identical images are shared rather than duplicated), and each picture frame keeps its клетка anchor, size, visibility, and transparent color; a new CrossWorkbookCopyXls sample project demonstrates the classic-engine copy end to end
Променено
- Classic XLS cross-работна книга copy limitations are now documented: chart sheets are not copied (AddCopy returns nil for them), and a формула whose sheet reference has no same-name sheet in the destination keeps the source's computed стойност instead of becoming an external reference
Версия 2.96.0
Добавено
- Cross-работна книга работен лист copy in the classic XLS (BIFF8) engine now also clones conditional formats (клетка-is and expression rules, data bars, color scales, icon sets, and their differential styles), data validations (list, numeric, date, text-length, and custom rules with prompt and error boxes), the AutoFilter definition with its per-колона criteria (the dropdown buttons are rebuilt in the copy), and tables (ids and names are re-issued so they stay unique in the destination работна книга); rule formulas are recompiled against the destination's sheet names, matching the behavior of клетка formulas
Версия 2.95.0
Добавено
- Classic XLS (BIFF8) worksheets can now be copied from one работна книга into another: TXLSWorksheets.AddCopy adds a new sheet to the destination работна книга and copies the source sheet's клетка values, formulas (re-encoded as text so the destination recompiles them against its own sheet names, keeping same-name 3D references live), merged cells, comments, hyperlinks, ред heights, колона widths, outline levels, frozen panes, sheet protection, page setup, manual page breaks, tab color, and view settings; клетка, ред, and колона formats are migrated by стойност into the destination работна книга's формат table, so a styled source produces an independently styled copy
- Cross-работна книга формат migration in the classic XLS engine now carries the full-precision RGB and theme colors alongside each формат entry, so fills, fonts, and borders keep their exact colors instead of falling back to palette approximations; this also applies to диапазон-level paste between workbooks
Версия 2.94.0
Добавено
- Cross-работна книга работен лист copy now clones conditional formats (with their differential styles and the dataBar / colorScale / iconSet visual payloads), tables, data validations, and charts (with every series); each sub-обект deep-copies its own state into the destination работен лист
- Cross-работна книга формула references are rewritten: a reference whose sheet name exists in the destination resolves as-is, otherwise it becomes an external reference back to the source работна книга (which is registered as an external link) or #REF! when the source has no файл identity; the rewrite applies to клетка formulas, conditional-формат rules, data-validation formulas, and chart series ranges alike
Версия 2.93.0
Добавено
- A работен лист can now be copied from one работна книга into another: TXLSXSheets.AddCopy adds a new sheet to the destination работна книга and copies the source sheet's cells, formulas, merged ranges, колона/ред sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, page setup, AutoFilter диапазон, and tab colour onto it; the six per-клетка style indices are remapped into the destination работна книга's own Font/Fill/Border/NumberFormat/Alignment/Protection pools via стойност-equality lookup, so a styled source produces an independently-styled copy rather than indices pointing at the wrong pool
- The six per-attribute style pools (Fonts, Fills, Borders, NumberFormats, Alignments, Protections) each expose a 1-based LookupOrAdd that deduplicates by стойност; a new CrossWorkbookCopy sample project demonstrates the cross-работна книга copy with style preservation
Версия 2.92.0
Добавено
- XLSX workbooks now support pivot tables: TXLSXWorksheet.AddPivotTable scans a flat source диапазон, auto-builds a pivot cache, and Връща typed pivot table for ред / колона / page / data-axis wiring, mirroring the long-standing BIFF8 (XLS) engine API so the same code targets either формат; PivotSetDataFieldFormat assigns a number формат to each aggregated стойност field
- Excel-created pivot tables round-trip without loss through Open then Save: the XLSX engine preserves each pivot cache definition, cache records, and pivot table part verbatim and replays the original bytes on save, so re-saving a работна книга never drops or alters its pivots even when they use features the typed model does not expose
Версия 2.91.0
Добавено
- Автоматичният филтър на работния лист вече може да бъде приложен към данните, така че запазената работна книга да се отваря с вече скрити несъвпадащи редове, отразявайки това, което прави Excel, когато се избере стойност от падащото меню на филтъра
- Вградените изображения излагат своята геометрия в реални единици (сантиметри, инчове, точки) заедно със стойностите на EMU и могат да бъдат преоразмерени чрез мащабен коефициент с опционално заключване на съотношението
- Полетата за настройка на страницата вече могат да се задават директно в сантиметри като метрично удобство спрямо полетата, базирани на инчове
- Защитените XLSX работни листове вече излагат петнадесет фини превключвателя за разрешения (форматиране на клетки, вмъкване/изтриване на редове и колони, сортиране, автоматичен филтър, избиране на заключени/незаключени клетки и други) чрез новото свойство AllowOption, което съответства на списъка с отметки на Excel Review > Protect Sheet; настройките за всяко действие се запазват при запис и четене на файла
- XLSX работните листове вече могат да бъдат дублирани (TXLSXSheets.Duplicate): добавя се нов лист и клетките на източника, слетите диапазони, оразмеряването на колони/редове, замразените панели, състоянието на изгледа, защитата, настройките на страницата и цветът на раздела се копират върху него, отразявайки функцията на Excel щракване с десния бутон > Move or Copy > Create a copy
- Двадесет и два нови примерни проекта покриват възможностите, които библиотеката поддържа: криптиране на работна книга, коментари в клетки, хипервръзки, дефинирани имена, оценка на автоматичен филтър, вградени снимки, шаблон за фактура, разширено условно форматиране на XLSX, слети клетки, очертаване на редове/колони, замразени панели, оформление с множество листове, формули за масиви, копиране/преместване на диапазон, намиране/замяна, системи за дати, богат текст, разширен CSV, опции за експортиране на HTML, персонализирани формати на числа, скрити редове/колони и защита на работен лист
Версия 2.90.29
Променено
- Директният поточен четец вече брои всяка попълнена клетка, дори когато няма прикачен манипулатор за всяка клетка, така че обикновено извикване на ReadFile може да се използва за бързо оразмеряване на работен лист; върнатият брой и свойството CellCount отчитат броя на сканираните попълнени клетки
Версия 2.90.28
Добавено
- Формулите вече могат да се оценяват стъпка по стъпка, което е еквивалент на командата Evaluate Formula в Excel: нов трасьор редуцира израза с по една подстъпка, като започва от най-вътрешната, и отчита всяка редукция с нейния изходен подизраз, същия подизраз след заместване на операндите му с техните стойности и крайния резултат, така че приложенията могат да покажат как се изгражда резултатът; той спазва приоритета на операторите, запазва препратките към диапазони непокътнати за функции като SUM и използва отново машината за изчисления на работния лист, така че всяка стъпка да съвпада с пълното преизчисляване
Версия 2.90.27
Добавено
- Работните книги на XLSX вече могат да се създават клетка по клетка чрез нов директен поточен писател, който извежда всеки работен лист направо в пакета при пристигане на редовете, без да изгражда пълно дърво на клетките в паметта, така че много големи файлове могат да бъдат генерирани с почти постоянен отпечатък в паметта; писателят обработва вмъкнати низове, числа, булеви стойности, дати и формули в множество листове и ги чете успешно с директния поточен четец
Версия 2.90.26
Добавено
- Работните книги на XLSX вече могат да бъдат сканирани клетка по клетка чрез нов директен поточен четец, който генерира събития за всяка клетка и всеки лист, без да изгражда пълно дърво на клетките в паметта, като запазва отпечатъка в паметта почти постоянен за много големи файлове; всяка отчетена клетка носи своята стойност, вид (число, низ, булева стойност, дата или грешка), текст на формулата и индекс на стила, с опционално откриване на дата и поддръжка за ранно прекратяване
Версия 2.90.25
Добавено
- Класическите XLS работни листове вече могат да добавят хипервръзки от препратки към клетки в стил A1, като запазват нормализирането на URL адресите, подадресите на целите на работната книга, показвания текст и подсказките на екрана
Версия 2.90.24
Добавено
- Класическите XLS page breaks вече могат да се добавят от 1-базирани позиции на ред или колона и A1-style референции към клетки чрез page-break колекцията и worksheet helper overloads
Версия 2.90.23
Добавено
- Класическите XLS worksheets и shape колекции вече могат да създават drawing обекти тип правоъгълник, овал, линия и typed autoshape от A1-style range низове
Версия 2.90.22
Добавено
- Класическите XLS shape колекции вече могат да създават text boxes от A1-style range низове чрез AddTextBox overload
Версия 2.90.21
Добавено
- Класическите XLS text boxes вече могат да бъдат препозиционирани от A1-style range низове чрез нов SetArea overload
Версия 2.90.20
Добавено
- Класическите XLS worksheet text boxes вече могат да бъдат създавани от A1-style range низове чрез AddTextBox overload
Версия 2.90.19
Добавено
- Класическите XLS worksheets вече могат да създават drawing text boxes директно от координати на ред и колона чрез нов AddTextBox метод
Версия 2.90.18
Добавено
- Класическите XLS worksheets вече могат да създават коментари на клетки директно от координати на ред и колона чрез нови AddComment overloads
Версия 2.90.17
Добавено
- Класическите XLS defined names вече могат да бъдат създавани от име на worksheet и координати на ред/колона чрез нови Names.Add overloads
Версия 2.90.16
Добавено
- Класическите XLS вмъквания на картини вече могат да поставят файлови и TBitmap изображения в зададена worksheet клетка, без да се променя текущата селекция
Версия 2.90.15
Добавено
- Класическите XLS AutoFilter колони вече могат да бъдат намирани по field index чрез колекцията AutoFilterColumns
Версия 2.90.14
Добавено
- Класическите XLS defined names вече могат да бъдат локализирани по worksheet клетка чрез нови FindByCell overloads в колекцията Names
Версия 2.90.13
Добавено
- Класическите XLS ranges вече поддържат създаване на коментар с текст и автор в едно AddComment извикване
Версия 2.90.12
Добавено
- Класическите XLS коментари вече излагат свойство Author за задаване и четене на запазения автор на коментар чрез typed API
Версия 2.90.11
Поправено
- Класическото XLS range copy вече запазва копираните автори на коментари заедно с текста на коментарите
Версия 2.90.10
Поправено
- Класическият XLS AddHyperlink вече съхранява workbook cell цели като вътрешни subaddresses вместо външни файлови пътища
Версия 2.90.9
Поправено
- Класическото XLS range copy вече запазва хипервръзките на клетки в дестинацията, включително адрес, screen tip и показван текст
Версия 2.90.8
Поправено
- Хипервръзките в XLS и XLSX вече нормализират голи www адреси до абсолютни http URL адреси преди запазване, като запазват показвания текст
Версия 2.90.7
Поправено
- Класическият XLS ApplyAutoFilter вече игнорира извън обхват field indexes преди възстановяване на филтърния range, като запазва съществуващите критерии вместо да ги изчиства
Версия 2.90.6
Поправено
- Класическите XLS chart series вече отхвърлят самореференции към chart-sheet без разлика в малки и главни букви, предотвратявайки невалидни Area3D източници на данни, когато case-ът на името на листа се различава
Версия 2.90.5
Поправено
- Класическите XLS chart sheets вече използват нормалната защита на името на worksheet при прилагане на персонализирани имена на chart sheet, предотвратявайки дублиращи се имена, които се различават само по case
Версия 2.90.4
Поправено
- Класическите XLS pivot tables вече съпоставят изходните имена на worksheets без разлика в малки и главни букви при създаване или повторно използване на pivot caches
Версия 2.90.3
Поправено
- Класическото преименуване на XLS worksheet вече отхвърля case-insensitive дубликати, запазвайки lookup поведението недвусмислено след преименуване
Версия 2.90.2
Поправено
- Класическият XLS worksheet name lookup вече е case-insensitive за SheetByName, TryGetSheetByName, Index и IDByName
Версия 2.90.1
Поправено
- Класическият XLS defined-name lookup вече е case-insensitive, така че имената, решени чрез workbook колекцията Names, се държат консистентно след запазване и повторно отваряне
Версия 2.90.0
Промени
- КРИТИЧНА ПРОМЯНА — колекцията от работни листове в XLSX вече е 1-базирана.
Workbook.Sheets[i],Sheets.IndexByNameи целочислената propertyActiveSheetвече броят от 1, за да съответстват на XLS engine, така че първият работен лист еSheets[1], а неSheets[0]; позиционните помощни методиActiveIndex,Activate,Moveи аргументът за индекс на листа наSaveAsCSV/SaveAsHTML/SaveAsRTFостават 0-базирани - КРИТИЧНА ПРОМЯНА — FreezePanes взима реда на първо място в двата engine. XLS и XLSX engine вече споделят
FreezePanes(ARow, ACol); методътFreezePane(ACol, ARow)за XLSX и обратният двуаргументен вариант за XLS са премахнати, така че извикване, замразявало N колони и M реда, трябва да смени двата си аргумента - КРИТИЧНА ПРОМЯНА — класовете за работни листове в XLS изгубиха подвеждащия си префикс I.
IXLSWorksheetиIXLSWorkSheetsставатTXLSWorksheetиTXLSWorksheets(те винаги са били класове, а не интерфейси); истинските интерфейсиIXLSWorkbookиIXLSRangeостават непроменени - КРИТИЧНА ПРОМЯНА — enum-ът на оператора за валидиране на данни в XLS е преименуван. Членовете на
TXLSDvOperatorсе променят отxlsDv...наxlsDvOp...(напримерxlsDvOpBetween), така че вече не споделят префикс с enum-а на типа валидиране и се съгласуват с именатаxlsxDvOp...за XLSX
Версия 2.89.46
Поправено
- Потребителските теми оцеляват при XLSX round-trip. Отварянето на работна книга с нейна тема и повторното й записване запазва тази тема, вместо да я замества с вградената Office тема, така че цветовете, базирани на теми, вече не се презаписват мълчаливо
- Припокриващите се обединени области се отхвърлят. Обединяването на клетъчна област, която се пресича с вече съществуваща обединена област, сега се отказва, вместо да се записват припокриващи се записи, което кара Excel да докладва запазения файл като повреден
- Дата, записана като стойност на клетка, се показва като дата. Присвояването на дата или час на клетка, която все още е в общ числов формат, сега прилага формат за дата по подразбиране, така че тя се показва като дата в Excel, а не като суров пореден номер; числовият формат, зададен от потребителя, остава непроменен
Сигурност
- Дълбоко вложените формули вече не могат да изчерпат стека. Четецът на формули за .xls ограничава дълбочината на влагане на маркерите на формули, така че деформирани или злонамерени работни книги с екстремно влагане се отхвърлят, вместо да рискуват срив
Версия 2.89.45
Поправено
- Имената на ZIP записи, маркирани като UTF-8, се четат правилно. Когато архив маркира име на член като UTF-8 (бит 11 за общо предназначение), името се декодира като UTF-8 вместо локалната кодова страница на архива
- Буквалните клетки за грешка в .xls се запазват. Клетка, записана директно като стойност за грешка (запис BOOLERR с установен флаг за грешка), запазва своя код за грешка, вместо да се чете като празна
- Шифроването на пакет, по-голям от 2 GB, завършва с чиста грешка. Стандартното шифроване отхвърля прекомерно големия полезен товар, вместо да препълва своята 32-битова аритметика за размер
Версия 2.89.44
Поправено
- Експортирането на формули в ODS запазва дефинираните имена непокътнати. Дефинирано име, което прилича на препратка към клетка (напр.
TaxRate2), вече не се пренаписва като невалиден ODF адрес на клетка, а анализирането на_xlnm.Print_Titlesвече не разделя име на лист, което съдържа запетая - Импортирането на ODS е безопасно след последната колона. Ред, чиито повтарящи се клетки с форматиран текст се простират отвъд последната колона на работния лист, вече не използва повторно освободен прототип за форматиран текст
Версия 2.89.43
Поправено
- Експортирането в RTF запазва не-ASCII текста. Текстът на клетките се записва с
\uуправляващи последователности за Unicode и заглавната част декларира кодова страница, така че CJK / кирилски / ударени символи се експортират непокътнати, вместо да се превръщат в "?" под кодовата страница на записващото устройство - Многостраничната HTML навигационна рамка екранира имената на листовете. Имената на листовете в страницата с индекс / набор от рамки се екранират за HTML, а не-ASCII символите стават числови препратки към символи, така че раздел, наименуван с маркиращи символи или не-ASCII букви, се изобразява правилно
Версия 2.89.42
Поправено
- Числата с научен запис във формулите се анализират. Литерал като
1E3или2.5E-3във формула сега се разделя на лексеми като единично число, вместо като число, последвано от случайно име - SEARCH е безопасна за Unicode. Нечувствителната към регистъра функция SEARCH вече не променя регистъра на буквите през ANSI кодовата страница, така че не-ASCII съвпаденията на find-text / within-text са на правилната позиция на знака
Версия 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, записан със стандартно шифроване, сега се отваря в Excel. Шифрованият пакет е шифриран с AES-128 в режим ECB, както изисква форматът, вместо CBC, което оставяше всичко след първия блок нечетимо
- Дешифрирането на RC4 за защитени с парола BIFF8 (.xls) е коригирано. Потокът от ключове сега се пренастройва с нов ключ и се консумира в стъпка с позицията на потока, така че правилна парола дешифрира тялото на работната книга, вместо да произвежда повредени клетки
Версия 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, се екранира, така че запазената работна книга остава валидна - Редакциите на диапазони с условно форматиране вече не оставят безпризорен диапазон. Изчистването или преместването на колона извън област с условно форматиране вече не създава припокриващ се фантомен диапазон
- Индексираните цветове на разделите на листове, прочетени от .xls, използват правилния елемент от палитрата, а форматираните като числа дати в записи с множество клетки (MULRK) запазват откриването си на дати в системата за дати от 1904 г
- Критериите за AutoFilter за горен / долен процент се запазват при двупосочно преобразуване. Зареждането на филтър за "горен N процент" или "долен N процент" от .xls вече не го понижава до просто броене на елементи
- mailto: хипервръзките се разпознават като URL адреси, а подсказките за хипервръзки (ScreenTips) се записват така, че да се запазват при двупосочно преобразуване, вместо да бъдат отхвърлени
- HTML експортирането извежда валидни размери на шрифта в локали с десетична запетая, така че експортираните шрифтове на клетки вече не се връщат към настройките по подразбиране на браузъра
- Четенето на лошо форматирани или отрязани файлове е по-надеждно. Повредени чертежи на OfficeArt, индекси на стилове / цветове / палитри / теми извън диапазона и не-базови JPEG изображения вече не сриват програмата и не генерират невалидни размери, а изтичането на памет за споделени низове при зареждане на форматиран текст е коригирано
Версия 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 <folder> [/targets=xlsx,csv,html] [/persheet] [/skip] [/quiet]сканира папката, преобразува всеки източник в заявените целеви формати, записва отчетите за преобразуване и излиза;/quietдържи прозореца скрит, така че преобразуванията да могат да се изпълняват от скриптове и планирани задачи - Груповите преобразувания остават интерактивни. Индикатор за напредъка проследява списъка със задачи (избраните източници, умножени по избраните цели), бутон за отмяна (Cancel) прекъсва групата с отчети, обхващащи завършените задачи, а двукратното щракване върху ред с резултат отваря генерирания файл (или изходната папка за CSV комплекти за всеки лист)
- Опциите на работната среда се запазват между сесиите. Папката, целевите формати, разделителят, HTML опциите, ODS превключвателите, опцията за CSV за всеки лист, пропускането на съществуващи и изборите за поточно предаване се съхраняват в INI файл до изпълнимия файл; паролата за шифроване умишлено не се запазва
Версия 2.89.31
Променено
- Демонстрационната програма WorkbookAudit сега се изпълнява без надзор от командния ред. Извикването на
WorkbookAudit.exe <folder> [/r] [/quiet]сканира папката (опционално с подпапки), одитира всяка работна книга, експортира JSON, CSV и HTML отчетите и излиза;/quietдържи прозореца скрит, така че одитът да може да се изпълнява от скриптове и планирани задачи - Големите пакети задачи остават интерактивни. Индикатор за напредъка проследява пакета, бутон за отмяна (Cancel) го прекъсва (останалите файлове се маркират като Отменени), а изборът на работна книга сега попълва подробен панел за всеки лист с подробности за структурата, формулите, препратките и защитата
- Изборът на папка за одит и подпапки се запазва. Опциите се съхраняват в 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 файл (
<name>.<sheet>.csv, както за класически XLS, така и за източници на модели XLSX), да записват защитен с парола XLSX изход чрезSaveAsEncrypted(включително мостовия път на класическия XLS), да пропускат преобразувания, чийто изход вече съществува (отчита се като пропуснат, не се изпълнява повторно) и да активират поточни записи в XLSX за големи работни книги
Версия 2.89.27
Променено
- Демонстрационната програма WorkbookAudit сега сканира по-дълбоко и маркира индикатори за риск. Примерите за Delphi и C++Builder получиха рекурсия на подпапки с имена на файлове, относителни спрямо папката, откриване на защитен с парола XLSX чрез
CanReadEncrypted(отчита се като шифрован вместо обща грешка при отваряне) и колона Flags, която показва проекти на VBA, външни препратки, скрити листове, защитени листове и шифровани файлове с един поглед в списъка и във всеки отчет - Одитните отчети носят по-богати метаданни. JSON отчетът групира пълния набор от свойства на документа (заглавие, тема, автор, ключови думи, company, manager, описание, категория, създаден, модифициран, последно модифициран от) в обект
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
Поправено
- Експортирането на XLSX в CSV сега записва изчислените резултати от формули.
TXLSXWorkbook.SaveAsCSVоценява клетките с формули чрез модула за формули на работната книга преди записване на CSV или TSV текст, така че клетките само с формули експортират своите показвани стойности вместо текста на формулата
Версия 2.89.23
Добавено
- Експортирането в OpenDocument сега може да се настройва с опции. Нов обект за опции за експортиране позволява на запазения
.odsда изключва диаграми или вградени изображения и да преопределя низа на генератора, записан в метаданните на документа, чрез нови претоварвания на SaveAsODS, които приемат опциите - Изключеното съдържание не оставя следи. Изключването на диаграми или изображения премахва техните папки с обекти, рамки за рисуване и записи в манифеста заедно, така че запазеният пакет никога не носи осиротяла препратка
Версия 2.89.22
Добавено
- OpenDocument файловете сега се отварят чрез стандартното извикване за отваряне. Подаването на
.odsфайл или поток към общия метод за отваряне открива пакета OpenDocument и го зарежда автоматично, така че вече не е необходимо да се знае предварително дали файлът е.xlsxили.ods - Добавен е пряк път за SaveAsODS. Запазването в OpenDocument вече не изисква подаване на стойността на файловия формат, отразявайки начина, по който се запазват други формати
- Зареденият формат може да бъде проверен. Свойство SourceFormat съобщава дали отворената работна книга идва от OpenXML или от OpenDocument файл
Версия 2.89.21
Поправено
- Суперскрипт и субскрипт сегментите се запазват, когато форматиран текст се записва в
.xlsx. Сегмент, маркиран като горен или долен индекс в рамките на стилизирана клетка, сега записва вертикалната си позиция в споделения низ и я чете обратно, така че повдигнатият или сваленият текст оцелява при двупосочно преобразуване на.xlsx, вместо да се спусне до базовата линия - Горният и долният индекс се пренасят между форматите. Форматираният текст, прочетен от
.odsфайл, запазва своите сегменти с горен и долен индекс, когато работната книга се запише отново като.xlsxи се отвори повторно
Версия 2.89.20
Добавено
- Експортирането и импортирането в ODS сега пренасят условни формати за цветова скала и лента за данни. Дву- или трицветна скала и лента за данни се записват с техните стойности и цветове и се четат обратно, разширявайки съществуващите правила за сравнение, така че тези графични формати да оцелеят при двупосочно преобразуване на
.ods - Поддържат се условни формати, базирани на формули. Правило, управлявано от формула, се записва като условие за вярна формула с неговия израз, преведен към синтаксиса на OpenDocument, и се чете обратно в правило за формула, заедно със съществуващите правила за стойности на клетки
Версия 2.89.19
Добавено
- Експортирането и импортирането в ODS сега пренасят подкани за въвеждане при валидиране на данни. Заглавието и текстът на подканата, показвани при избор на валидирана клетка, се записват заедно със съществуващото предупреждение за грешка и се четат обратно, така че съобщението за въвеждане да оцелее при двупосочно преобразуване на
.ods - Цветът на раздела на листа се запазва. Цветът на раздела на листа се записва във и се чете от
.odsфайла, а импортирането приема както общия атрибут за разширение, така и стандартния атрибут на OpenDocument за цвят на раздел
Версия 2.89.18
Добавено
- Експортирането и импортирането в ODS сега пренасят групи от редове и колони. Структурните групи се записват като вложени елементи на групи от редове и колони и се четат обратно, така че групираните редове и колони да запазят своето структурно ниво при двупосочно преобразуване на
.ods, включително няколко нива на влагане - Свитите групи остават свити. Група, чиито редове или колони са свити, се маркира като непоказвана при запазване и се възстановява при зареждане, като групирането съществува съвместно със скрити редове, прекъсвания на страници и оразмеряване на редове или колони, без да си пречат
Версия 2.89.17
Добавено
- Експортирането и импортирането в ODS сега пренасят областта за печат. Диапазонът за печат на лист се записва във и се чете от
.odsфайла, така че дефинираната област за печат оцелява при запазване и повторно зареждане - Ръчните прекъсвания на страници се запазват. Прекъсванията на страници по редове и колони се записват като маркери за прекъсване преди засегнатите редове и колони и се четат обратно при зареждане, така че ръчното страниране преминава успешно през
.ods
Версия 2.89.16
Добавено
- Експортирането и импортирането в ODS сега пренасят горни и долни колонтитули. Запазването в
.odsзаписва горния и долния колонтитул на всеки лист с неговите лява, централна и дясна област, а отварянето на.odsфайл ги чете обратно, така че полетата за номер на страница, брой страници, дата, час и име на лист, плюс буквалният текст, оцеляват при двупосочно преобразуване - Всеки лист запазва своя горен и долен колонтитул. Работна книга, чиито листове имат различни горни или долни колонтитули, сега записва отделен стил на страницата за всеки лист, така че всеки лист се презарежда със свой собствен горен и долен колонтитул, вместо да споделя този на първия лист
Версия 2.89.15
Добавено
- Експортирането и импортирането в ODS сега пренасят завъртането на текста. Клетка, чийто текст е завъртян, запазва ъгъла си при запазване и презареждане на
.ods, като ъглите по посока на часовниковата стрелка и обратно на нея се съпоставят правилно между конвенциите на електронната таблица и OpenDocument - Отстъпът на клетката се запазва. Нивото на отстъп на клетка се записва като ляво поле при запазване и се чете обратно при зареждане, така че клетките с отстъп запазват своята дълбочина при двупосочно преобразуване на
.ods
Версия 2.89.14
Добавено
- Експортирането в ODS сега записва форматиран текст. Запазването на клетка, чийто текст смесва няколко форматиращи сегмента в
.ods, извежда по един текстов обхват (span) на сегмент със собствен автоматичен стил от тип текстова фамилия, така че името на шрифта, размерът, удебеляването, курсивът, подчертаването, зачеркването, цветът и горният или долният индекс оцеляват при запазването, вместо да бъдат сведени до един формат - Идентичните стилове на сегменти се споделят. Сегментите, които носят едно и също форматиране, използват повторно един запис за автоматичен стил, вместо да извеждат дубликат за всеки сегмент, а обикновена клетка все още се записва като един абзац без текстов обхват
Версия 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пренася името на шрифта, размера на шрифта, удебелен, курсив, подчертан, зачеркнат и цвета на шрифта в пакета, така че стилизираните клетки да запазят външния си вид при повторно отваряне - Записват се фоновите запълвания и границите на клетките. Плътните фонови цветове и четирите края на клетката (горен, долен, ляв, десен) се извеждат с техните ширини, стилове на линиите и цветове
- Подравняването и пренасянето се запазват. Хоризонталното и вертикалното подравняване на текста плюс опцията за пренасяне на текст (wrap-text) се пренасят към 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 - Изчисление в затворен вид. Експоненциалното разпределение и разпределението на Вейбул използват своите аналитични формули, докато логнормалното разпределение използва повторно нормалната кумулативна функция на разпределение и нейната обратна функция; невалидните параметри връщат
#NUM!
Версия 2.88.244
Поправено
- Обратното нормално разпределение сега е точно в опашките.
NORMSINV,NORM.S.INVиNORM.INVизползваха десетичен логаритъм в клоновете на опашката (вероятности под около 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 - Побитови AND, OR и 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-цифрена форма с допълнителен код до две, така че стойностите се запазват правилно при преобразуванията
- Незадължителен изход с фиксирана ширина. Преобразуванията към текстова база приемат незадължителен аргумент за брой позиции, който допълва резултата с водещи нули до фиксирана ширина
- Валидиране на диапазон и входни данни. Стойности извън представимия диапазон или текст, съдържащ цифри, които не са валидни за изходната бройна система, отчитат
#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 стилове за защита на клетки. Стиловете на клетки на таблици, използващиstyle:cell-protect, сега съпоставятnone,formula-hidden,protectedиhidden-and-protectedкъм импортираното състояние на клеткиLockedandFormulaHidden, включително стойности, наследени чрезstyle:parent-style-name
Версия 2.88.229
Добавено
OpenODSсега импортира основни ODS формули. Клетките с формули, използващиof:=илиoooc:=, сега запазват своите кеширани скаларни стойности и импортират нормализирана XLSX формула с локални препратки в скоби като[.A1:.B1]и разделители на аргументи с точка и запетая, преобразувани към синтаксиса на Excel
Версия 2.88.228
Добавено
OpenODSсега разрешава наследени ODS стилове на редове и колони. Стиловете на редове и колони на таблици, използващиstyle:parent-style-name, сега наследяват родителските настройки за височина на ред, ширина на колона и видимост (скрит), когато пакетите на ODS препращат към наследствени стилове отcontent.xml
Версия 2.88.227
Добавено
OpenODSсега разрешава наследени ODS стилове на клетки на таблици. Стиловете на клетки на таблици, които използватstyle:parent-style-name, сега наследяват родителските съпоставяния на стила за данни по време на импортиране на ODS, така че наследствените стилове запазват импортираните стойности на XLSXNumberFormat, дори когато стилът на данните е деклариран в родителския стил
Версия 2.88.226
Добавено
OpenODSсега зарежда предварително ODS стилове за редове и колони, съхранени вstyles.xml. Свойствата за стил на редове и колони на таблици отstyles.xmlсега захранват импортирането на скрити редове/колони и височина на ред/ширина на колона, когатоcontent.xmlпрепраща към тези имена на стилове
Версия 2.88.225
Добавено
OpenODSсега използва ODS стилове за данни, съхранени вstyles.xml. Именуваните стилове на клетки на таблици и стиловете за данни за числа/дата/час отstyles.xmlсега участват в разрешаването на импортирания XLSXNumberFormat, докато автоматичните стиловеcontent.xmlвсе още могат да ги преопределят
Версия 2.88.224
Добавено
OpenODSсега импортира ODS числови формати за дроби. Компонентите на ODSnumber:fractionсега се съпоставят към XLSX формати за дроби като0 ?/??, запазвайки настройките за показване на дроби по време на импортиране
Версия 2.88.223
Добавено
OpenODSсега импортира ODS научни числови формати. Компонентите на ODSnumber:scientific-numberсега се съпоставят към 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сега се съпоставят към XLSX низовеNumberFormatс водещи нули и незадължителни крайни десетични заместители
Версия 2.88.214
Добавено
OpenODSсега импортира ODS групирани числови формати. Стиловете за числови данни, проценти и валута сnumber:grouping="true"сега се съпоставят към XLSX низовеNumberFormatс разделители за групиране в стил#,##0
Версия 2.88.213
Добавено
OpenODSсега запазва ODS валутните символи в импортираните числови формати. Стиловете за валутни данни сnumber:currency-symbolсега използват този символ като XLSX префиксNumberFormat, така че формати катоEUR#,##0.00вече не се свиват до$#,##0.00
Версия 2.88.212
Добавено
OpenODSсега зачита ODS настройките за десетични знаци в основните числови формати. Стиловете за числови данни, проценти и валута сnumber:decimal-placesсега се съпоставят със съответните XLSX низовеNumberFormatкато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 размери на редове и колони. 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сега приемат незадължителни минимални и максимални граници за ширина/височина, така че извикващите програми да могат да напасват съдържанието, като същевременно поддържат оформлението на отчетите в проектните граници
Поправено
- Имена на шрифтове за XLSX HTML форматиран текст. 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 получи рамки на клетки, обхващане на обединени клетки и плътно фоново засенчване, и сега мащабира ширините на колоните надолу, за да се поберат в печатната страница, така че широка автоматично напасната колона вече не избутва таблицата извън страницата. Преди таблицата в RTF нямаше рамки, пропускаше обединените заглавия и можеше да бъде много по-широка от страницата
Версия 2.88.194
Поправено
- Повторното запазване на .xls работна книга, която съдържа текстово поле, вече не я поврежда. Отварянето на XLS файл, който има текстово поле, и повторното му запазване преди дублираше вътрешен чертежен запис, което водеше до срив на Excel при повторно отваряне на файла. Чертежните данни за текстовото поле сега се запазват правилно при двупосочно преобразуване, така че повторно запазената работна книга се отваря нормално
Версия 2.88.193
Поправено
- Защитените с парола .xlsx файлове сега се отварят в Excel. Запазването на работна книга с парола чрез
SaveAsEncryptedпреди създаваше пакет по стандарта ECMA-376 Standard Encryption, чийто AES шифротекст беше генериран неправилно, поради което Excel отхвърляше файла дори с правилната парола. Шифроването AES-128 сега генерира съответстващ на стандарта изход и шифрираната работна книга се отваря в Excel 2007 и по-нови версии с паролата, използвана за запазването й
Променено
- Хардуерно ускорен AES за шифроване на XLSX. Шифърът AES-128 зад стандартното шифроване на XLSX сега използва 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) при запазване, така че панелът File > Info в 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 — Good, Bad, Neutral, Calculation, Check Cell, Explanatory Text, Input, Linked Cell, Note, Output, Warning Text, Heading 1-4, Title, Total и Accent 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 датите и булевите полета се преобразуват в типизирани стойности на клетки по подразбиране; откриването може да бъде изключено, за да се запази всяко поле като texto, запазвайки водещите нули, дългите низове от цифри и текста с префикс
=
Версия 2.88.173
Променено
OpenODSсега импортира видимостта на скритите редове и колони. Стиловете ODStable-rowиtable-columnсъс стойностиtable:visibilityкатоcollapseилиfilterсега се съпоставят къмRowHidden/ColHidden, включително повторени редове и колони
Версия 2.88.172
Променено
- Експортирането на XLSX в HTML сега запазва вертикалното подравняване.
TXLSXWorkbook.SaveAsHTMLиTXLSXRange.SaveAsHTMLизвеждат CSSvertical-alignправила за горно, централно, двустранно (justified) и разпределено подравняване на клетки, когато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>елементи с вградени стилове за шрифт, цвят, курсив (emphasis) и подчертаване
Версия 2.88.168
Променено
- Експортирането на XLSX в HTML сега запазва изричните размери на редове и колони. Когато са включени стилове,
TXLSXWorkbook.SaveAsHTMLиTXLSXRange.SaveAsHTMLзаписват изричните стойностиColWidthчрез<colgroup>и изричните стойностиRowHeightкато CSS стилове за височина<tr>
Версия 2.88.167
Променено
- Експортирането на XLSX в HTML сега пренася коментарите на клетките като подсказки.
TXLSXWorkbook.SaveAsHTMLиTXLSXRange.SaveAsHTMLзаписват коментарите на XLSX в екранирани атрибути<td>title, а експортирането на ниво работна книга разширява границите на таблицата си, за да включи закотвяния само за коментари
Версия 2.88.166
Променено
- Експортирането на XLSX в HTML сега запазва хипервръзките и закотвените изображения.
TXLSXWorkbook.SaveAsHTMLиTXLSXRange.SaveAsHTMLобвиват свързаните клетки в екранирани котви<a>и извеждат закотвените изображения като вградениdata:URI адреси на изображения. Експортирането на ниво работна книга също разширява границите на таблицата си, за да включи котви за хипервръзки и изображения извън запълнените клетки
Версия 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 помощни функции за работни процеси. ПримеритеApiTourза Delphi и C++Builder сега демонстриратWriteRows,ForEachRow,PreviewAutoFilterRows,AutoFilterRowVisible,TXLSXHtmlExportOptionsиOnUserFunctionExзаедно с потоците за създаване на работна книга, експортиране и инспекция при повторно отваряне
Версия 2.88.160
Добавено
OnUserFunctionExдобавя съобразени с контекста персонализирани обратни извиквания за формули.TXLSWorkbook,IXLSWorkbookиTXLSXWorkbookсега могат да получатTXLSUserFunctionContextс индекс на лист, ред и колона, когатоCalculateделегира персонализирана или неподдържана функция на работния лист към приложния код
Версия 2.88.159
Добавено
TXLSXHtmlExportOptionsдобавя конфигурируемо експортиране на XLSX в HTML. Претоварванията наSaveAsHTMLза работни книги и диапазони могат да преопределят заглавието на документа, да приложат CSS клас към таблицата, да пропуснат вградените/подразбиращите се стилове, да потиснат UTF-8 BOM или да изведат фрагмент от таблица без съпътстващия HTML документ
Версия 2.88.158
Добавено
TXLSXWorksheet.AutoFilterRowVisibleиPreviewAutoFilterRowsдобавят предварителна оценка на AutoFilter. Приложенията могат да тестват дали даден ред отговаря на съхранените в работния лист критерии за XLSX AutoFilter или да обхождат филтрираните редове с данни с обратно извикване за видимост, без да променят флаговете за скрити редове
Версия 2.88.157
Добавено
TXLSXWorksheet.WriteRowsдобавя партидно XLSX извеждане по редове. Извикващите програми могат да попълват числен или в стил A1 диапазон ред по ред чрез връщане на масивVariant, с прескачане на цял ред, отмяна и брояч на записаните редове
Версия 2.88.156
Добавено
TXLSXWorksheet.ForEachRowдобавя XLSX сканиране на ниво ред. Обратното извикване (callback) се изпълнява веднъж на зареден ред, съобщава реда плюс първата и последната заредена колона, връща броя на посетените редове и поддържа отмяна
Версия 2.88.155
Променено
OpenODSвече импортира кешираните скаларни резултати от ODS формулни клетки. Когато формула в клетка съхранява числени, булеви стойности, дати или времена безoffice:value-type, импортерът запазва кешираната стойност на клетката, като оставя синтаксиса на ODS формулата непреобразуван
Версия 2.88.154
Променено
OpenODSвече запазва основните числови и датови формати на ODS. Стилизацията на ODS табличните клетки, свързана със стилове на данни за дата, час, число, процент или валута, сега се съпоставя с низове на XLSXNumberFormatкато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 вече подават информация за празни използвани диапазони. Когато съставен в Excel работен лист .xls декларира използван диапазон в
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сега пренасочват отместванията наAutoFilterColumnsColId, когато диапазонът на филтъра се мести, и премахват критериите, които попадат в изтритите колони
Версия 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съхранява диапазоните в ред горе-ляво / долу-дясно, дори когато извикващите програми подават първо крайната клетка, генерирайки стабилни референции като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добавя претоварвания (overloads) за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 запазва създадените в Excel тела на записите
FILESHARING,FILESHARING2,PROT4REVиPROT4REVPASSпо време на отваряне/записване, така че препоръката за достъп само за четене, споделянето и метаданните за защита на редакциите да не бъдат загубени
Версия 2.88.116
Променено
- Демонстрационните проекти ApiTour вече обхващат помощните обекти за XLSX работни книги. Примерите ApiTour за Delphi и C++Builder създават дефинирано име, коментар в работен лист, хипервръзка, диапазон на автоматичен филтър и критерии за автоматичен филтър, като същевременно запазват съществуващите процеси за обратно извикване (callback), замяна на текст и експортиране
Версия 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 path, с типизирано създаване на класически XLS обобщени таблици, редактиране на самостоятелни текстови полета за чертане и зареждане/експортиране/изчистване на полезния товар на XLSM
vbaProject.binплюс инспектиране на анализирани модули
Версия 2.88.112
Променено
- Демонстрационните проекти за Delphi вече включват пример InteractiveFeatures за разширени работни процеси с работни книги. VCL формата създава типизирани класически XLS обобщени таблици (pivot tables), редактира самостоятелни текстови полета за чертане и управлява зареждане/експортиране/изчистване на полезния товар на 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)andTXLSXRange.SaveAsHTML(Stream)експортират само избрания XLSX диапазон като UTF-8 HTML таблица, споделяйки екранирането на HTML рендерера на работната книга, извеждането на основни стилове и обработката на обхвата на обединените клетки
Версия 2.88.107
Добавено
- Работните листове на XLSX сега включват помощни функции за търсене и замяна на текст.
TXLSXWorksheet.FindTextиTXLSXWorksheet.ReplaceTextсканират заредените текстови клетки по редове, пропускат формули и нетекстови стойности и поддържат незадължително съвпадение с чувствителност към регистъра на буквите за работни процеси с шаблони
Версия 2.88.106
Променено
- Флаговете за изглед Window2 в BIFF8 сега запазват персонализираното състояние на мрежови линии и замразени панели. HotXLS сега изчиства
fDefaultHdrкогатоWindow2.icvHdrсъхранява персонализиран цвят на мрежовите линии, запазва съставения в ExcelfFrozenNoSplitпо време на отваряне/запазване и записваfFrozenNoSplitза изходFreezePanes
Версия 2.88.105
Променено
- Праговете на формули в CF12 сега се запазват при двупосочно преобразуване през правилата за лента за данни, цветова скала и набори от икони в BIFF8. Праговите стойности, базирани на формули, се компилират в байтове за лексеми на формули в 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
Добавено
- Интерфейсите за търсене на работен лист, създаване на хипервръзки и избор на множество области сега са по-лесни за използване. Колекциите от листове на класическия 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 класове, котви за хипервръзки или атрибути за заглавия на коментари, като същевременно запазва екранирания показван текст и обхвата на обединените клетки
Версия 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излага полетоicvHdrна Window2, така че запазените работни листове да могат да се отварят отново с избран цвят на мрежовите линии, като същевременно видимостта на мрежовите линии и настройките за печат на мрежови линии остават непроменени
Версия 2.88.80
Променено
- Работните книги на класическия XLS сега могат да задават активния лист по индекс.
IXLSWorkbook.ActiveSheetIndexизлага свойство за активен раздел, базирано на 1, поддържано от полето за активен лист 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се съпоставя с флагаfDspVScrollна Window1, което позволява на запазените работни книги да се отварят със скрита или видима вертикална лента за превъртане
Версия 2.88.72
Променено
- Работните книги на класическия XLS сега могат директно да скриват или показват хоризонталната лента за превъртане.
IXLSWorkbook.ShowHorizontalScrollсе съпоставя с флагаfDspHScrollна Window1, което позволява на запазените работни книги да се отварят със скрита или видима хоризонтална лента за превъртане
Версия 2.88.71
Променено
- Работните книги на класическия XLS сега могат директно да скриват или показват лентата с раздели на листовете.
IXLSWorkbook.ShowSheetTabsсе съпоставя с флагаfDspTabsна Window1, което позволява на запазените работни книги да се отварят със скрити или видими раздели на листове, без да се променя видимостта на работните листове
Версия 2.88.70
Променено
- Работните книги на класическия XLS сега могат директно да задават съотношението на лентата с раздели на работната книга.
IXLSWorkbook.TabRatioизлага стойносттаwTabRatioна Window1, така че извикващите програми да могат да регулират пространството, резервирано за раздели на листове, спрямо хоризонталната лента за превъртане
Версия 2.88.69
Променено
- Работните книги на класическия XLS сега могат директно да задават първия видим раздел на лист.
IXLSWorkbook.FirstSheetизлага стойносттаitabFirstна Window1 като свойство, базирано на 1, так че извикващите програми да могат да избират кой раздел на лист да се появява в левия край, когато Excel отвори работната книга
Версия 2.88.68
Променено
- Работните листове на класическия XLS сега могат да запазват и задават видимостта на символите за структури.
IXLSWorksheet.DisplayOutlineSymbolsсе съпоставя с флага WINDOW2fDspGutsна BIFF, което позволява на запазените листове да скриват символите за структура и групиране в изгледа на прозореца
Версия 2.88.67
Променено
- Работните листове на класическия XLS сега могат да запазват и задават видимостта на заглавията на редовете и колоните.
IXLSWorksheet.DisplayHeadingsсе съпоставя с флага WINDOW2fDspRwColна BIFF, което позволява на запазените листове да скриват номерата на редовете и буквите на колоните в изгледа на прозореца
Версия 2.88.66
Променено
- Работните листове на класическия XLS сега могат да запазват и задават изгледа за показване на формули.
IXLSWorksheet.DisplayFormulasсе съпоставя с флага WINDOW2fDspFmlaна BIFF, така че 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)сканира глобалния поток на работната книга и връща подредени имена на листове от Excel 97-2003 файлове.xls
Версия 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)записва записиDVALиDVв BIFF8, поддържа падащото меню видимо по подразбиране, поддържа вградени списъци, разделени със запетая, и запазва правилата при двупосочни преобразувания на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
Променено
- Разположението на HeaderFooter и HFPicture в BIFF8 сега съответства на текущите правила в MS-XLS. HotXLS запазва създадените в Excel записи
HeaderFooter($089C) за текст на горен и долен колонтитул за четни / първи страници и възпроизвежда отново записитеHFPicture($0866) след размерите на работния лист и обектите за чертане съгласно ABNF на работния лист, така че детайлите на оформлението на страницата оцеляват при двупосочни преобразувания на .xls отваряне/запазване
Версия 2.88.49
Променено
- Форматираните текстови сегменти за коментари сега имат типизиран API.
TXLSComment.TextRunsизлага записитеTXOFormatRunв BIFF8, така че извикващите програми да могат да проверяват или задават граници на шрифта за всеки символ в .xls коментари, докато HotXLS все още запазва базовите байтове на сегментите за безопасни двупосочни преобразувания
Версия 2.88.48
Променено
- Допълнителните SX записи на обобщени таблици сега са изложени чрез типизирания API. HotXLS сега прикрепя заредените записи за обобщени таблици (pivot) на 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
STYLEiLevelза вградени стилове, така че метаданните за стилове RowLevel_1..7 и ColLevel_1..7 на Excel вече не се нулират до стойностите по подразбиране при запазване
Версия 2.88.45
Променено
- Метаданните за дефинирани имена сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега запазва битовете за опции на заредения запис
NAMEна BIFF8 и байтовете за бърз достъп, освен ако дефинираното име не бъде редактирано, така че създадените от Excel метаданни за функции, обекти, процедури, изчислени изрази и двоични имена вече не се изчистват при запазване
Версия 2.88.44
Премахнато
- Маркерите ObProj на работни книги сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега запазва заредените записи
ObProjна BIFF8, дори когато в обектния модел не е изложено VBA хранилище, така че маркерите за VBA проекти на ниво работна книга и метаданните на трети страни вече не се изтриват при запазване
Версия 2.88.43
Променено
- Флаговете за опции на работни листове сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега запазва немоделираните битове на BIFF8
WSBOOLкак флагове за показване на диалогов лист, автоматично прекъсване на страница, прилагане на стилове и показване на улея за структура, като в същото време актуализира съществуващите настройки за напасване към страницата и обобщение на структурата през публичния API
Версия 2.88.42
Променено
- Допълнителните записи с метаданни за работни книги сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега запазва телата на заредените записи
COUNTRY,BOOKBOOL,BACKUP,FNGROUPCOUNT,USESELFSиRECALCIDна BIFF8, вместо да ги пренаписва със стойности по подразбиране, поддържайки стабилни метаданните за съвместимост и изчисления на ниво работна книга
Версия 2.88.41
Променено
- Селекциите на множество области и фокусът на активния панел сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега запазва заредените записи
SELECTIONна BIFF8 и стойността на активния панелPANES, освен ако изборът на лист или панелите не бъдат променени чрез API, така че фокусът на разделения/замразения панел на Excel и селекциите от множество диапазони вече не се свиват при запазване
Версия 2.88.40
Премахнато
- Имената на външни работни книги сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега запазва заредените записи
EXTERNALNAMEна BIFF8, прикрепени към външни записиSUPBOOK, включително DDE/OLE/връзки метаданни и опашки на формули, така че външните имена и дефинициите на връзки вече не се изтриват при запазване
Версия 2.88.39
Променено
- Защитените с парола BIFF8 .xls файлове сега използват и четат записи FILEPASS на RC4 CryptoAPI. HotXLS сега записва метаданни
FILEPASSvMajor=2 в стил Excel 2007/2010 за шифрирани .xls работни книги и чете както наследени RC4 vMajor=1, така и RC4 CryptoAPI vMajor=2/3/4 файлове, така че защитените с парола работни книги вече не се провалят или понижават до по-старата заглавна част за шифроване
Версия 2.88.38
Променено
- Създадените в Excel метаданни за хипервръзки на .xls сега оцеляват при двупосочни преобразувания на отваряне/запазване. HotXLS сега запазва тялото на записа
HLinkна BIFF8 за заредени хипервръзки, освен ако хипервръзката не бъде редактирана, поддържайки стабилни източникаstreamVersion, битовете за опцииhlstmfкакfIcon, данните за moniker и свързаните целеви метаданни при запазвания
Версия 2.88.37
Променено
- Състоянието на прозореца на работната книга сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега чете и запазва позицията, размера, флаговете за видимост/икона на прозореца, първия показан раздел на лист, броя на избраните раздели и съотношението раздел-лента за превъртане на записа
WINDOW1на BIFF8, вместо да ги пренаписва със стойности по подразбиране при всяко запазване
Версия 2.88.36
Променено
- Потребителите на последно запазване в WriteAccess на BIFF8 сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. HotXLS сега чете и запазва тялото на записа
$005C WRITEACCESS, вместо да заменя потребителя на последно запазване на Excel сHotXLS, така че одитните метаданни на работната книга да останат стабилни след запазване
Версия 2.88.35
Поправено
- Авторите на коментари на Excel сега оцеляват при двупосочни преобразувания на .xls отваряне/запазване. Полето
stAuthorна записаNoteна BIFF8 сега се анализира и се предава на модела за бележки за рисуване, вместо да бъде заменено с празен низ, така че авторът в "Създадено от" (Created by) на коментара, записан от Excel, се запазва, когато HotXLS запази работната книга отново
Версия 2.88.34
Променено
- Опциите FOPT на OfficeArt форми сега са изложени чрез ниско ниво списък с опции.
TXLSShape.OfficeArtOptionsпозволява на напредналите потребители да проверяват, задават и изтриват всеки съхранен FOPT PID катоLongWordилиWideString, докато съществуващите API от високо ниво заLine,Fill, цвят и видимост остават непроменени
Версия 2.88.33
Променено
- Допълнителните записи за правила на solver-container в OfficeArt сега се запазват при двупосочно преобразуване. Извън типизирания
msofbtConnectorRule($F012), HotXLS сега запазва наследниците на solver, различни от папки, катоOfficeArtFArcRule($F014) иOfficeArtFCalloutRule($F017), като сурови записи на OfficeArt вmsofbtSolverContainer($F005), така че сложните чертежи в Excel вече не губят връзките на solver, различни от конектори, при запазване
Версия 2.88.32
Променено
- Маркерите ClientData на OfficeArt вече не се дублират след запазване на непознати записи. MS-XLS дефинира
OfficeArtClientData($F011) като маркер с нулева дължина, чийто следващ записObjостава отделен BIFF запис. v2.88.32 разпознава този маркер, вместо да го улавя като неизвестен SpContainer лист, така че анализираните форми извеждат точно един маркер $F011 при запазване, докато деформираните предположения за стил на контейнер остават извън XLS пътя
Версия 2.88.31
Променено
- Правилата за конектори на OfficeArt сега се запазват при двупосочно преобразуване. Създадените в Excel чертежи на .xls съхраняват обвързвания на съединителни линии в
msofbtSolverContainer($F005) с дъщерни записиmsofbtConnectorRule($F012). v2.88.31 анализира и извежда тази двойка $F005/$F012 чрезTMsoConnectorRules, запазвайки началната форма, крайната форма, формата на конектора и местата за свързване при запазване/презареждане. По-ранната одиторска бележка изброяваше $F121, но MS-ODRAW дефинираOfficeArtFConnectorRuleкато $F012
Версия 2.88.30
Променено
- Неразпознатите SpContainer листни записи на OfficeArt сега се запазват при двупосочно преобразуване. Създадените в Excel .xls файлове често вграждат листни Fbt като
msofbtClientTextbox($F00D),OfficeArtFPSPL($F11D) иOfficeArtUDefProp($F122) във всяка SpContainer форма. v2.88.30 улавя неизвестни листа на ниво форма катоTMsoFbtUnknownи ги извежда отново в реда на анализиране между форматаClientAnchorи крайния маркерmsofbtClientDataс нулево тяло - Обхват и проследяване. Други неизвестни листа на ниво чертеж остават отложени; случаят с solver-container на правилото за конектор се обработва от версия 2.88.31. Неизвестните под формата на контейнер, като
msofbtClientData($F011), използван като контейнер вместо като съседен маркер, остават за одитния кръг Част 3
Версия 2.88.29
Добавено
- Поведението на FtLbsData за поглъщане на всичко ограничава обхвата. Съществуващият случай
$0013преопределяRecLen := Len - offs, за да абсорбира всички байтове след заглавната част на FtLbsData в блоба наFObjRec_LBSData, така че подзаписите, появяващи се СЛЕД FtLbsData (обикновено само FtEnd), все още преминават през този механизъм непроменени. Новата интеграция FObjTailRaw е насочена специално към празнината преди FtLbsData, където обикновено живеят FtMacro и ObjLinkFmla. Новосъздадените комбинирани / списъчни кутии чрез Drawing API имат празенFObjTailRaw→ байтово идентичен изход с версия 2.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 във версия 2.88.28, улавяйки 4-байтовата заглавна част + тялото на неизвестния подзапис в
FObjTailRaw. Двата метода AddObj извеждат уловените байтове между тялото на CMO и подзаписа на FtSbs, за да съответстват на подредбата на подзаписите в спецификацията на BIFF8
Версия 2.88.28
Добавено
- Модел на съвместно съществуване на типизирани + сурови данни. За разлика от PictureFrame (версия 2.88.27), който използваше if/else превключване между типизирано и сурово извеждане, Picture комбинира и двете: типизираните полета запазват структурата на API (извикващите програми все още могат да коригират
ftCfValueи др.), докато суровата опашка запазва само неизвестните байтове. Новосъздадените картини чрез Drawing API имат празенFObjTailRaw, така че изходът е байтово идентичен с версия 2.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) subrecords между CMO и FtEnd. За новосъздадени рамки за картини новият код все още извежда тези настройки по подразбиране; за рамки за картини, анализирани от изходен .xls, уловените байтове
FObjTailRawсе извеждат дословно вместо тях, запазвайки съдържанието от изходния файл на FtPictFmla / нетипични FtCf / нетипични FtPioGrbit съдържание през цикъла на запазване
Поправено
- Бележка от разследването — Flush коригира автоматично sz.
TMsoShapeContainer.Flushпренаписва заглавната част за размер на записа Obj по време на коммит чрезData.SetWord(Data.DataLength - 4, 2), което означава, че твърдо кодираните стойностиsz := $1A, които са съществували в HotXLS AddObj имплементациите в продължение на години, в края на краищата не са били грешки на спецификацията — Flush ги коригира автоматично. v2.88.27 все още изчислява sz точно за яснота на изходния код, но поведението по време на изпълнение остава непроменено от тази гледна точка
Версия 2.88.26
Добавено
- Запазването при двупосочно преобразуване на крайни подзаписи в OBJ е разширено към форми на Chart и CheckBox. Версия 2.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. Новосъздадените диаграми и квадратчета за отметка чрез Drawing API все още извеждат стандартен 26-байтов CMO+FtEnd (байтово идентичен с версия 2.88.25), так че съществуващите потребители не виждат промяна в поведението. Формите Picture / ComboBox / ListBox / PictureFrame имат собствено динамично типизирано извеждане на подзаписи, което влиза в конфликт с FObjTailRaw — тяхната интеграция е отложена за бъдещи коммити
Версия 2.88.25
Добавено
- Общо базово улавяне, извеждане само за TextBox (R5-3 първа част). TMsoShapeContainer.ParseObj сега улавя диапазона от байтове между края на тялото на CMO и маркера FtEnd в ново вътрешно поле
FObjTailRaw: TBytes; TMSOShapeTextBox.AddObj вмъква тези байтове между своето CMO извеждане и маркера FtEnd, като размерът на заглавната част на записа Obj е коригиран съответно. Новосъздадените коментари (без изходни байтове) запазват байтово идентичен изход с версия 2.88.24. Други класове форми (Picture / CheckBox / ComboBox / ListBox / Chart) наследяват улавянето, но техните типизирани преопределения AddObj запазват старото поведение на "синтезиране от нулата" — извеждането на сурови байтове за тези типове форми е отложено за бъдещи коммити
Променено
- Крайните подзаписи на записа OBJ сега са запазени в рамките на цикъла на запазване за коментари. Записът Obj в BIFF8 ($005D) свързва поредица от типизирани подзаписи след задължителния CMO ($0015), завършващ с маркер FtEnd ($0000), съгласно MS-XLS §2.4.181. За форми на Note (коментар) крайният блок обикновено е 26-байтов FtNts (§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 до отделни форматиращи сегменти все още е отложен — съществуващият API за единичен WideString коментар остава непроменен
Променено
- Клетъчните коментари с множество шрифтове и цветове сега се запазват при двупосочно преобразуване. Блокът с форматиращи сегменти на записа TXO в BIFF8 (
rgTxoRuns+TxOLastRunсъгласно MS-XLS §2.5.272) носи дефинициите за шрифт и цвят за всеки сегмент, които придават на коментара стил с форматиран текст. HotXLS по-рано отхвърляше целия блок при четене и извеждаше един празен сегмент по подразбиране + LastRun при запис — изглаждайки всяко "Важно!" (Important!), маркирано в червено, или всяка удебелена дума в текста на коментара, в еднообразно форматиране по подразбиране при всяко повторно запазване на HotXLS
Версия 2.88.23
Добавено
- Три нови свойства на TXLSPageSetup.
PrintResolution: LongWord,PrintVResolution: LongWordиCopies: LongWord— всички имат по подразбиране стойностите, които записващият модул преди твърдо кодираше (600 / 600 / 1), така че работните книги, които никога не ги докосват, генерират байтово идентичен изход с версия 2.88.22. Методите за задаване (setters) ограничават стойността доHigh(Word)така че прекомерно голяма стойност да не се обвива при извеждане
Премахнато
- Разделителната способност при печат и броят на копията сега се запазват при двупосочно преобразуване — записът Setup вече е напълно покрит. Три Word полета на записа Setup (
iResна отместване 12,iVResна отместване 14,iCopiesна отместване 32, съгласно MS-XLS §2.4.257) носят изборите на Excel за "Page Setup → Page → Print quality" и "Number of copies". HotXLS по-рано изпускаше и трите при четене и извеждаше твърдо кодирани стойности (600 DPI / 600 DPI / 1 копие), така че всяка настроена от потребителя разделителна способност или брой копия безшумно се връщаха към първоначалните си стойности при всяко повторно запазване на HotXLS
Поправено
- Работата по двупосочното преобразуване на записа Setup е завършена. С тази корекция всяко видимо за потребителя поле на записа Setup ($00A1) на BIFF8 се запазва при двупосочно преобразуване от край до край — размер на хартията / мащаб / първи номер на страница / ширина и височина за напасване към страницата / ориентация / ред на печат / черно-бяло / чернова / печат на коментари / грешки в клетки / разделителна способност / копия. Само двата grbit бита със подсказки за спецификацията (
fNoPls,fNoOrient) остават неизложени, като и двата HotXLS записва като нула, съответствайки на поведението на Excel по подразбиране
Версия 2.88.22
Добавено
- Две нови свойства на TXLSPageSetup.
UseFirstPageNumber: Booleanотразява бита (False = "Auto", по подразбиране);FirstPageNumber: Integerноси стойността iPageStart (по подразбиране 1, ограничена от метода за задаване до диапазона за подписана дума -32768..32767 на спецификацията). HotXLS запазваiPageStartдословно дори когатоUseFirstPageNumberе False, така че превключването между Auto и персонализирано в Excel запазва последната въведена от потребителя стойност
Премахнато
- Персонализираното заглавие "Първи номер на страница" на Page Setup сега се запазва при двупосочно преобразуване. Записът Setup в BIFF8 носи избора за Page Setup → Page → "First page number" на работната книга как две свързани полета: grbit бит 7 (
fUsePage) избира между стойността по подразбиране "Auto" на Excel и изричен начален номер на страница, а подписаната дума на отместване 4 (iPageStart) съдържа тази персонализирана стойност, съгласно MS-XLS §2.4.257. HotXLS по-рано изпускаше и двете при четене и извеждашеiPageStart = 1с изчистен бит, така че въведеното от потребителя "Първи номер на страница: 100" безшумно се връщаше на "Auto" при всяко повторно запазване на HotXLS
Версия 2.88.21
Добавено
- Ново булево свойство TXLSPageSetup.PrintNotesAtEnd. Стойността по подразбиране е
False, съответствайки на поведението по подразбиране на потребителския интерфейс на Excel. Четецът и записващият модул запазват бита дословно (дори когатоPrintNotes = False), така че работна книга с временно деактивирани коментари запазва предпочитанието "в края на листа" (at end of sheet) за моментите, когато потребителят ги активира отново — отразявайки собственото поведение на Excel
Премахнато
- "Печат на коментари в края на листа" изборът сега оцелява в цикъла на запазване. Бит 9 на grbit на записа Setup в BIFF8 (
fEndNotesсъгласно MS-XLS §2.4.257) носи разграничението в падащото меню Page Setup → Sheet → Comments между "Както е показано на листа" (по подразбиране) и "В края на листа". HotXLS вече запазваше PrintNotes (бит 5), за да контролира дали се отпечатват коментарите, но бит 9 беше изпускан при четене и извеждан като нула при запис — така че избраното от потребителя "В края на листа" безшумно се връщаше към "Както е показано на листа" при всяко повторно запазване на HotXLS
Версия 2.88.20
Променено
- Изборът "Задаване на точността, както е показана" на работната книга сега се запазва при двупосочно преобразуване. Записът CalcPrecision в BIFF8 ($000E) носи флага от менюто на цялата работна книга File → Options → Advanced → "Set precision as displayed" съгласно MS-XLS §2.4.35. HotXLS по-рано нямаше случай на диспечер за $000E и TXLSWorkbook.StorePrecision извеждаше твърдо кодиран
1(= запазена пълна точност). Отметнатата от потребителя опция "Задаване на точността, както е показана" безшумно се връщаше към "пълна точност" при всяко повторно запазване на HotXLS — скривайки съзнателното намерение на потребителя, че всяко следващо преизчисляване трябва постоянно да съкращава стойностите на клетките до техните форматирани десетични знаци
Поправено
- Ново булево свойство TXLSWorkbook.UseFullPrecision. Стойността по подразбиране е
True(съответства на стойността по подразбиране на BIFF8 и на потребителския интерфейс на Excel за немаркирано). Задаването му наFalseотразява маркирането на деструктивната опция "точност, както е показана" — самият HotXLS не съкращава нито една стойност на клетка при двупосочното преобразуване, но флагът сега се записва обратно вярно, така че следващото преизчисляване на Excel да го зачете. С тази корекция всеки запис за изчисление в BIFF8 (CalcCount / CalcMode / CalcPrecision / CalcDelta / CalcIter / CalcSaveRecalc) се запазва при двупосочно преобразуване от край до край
Версия 2.88.19
Добавено
- Ново Boolean свойство TXLSWorkbook.RecalcOnSave. По подразбиране е
True(съответства както на стойността по подразбиране в интерфейса на Excel, така и на наследената твърдо кодирана стойност), така че работните книги, които никога не докосват свойството, запазват идентичен на ниво байтове изход с v2.88.18. Setter-ът приема всякакъв Boolean; reader-ът нормализира произволни ненулеви изходни байтове доTrue
Променено
- "Recalculate workbook before saving" полето за отметка вече се запазва при двупосочно преобразуване. Записът BIFF8 CalcSaveRecalc ($005F) пренася булевата стойност за File → Options → Save → "Recalculate workbook before saving" на работната книга, съгласно MS-XLS §2.4.37. HotXLS преди нямаше случай в диспечера за $005F and StoreCalculationSettings излъчваше твърдо кодирано
1— так че деактивираното от потребителя изчисление при запис ("recalc on save") мълчаливо се активираше отново при всяко повторно записване от HotXLS, което всъщност беше от значение за работни книги с ръчно изчисление, където потребителят съзнателно е замразил стойностите на клетките върху диска
Версия 2.88.18
Добавено
- Три нови свойства на TXLSWorkbook.
EnableIteration: Booleanотразява полето за отметка;MaxIterations: LongWordе ограничението за итерации (ограничено до допустимия според спецификацията диапазон 1..32767 от setter-а);MaxIterationChange: Doubleе делтата на сходимост (отрицателна стойност се установява на стойността по подразбиране 0.001 според спецификацията). Стойностите по подразбиране съответстват на стойностите, които writer-ът преди твърдо кодираше, така че работните книги, които никога не докосват новите свойства, произвеждат идентичен на ниво байтове изход с v2.88.17
Променено
- Настройките за итеративно изчисление (активиране + максимален брой итерации + максимална промяна) вече се запазват при двупосочно преобразуване. Записите BIFF8 CalcIter ($0011), CalcCount ($000C) и CalcDelta ($0010) заедно пренасят триото опции на Excel "Enable iterative calculation" (File → Options → Formulas), съгласно MS-XLS §2.4.33 / §2.4.31 / §2.4.32. Нито един от трите нямаше случай в диспечера преди, като StoreCalculationSettings ги излъчваше с твърдо кодирани стойности (изключено / 100 / 0.001). Конфигуриран от потребителя цикъл с 1000 итерации и делта на сходимост 0.0001 мълчаливо се нулираше до "iteration off, 100, 0.001" при всяко повторно записване от HotXLS — което повреждаше формули с кръгови препратки и чувствителни към сходимостта финансови модели
Версия 2.88.17
Добавено
- Режимът на изчисление на работната книга (Manual / Automatic / Auto except tables) вече се запазва при двупосочно преобразуване. Записът BIFF8 CalcMode ($000D) пренася избора на ниво работна книга "Formulas → Calculation Options" съгласно MS-XLS §2.4.36. HotXLS преди нямаше никакъв случай в диспечера за $000D, така че стойността от изходния файл се отхвърляше при зареждане, а writer-ът винаги излъчваше твърдо кодирано
$0001(Automatic). Избран от потребителя режим Manual мълчаливо се връщаше към Automatic при всяко повторно записване от HotXLS — което беше нежелателно за големи работни книги, където режимът Manual се задава съзнателно за по-добра производителност. Новият манипулатор ParseCalcMode съхранява изходната стойност в работната книга и сега StoreCalculationSettings излъчва съхранената стойност вместо константата - Ново свойство TXLSWorkbook.CalculationMode. Свойство за четене и запис
LongWord, приемащоxlCalcManual(0),xlCalcAutomatic(1, по подразбиране) илиxlCalcAutomaticExceptTables(0xFFFF) — три нови константи, експортирани отlxTNC.inc. Setter-ът ограничава непознатите стойности до стойността по подразбиране според спецификацията, така че повреден изходен файл да не може да остави работната книга в недефинирано състояние. Съществуващият код, който никога не докосва свойството, запазва наследената стойност по подразбиране "Automatic", така че предишният изход да бъде идентичен на ниво байтове за работните книги по подразбиране
Версия 2.88.16
Добавено
- Ново свойство TXLSPageSetup.PrintCellErrors. Свойство за четене и запис
LongWord, приемащоxlPrintErrorsDisplayed(0, по подразбиране),xlPrintErrorsBlank(1),xlPrintErrorsDash(2) илиxlPrintErrorsNA(3) — четири нови константи, експортирани отlxTNC.inc. Съществуващите викащи кодове на PageSetup, които никога не докосват свойството, запазват стойността по подразбиране ("displayed"), така че наследеният изход при печат остава непроменен
Премахнато
- Изборът на Page Setup "Cell errors as" вече се запазва при цикъла на записване. Записът BIFF8 Setup ($00A1) пакетира падащото меню в раздела Page Setup → Sheet tab "Cell errors as: displayed / <blank> / <dash> / <N/A>" в битове 10-11 на своята дума grbit като
iErrors, съгласно MS-XLS §2.4.257. HotXLS преди отхвърляше тези битове при четене и ги излъчваше като нула при запис, така че работна книга, която потребителят е конфигурирал да печата#DIV/0!като#N/A, мълчаливо се връщаше към "displayed" след всяко повторно записване от HotXLS. Сега reader-ът декодираiErrorsв ново свойствоTXLSPageSetup.PrintCellErrors, а writer-ът възстановява полето от него
Версия 2.88.15
Добавено
- Шест нови свойства на TMSOShapeTextBox за изрично стилизиране на коментари.
HAlignment,VAlignment,Rotation,LockText,JustLastLineиSecretEditса изложени като свойства за четене и запис на всяка фигура на коментар;AddCommentе по подразбиране left+top+horizontal+unlocked, така че викащите кодове, които не ги докосват, запазват предишния вид
Премахнато
- Подравняването и ориентацията на коментарите на клетки вече се запазват при двупосочно преобразуване. Базовият запис BIFF8 TXO ($01B6) пренася пет типизирани флага в своята дума
grbit(hAlignment, vAlignment, fLockText, fJustLast, fSecretEdit), плюс отделна думаrotза ориентация на текста, съгласно MS-XLS §2.4.329. Reader-ът преди отхвърляше всички тези флагове, а writer-ът фиксирашеgrbitдо твърдо кодирано0x0012(left + top) с ротация винаги 0, така че всеки запис нулираше центриран или завъртян коментар обратно до left+top+horizontal независимо от източника. Сега reader-ът декодира типизираните полета при зареждане, а writer-ът съставяgrbitот тях, така че оформлението се запазва при цикъла на записване и повторно зареждане
Поправено
- Writer-ът на TXO сега разполага reserved4 / reserved5 спрямо границите на полетата в спецификацията. Предишният код излъчваше отмествания 2-9 на базовия запис като два дълги записа (rot + reserved4, след това reserved5); сега writer-ът ги разделя на
Wordrot,Wordreserved4,Longreserved5 — съдържанието на байтовете е непроменено (все още изцяло нули за фигури 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 и шестте reserved / controlInfo байта). Отместване 8 попада в рамките на дългия сегмент reserved5, който винаги е нула при обекти с фигура Note, така че всеки коментар тихо се приплъзваше към защитния резервен вариант, който просто възстановяваше поведението отпреди v2.88.13. Корекцията променя отместването на 10 — дългите коментари сега действително се съединяват в записите Continue, а кратките коментари вече не прихващат запълващ пълнеж в края. Няма друга промяна в поведението извън това, което v2.88.13 винаги трябваше да предостави
Версия 2.88.13
Променено
- Дългите коментари на клетки сега се четат обратно в пълната им дължина. Записът BIFF8 TXO ($01B6) разделя текстовото си тяло между базовия запис и един или повече записи Continue, като броят на символите е публикуван в базовия запис при отместване 8 като
cchText. Предишният четец на коментари прескачаше базовия запис изцяло, третираше DataList[1] като целия текст и спираше дотам — така че коментар, по-дълъг от около 4100 широки символа, мълчаливо се отрязваше, а по-кратък коментар, чийто запис Continue съдържаше запълващ пълнеж в края, прихващаше боклуци накрая. Сега reader-ът консумираcchTextкато меродавния брой символи, обхожда всеки сегмент Continue съгласно MS-XLS §2.4.329 (rgb границата се намира на граница на символ, така че не е необходимо водене на отчетност за частични символи) и спира веднага щом лимитът бъде задоволен, така че блокът с форматиращи сегменти, който следва след текста, никога не прелива в низа. Коментарите с повредени или липсващи базови записи все още се връщат към наследения път "all remaining bytes"
Версия 2.88.12
Променено
- Кешираните низове, по-дълги от ~4100 символа, от формули, връщащи низ, сега се запазват в двете посоки в записите Continue. v2.88.11 свърза страната за четене на записа BIFF8 String ($0207), но консумираше само първото тяло на записа, така че кеширан низ, чиито UCS-2 байтове преливаха лимита на BIFF от 8224 байта и се разливаха в един или повече записи Continue ($003C), мълчаливо се отрязваше. Сега манипулаторът обхожда целия DataList на ниво диспечер: той чете cch и fHighByte от базовия запис, копира тялото, което се побира там, и след това съединява всеки следващ сегмент Continue като сурови байтове съгласно гаранцията за граница на символите на MS-XLS §2.5.293 — XLUnicodeString никога не излъчва повторно fHighByte по средата на низа. Всеки сегмент е ограничен от оставащия бюджет за символи, така че случайно прекалено голямо парче 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 evaluator-ът не може да го възпроизведе. Защитно нулиране в началото на ParseFormula отхвърля всяка остаряла чакаща котва, така че повреден изходен файл с липсващ запис String да не може погрешно да насочи следващ такъв. Записи, по-дълги от 8224 байта, които преливат в сегменти Continue, все още се връщат към изхода от evaluator-а като известно ограничение
Версия 2.88.10
Добавено
- Записите BIFF8 Formula сега запазват при двупосочно преобразуване кешираната стойност, изчислена от Excel. ParseFormula преди напълно прескачаше 8-байтовия полезен товар FormulaValue при отместване 6, така че кешираният резултат от всяка формула в зареден .xls (числа, булеви стойности, грешки, празни стойности) се изхвърляше и HotXLS трябваше да преизчислява всяка клетка чрез собствения си двигател за формули. Когато този двигател не съвпадаше с Excel (неподдържани XLM функции, повредени външни препратки, формули, които двигателят все още не е внедрил), клетката мълчаливо ставаше празна или нула. Сега reader-ът декодира четирите числови / булеви / за грешка / празни варианта съгласно MS-XLS §2.5.133 и ги съхранява в ново поле
TXLSCellRef.FCachedFormulaValue;GetCellValueсе връща към този кеш само когато evaluator-ът се провали, така че новосъздадените формули все още преминават през оценка както преди. Низовият вариант продължава да се пренасочва към evaluator-а, тъй като парсерът за последващия запис String ($0207) все още не е свързан
Версия 2.88.9
Поправено
- Записите BIFF8 Formula с неразрешими стойности сега маркират fAlwaysCalc вместо бита reserved1. Когато HotXLS evaluator-ът не можеше да изчисли формула по време на записване, writer-ът задаваше
grbit = 0x0002— бит 1, който MS-XLS §2.4.127 резервира и указва на четците да игнорират. Excel надлежно го игнорираше, третираше временната кеширана стойност 0 като меродавна и мълчаливо показваше 0 вместо да преизчислява. Сега writer-ът задаваgrbit = 0x0001(fAlwaysCalc, бит 0), така че Excel стартира отново формулата при следващото преизчисление и клетката показва правилния резултат
Версия 2.88.8
Поправено
- PageSetup.PrintTitleColumns / PrintTitleRows сега предизвикват изключение при лоши входни данни. Задаването на което и да е свойство с неправилно оформен низ за диапазон (всичко, което
ColDiapasonToValues/RowDiapasonToValuesне можеха да анализират) преди тихомълком отхвърлянето на присвояването — работната книга запазваше какъвто диапазон Print_Titles вече беше зададен или изобщо нямаше диапазон, а викащият код нямаше как да разбере, че нещо се е объркало. Сега setter-ите предизвикватException.Createс описателно съобщение, указващо проблемната стойност, което съответства на съществуващия стил на предизвикване при пътища за невалиден индекс вTXLSRange
Версия 2.88.7
Добавено
- Добавена е бележка за грешка при втория кръг на одит на спецификацията на BIFF8. Повторната проверка на границите на полетата в [MS-XLS] изясни, че две констатации, маркирани като P2 в първоначалния доклад (
dev-notes/XLS-BIFF8-Spec-Audit-Round2.md), не са действителни грешки: бит 15 в BOF флага за история $000080C9 принадлежи към полето verXLHigh (битове 14-17, стойност 2 = "Excel 2002"), а не към края на reserved1 (битове 19-31); и използването на водещ PtgExp токен от ParseFormula за откриване на споделени / масивни формули съответства на това, което спецификацията подсказва, и ги разграничава правилно чрез следващия запис ShrFmla / Array. Двата елемента вече са анотирани като оттеглени
Премахнато
- Полето на ред miyRw сега остава в рамките на диапазона на спецификацията на MS-XLS. Версиите на Excel преди BIFF8 кодираха "използване на височината на реда по подразбиране за работната книга" чрез прилагане на логическо „ИЛИ“ (OR) с бит 15 в miyRw, а HotXLS пренесе този идиом напред във writer-а на BIFF8, въпреки че MS-XLS §2.4.221 ограничава miyRw до 8192 twips. Модерният Excel излъчва обикновено 255 (12.75 pt по подразбиране) в същия случай и използва бита fUnsynced в grbit, за да сигнализира за ръчни промени, така че трикът с бит 15 караше изхода на HotXLS да се отклонява от меродавните .xls файлове (стойност 32 959 = 0x80FF за "default" технически беше извън спецификацията). Сега writer-ът премахва OR и записва 255 директно; reader-ът все още премахва бит 15 при четене за съвместимост с по-ранни файлове от HotXLS v2.88.6 и по-стари, както и с редки генератори от трети страни, които са копирали идиома на BIFF5
Версия 2.88.6
Поправено
- Макролистовете и VBA модулите вече запазват поредното си място в BoundSheet8. Reader-ът преди отхвърляше записите BoundSheet8, чието поле
dtбеше 1 (макролист) или 6 (VBA модул), така че колекцията HotXLS Sheets не достигаше с тези елементи. Всяка кръстосана препратка XTI в ExternSheet, която сочеше към позиция на лист след макролист по реда на файла, след това се разрешаваше до грешен работен лист на HotXLS след SaveAs. Сега reader-ът добавя временен лист за всеки запис BoundSheet8 и съхранява суровия байтdtв ново свойствоSheet.SheetTypeRaw; writer-ът излъчва обратно оригиналния байт. Записите BOF за макро подпотоци ($0040) също се третират като подпотоци на работни листове по време на анализа, така че клетките в макролистовете се запазват, вместо тихомълком да бъдат абсорбирани в предишния лист
Версия 2.88.5
Премахнато
- Записът BIFF8 Row вече запазва в двете посоки fCollapsed, fExAsc, fExDes и fPhonetic. Преди това reader-ът изпускаше fCollapsed (бит 4 на grbit) — writer-ът го извеждаше от преходите в нивата на структурата (outline-level) на съседни редове, което класифицираше погрешно редове, които изходният файл изрично беше свил или маркирал като граници. Трите най-високи бита (fExAsc при 28, fExDes при 29, fPhonetic при 30) също никога не се четяха и винаги се излъчваха като нула, тъй като writer-ът съкращаваше 4-байтовия grbit до един 16-битов слот ixfe. Сега reader-ът консумира и четирите бита съгласно MS-XLS §2.4.221 and pins fCollapsed как изричен, така че изводът от страна на writer-а вече не презаписва потвърдените от Excel стойности. Writer-ът пакетира ExAsc / ExDes / Phonetic в битове 12-14 на думата ixfe, маскирайки ixfe до допустимия от спецификацията 12-битов диапазон, за да предотврати сблъсък на XF индекс с новите флагове. Странични ефекти от двупосочното преобразуване: дебелите горни / средните долни граници, задвижвани от подсказките ExAsc / ExDes, сега оцеляват при HotXLS SaveAs, а видимостта на фонетичната информация в японските листове спира да се нулира при всеки запис
Версия 2.88.4
Поправено
- Битът fPaged на BIFF8 Window2 сега маркира само активния лист. Предишните издания настройваха
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 процента и т.н.) и персонализиране на цвета на мрежата се връщаха към стойностите по подразбиране след HotXLS SaveAs. Сега reader-ът консумира
icvHdr,wScaleSLVиwScaleNormalсъгласно MS-XLS §2.4.346: мащабирането на активния изглед захранваSheet.Zoom, а стойността за противоположния изглед попада в кеширан слот, така че превключването между Normal и предварителен преглед на прекъсванията на страници (Page Break Preview) в Excel възстановява предишното мащабиране. Writer-ът излъчва активнияSheet.Zoomв съответния слот за изглед и кешираната стойност в другия, плюс запазения цветен индекс на мрежата
Версия 2.88.2
Поправено
- Поправен е операционният код (opcode) на записа BIFF8 HFPicture. Записаните .xls файлове сега излъчват записи за фоново изображение на горен / долен колонтитул с правилния
rt = 0x0866съгласно MS-XLS §2.4.138. Предишните версии използваха0x086C— операционния код за CellWatch — така че Excel се опитваше да анализира вградения OfficeArt BLIP как препратка за наблюдавана клетка и тихомълком изпускаше изображението (понякога отказвайки да отвори работната книга, когато вградените байтове на изображението случайно нарушаваха очакваната 16-байтова структура на CellWatch). Работните книги, които пренасят изображение на горен / долен колонтитул чрез HotXLS, сега запазват изображението непокътнато
Версия 2.88.1
Поправено
- Поправен е операционният код (opcode) на записа 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"/>за всеки набор от цветове за шрифт / запълване / граница / раздел, зададен чрез пътя на индекса на темата (и за цветове на тема, пренесени от анализиран входящ файл .xlsx), но не се записваше част за тема, така че препратките оставаха висящи. Excel толерираше този пропуск, като тихомълком се връщаше към своята вградена тема „Office“, но Office File Validation маркираше всяка препратка като „липсваща част на темата“, а строгият режим на Apache POI отхвърляше работната книга при първото търсене.SaveAsсега излъчва каноничната тема на Office (2007+): цветова схема с 12 слота (системниwindowText/window, четири цвята на Excel по подразбиране, шест акцента, два цвята за хипервръзки), схема на шрифтове Calibri Light / Calibri font scheme, минимално валидна схема на формати (по три записа за запълване / линия / ефект / фоново запълване за всекиCT_StyleMatrix).[Content_Types].xmlполучава съответстващоOverride;xl/_rels/workbook.xml.relsполучава връзкаtheme/theme1.xml, която попада в края на диапазона rid, така че съществуващите отместванияXlsxFirstExternalLinkRidза листове / sst / стилове / vba / externalLinks остават непроменени - Директното присвояване
Sheet.Name := '...'сега също санира и премахва дубликати. Кръг 3 (v2.54.1) добави прилагане на правилата за именуване на Excel вTXLSXSheets.Add(AName), но setter-ът на свойствотоTXLSXWorksheet.Nameбеше суровоwrite FName, така че най-често срещаният път на промяна, който този кръг не покри —lxXlsxExport.pas:122 Target.Name := Source.Nameв двупосочното преобразуване от XLS към XLSX — допускаше всяко име, което източникът на BIFF8 случайно носеше (забранени символи: \ / ? * [ ], дължина > 31, обграждащи единични кавички, резервираноHistory, нечувствителни към регистъра дубликати на съществуващ лист). Setter-ът на свойството сега маршрутизира през нов методSetName, който повтаря същата логика заXlsxSanitizeSheetName+ суфикс' (N)'за премахване на дубликати (нечувствителна към регистъра, изключване на себе си) спрямо колекцията от листове на родителската работна книга. Отделените работни листове (които все още нямат обратна препраткаFWorkbook) прескачат стъпката за премахване на дубликати и само санират —TXLSXSheets.Addще наложи уникалност, когато листът се прикачи. Идемпотентен при вече валидни имена, така чеFSheets.Add(names[i])от страна на четеца да остане чисто двупосочно преобразуване
Поправено
- [MS-XLSX] съвместен одит кръг 4 — - част за тема + setter на име на лист. Две последващи корекции, насочени към проблеми, останали след кръгове 1–3 (v2.51.0 / v2.52.0 / v2.54.1). Нито една от тях не поврежда съществуващо място на повикване; едната разширява поведението при setter, а другата добавя нова, винаги излъчвана част
Версия 2.87.4
Променено
- Споделените формули в XLS сега записват валидно тяло
ShrFmla. Изходът за споделени формули на BIFF8 сега включва изисквания байтcUseпреди споделената анализирана формула, така че работните книги, записани сUseSharedFormulas, вече не изместват потока от токени на формулата с един байт - Метаданните за стил на таблица и филтър в XLS вече съответстват на последното оформление на MS-XLS.
AddTableсега записваLIST12катоList12TableStyleClientInfo, настройва флаговете AutoFilter на таблицата и полето вFeature11и излъчва празните блокове за всяка колонаFeat11FdaAutoFilter, които Excel очаква - Правилата на BIFF8 CF12 за Data Bar / Color Scale / Icon Set сега пропускат забранените полезни товари на DXF. HotXLS следва правилото на MS-XLS, че тези видове CF12 трябва да носят празен блок DXF, като същевременно запазва техните действителни настройки за правила в специфичния за вида CF12 край
Версия 2.87.3
Премахнато
- Метаданните за таблици на работни листове в XLS вече следват оформлението на таблици
Feature11в MS-XLS. Изходът наAddTableза .xls файлове сега записва заглавна част на таблицаFeatHdr11плюс полезни товариFeature11TableFeatureType/Feat11FieldDataItem, премахва наследения маркер за таблица$0867 FeatHdrи съхранява имената на таблици и колони като стойностиXLUnicodeString
Поправено
- Обратното четене на таблици в XLS вече разбира правилното според спецификацията оформление на полетата. HotXLS анализира
TableFeatureTypeимена на таблици, диапазони, състояние на ред за общи суми и надписи на полета, като същевременно запазва резервен вариант за по-стари записи на таблици, генерирани от HotXLS
Версия 2.87.2
Поправено
- Записите за продължение в XLS BIFF8 сега носят правилни базови дължини. Прекалено големите XLS записи, разделени от writer-а, сега актуализират дължината на първия запис до 8224 байта, вместо да оставят първоначалната прекалено голяма дължина в заглавната част на BIFF
- Големите таблици в работни листове на XLS сега използват правилни според спецификацията блокове
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, backlog #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сега се допълват от четирите потока с метаданни на фаза 2\005DataSpaces(Version / DataSpaceMap / DataSpaceInfo / TransformInfo) и OLE Compound File Binary writer-а, който поставя всичко в CFB контейнер, отварящ се в Excel с потребителската парола. Работен процес: викащият код задействаSaveAsEncryptedс непразна парола → HotXLS сериализира работната книга в незащитен .xlsx архив в паметта → шифрова чрез AES-128 CBC с чисто нова произволна 16-байтова сол и стойност за проверка → записва CFB изхода чрезStgCreateDocfile. Отваряне в Excel 2007+: enters password → content opens. Wrong password: rejected.OpenEncrypted(decrypt side) is still a separate backlog item and continues to raiseEXlsxEncryptionNotImplementedwhen handed an encrypted file
Версия 2.86.1
Добавено
- XLSX Standard Encryption — криптографски основи (wave J phase 1, backlog #29). Два нови вътрешни модула внедряват шифроването и извеждането на ключове за записващия път на ECMA-376 Standard Encryption.
lxAES.pasобвива AES на Brian Gladman (свързан от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 префикс за размер + допълване с нули до граница от 16 байта + нулев IV) и §2.3.4.6 двоиченEncryptionInfoсериализатор.TXLSXWorkbook.SaveAsEncryptedвсе още предизвикваEXlsxEncryptionNotImplemented— wave J phase 2 ще добави записващото устройство за OLE Compound File Binary (потоци от контейнери\005DataSpaces) и ще свърже конвейера къмSaveAsEncrypted. Дотогава новите модули са вътрешна библиотечна инфраструктура, на която извикващите не трябва да разчитат
Версия 2.86.0
Премахнато
- QueryTable и запазване на състоянието на външна връзка за данни при двупосочно пътуване (wave I, backlog #28). Създадените в Excel QueryTables и външни връзки за данни (Data → Get External Data from Web / SQL / OLEDB) сега оцеляват при цикъл на запис/отваряне в HotXLS. Преди това четецът на BIFF8 безшумно пропускаше
QsiSXTag($0802),QsiSXTagExt($0810) иDConn($0876), така че метаданните, описващи заявката нагоре по веригата, се изхвърляха при запис и таблицата се деградираше до обикновени стойности на клетките. Четецът сега улавя тези записи като непрозрачни байтове, а записващото устройство ги излъчва обратно в подпотока на работния лист (заедно с блока 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 бяха декларирани като отделни анонимни
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];вместо ръчно да пакетират битово полето SXVDgrbitSub. Изложени са дванадесет типа междинни суми (xlpsDefault, xlpsSum, xlpsCount/CountA, xlpsAverage, xlpsMax, xlpsMin, xlpsProduct, xlpsCountNums, xlpsStdDev, xlpsStdDevP, xlpsVar, xlpsVarP), всеки от които се картографира към един бит съгласно [MS-XLS] §2.4.279. НеобработениятSubtotalMaskостава двупосочен източник на истина — запазените битове 12-15 се запазват при четене/запис. Затваря известното ограничение на вълна H4.3 “конфигурацията row field subtotal SXVD.grbitSub не е налична от API” и завършва последващите действия за пивот вълна H5
Версия 2.84.1
Добавено
- Разширяване на SXLI с множество полета за данни (wave H5.3). Когато пивот таблицата има повече от едно поле за данни И оста на полето за данни съвпада с дадена ос на SXLI (
DataFieldAxisIsRow = True&& row axis, илиDataFieldAxisIsRow = False&& column axis), записващото устройство сега репликира всяка комбинация от декартово произведениеDataFieldCountпъти сiData = 0 .. DataFieldCount - 1, плюсDataFieldCountреда за обща сума, така че всяко поле за данни да получи своя собствена сума. Неприемащата ос остава непроменена. Excel и други четци сега изобразяват пивот таблици с множество полета за данни в оформлението, предвидено от извикващия, вместо да се връщат към предишното приблизително представяне от “singleiData = 0per combination”. Пивот таблиците с единично поле за данни излъчват битово идентичен изход с v2.84.0. Делта компресията (H5.1) сгъва повтарящите се комбинации до ~8 байта на реплика, така че разширяването добавя минимални излишни байтове. Затваря известното ограничение на wave H4.3 “multi-data-field SXLI not correctly expanded”
Версия 2.84.0
Променено
- API за предварителен избор на ос на страницата на пивот (wave H5.2). Типизираният
TXLSPivotFieldсега носи свойствоPageItemIndex, което програмно създадените пивот таблици могат да зададат, за да изберат предварително конкретен елемент от кеша във филтъра на оста на страницата. Стойността по подразбиранеxlPageItemAll(= $7FFD) оставя филтъра на “(All)”, така че извикващите, които никога не присвояватPageItemIndex, се държат битово идентично с v2.83.2. Записващото устройство за SXPI ($00B6) четеField.PageItemIndexвместо твърдо кодираната стойност $7FFD, а типизираният четец сега попълваPageItemIndexот SXPI при Open, така че извикващите да могат да инспектират запазения избор на страница. Затваря известното ограничение на wave H4.3 “page filter caller-pre-selection unavailable from API”
Версия 2.83.2
Променено
- По-малки SXLI записи на пивот чрез делта компресия (wave H5.1). Записващото устройство за пивот сега компресира по метода делта редовите елементи SXLI, използвайки полето cSic на спецификацията — водещите индекси на елементи от кеша на всеки ред, които съвпадат с предишния ред в същия SXLI запис, се сгъват в брояч за споделен префикс и се излъчват само крайните индекси. Типичните SXLI записи за ос на редове (няколко редови полета × десетки елементи) се свиват с 30–60% без промяна в семантиката. Изходът все още се разделя на части, за да остане под ограничението за размер на BIFF записа от 8224 байта. Първият ред на всеки SXLI запис винаги излъчва cSic = 0 (локален за записа, без препратка между записи) и редът за обща сума никога не се компресира чрез делта
Версия 2.83.1
Поправено
- Цветовете на запълване на клетки, шрифт и граници, зададени чрез RGB, вече се пренасят двупосочно при запис/отваряне на .xls. Записващото устройство за BIFF8 XFExt ($087D) излъчваше полето ixfe на всеки запис, използвайки позицията на масива XF в паметта, но съвпадащите записи на клетки на диска записват ixfe, използвайки реда на SaveIndex след съкращаване (post-pruning). Всеки път, когато някой XF по-напред в таблицата беше съкратен по време на запис (типично, когато една клетка мигрира от временен XF към краен XF), ixfe на всеки XFExt се оказваше изместено с броя на съкратените слотове и наситеният цвят, свързан с всяка клетка, се изместваше към съседна клетка при повторно зареждане. Записващото устройство сега разрешава SaveIndex за всеки XF с разширен слот и излъчва съответното ixfe на диска, така че RGB цветовете на клетките, записани от HotXLS — вътрешно запълване, цвят на шрифта, цветове на границите — оцеляват чисто при двупосочен цикъл на запис / повторно зареждане. Записите XFExt за XF, които са били напълно съкратени, сега се пропускат, вместо да се излъчват с висящо ixfe
Версия 2.83.0
Променено
- Редови елементи на пивот + състояние на елемент на страницата (wave H4.3). Програмно създадените пивот таблици сега излъчват SXLI ([MS-XLS] §2.4.275, $00B5) както за редовите, така и за колоните оси, плюс SXPI ($00B6) за оста на страницата. Това осигурява точност на оформлението на изгледа на пивота: четците, различни от Excel, виждат точния ред на показване, предвиден от записващото устройство, големите пивот таблици се отварят по-бързо (Excel не трябва да преизчислява оформлението на редовете от нулата), а филтрите на страниците се запазват с избор по подразбиране "(All)" за всяко поле на страницата
- Изброяване на редови + колони SXLI. Записващото устройство изброява декартовото произведение на елементите от кеша на полетата на осите (най-вътрешното поле варира най-бързо, съвпадайки с оформлението на Excel за вложени редове) и излъчва по един ред на комбинация плюс краен ред за обща сума, маркиран с бита fGrandTotal на nTypes в SXLI. Всеки ред използва cSic = 0 (без делта компресия — по-просто за сметка на няколко допълнителни байта на ред). Изходът се разделя на множество записи SXLI, когато броят на редовете надхвърли ограничението на BIFF от 8224 байта; предпазен лимит от 16384 реда предотвратява неконтролируемо разширяване при патологични входове
- Състояние на оста на страницата SXPI. Излъчва се само когато поне едно поле има Axis = xlpfaPageField. Всеки запис е 10 байта (isxvd + iCache + ipos + objId) с iCache = $7FFD, сигнализиращ "(All)" — интерфейсът на API за предварителен избор на конкретни елементи на страницата е отложен за wave H5. Пивот таблиците без полета за страници не излъчват SXPI (ABNF на работния лист го изброява като незадължителен)
- Затваря известното ограничение на wave H3 "SXLI / SXPI not emitted". В комбинация с H4.1 (формати на числа в DataField) и H4.2 (поток по записи SXDBB), wave H4 затваря и трите известни ограничения в записващото устройство на пивот таблици от wave H3. Пивот таблиците, изградени чрез
IXLSWorksheet.AddPivotTable, сега доставят самодостатъчни кешове с пълни метаданни за оформлението