Poznámky k vydání HotXLS
Historie verzí funkcí HotXLS viditelných pro uživatele, oprav, vylepšení XLS/XLSX, aktualizací exportu, změn kompatibility a změn dokumentace
Nejnovější vydání
- Nejnovější verze: 2.229.0; Datum vydání: 2026-08-03
Verze 2.229.0
Přidáno
TXLSXWorksheet.HeaderFooterImagesnyní vytváří, vyhledává, nahrazuje a odstraňuje typované obrazové sloty pro každou levou, střední a pravou pozici záhlaví nebo zápatí na lichých, sudých a prvních stránkách- Obrázky záhlaví a zápatí zpřístupňují svá surová data, formát, název, bodové rozměry a bodové okraje s přímým načítáním ze souborů PNG, JPEG, GIF, BMP, EMF a WMF
Změněno
- Obrázky sudých stránek a první stránky automaticky povolují odpovídající varianty stránek a udržují požadované kódy polí obrázků, kdykoli je upravován text záhlaví nebo zápatí
Opraveno
- Poznámky listu a obrázky záhlaví nebo zápatí nyní zachovávají nezávislé vztahy VML, pokud sdílejí jeden list
- Excelové obrazové sloty záhlaví a zápatí nyní zachovávají své bajty obrazu, formáty, názvy, rozměry, okraje a vztahy prostřednictvím cyklů otevření a uložení
Verze 2.228.0
Přidáno
- Klasické listy XLS a kolekce tvarů nyní vytvářejí a objevují typované ovládací prvky
TXLSButtonaTXLSRadioButtonvedle zaškrtávacích polí, kombinovaných polí a seznamů - Ovládací prvky formulářů nyní zpřístupňují názvy maker, propojené buňky, vstupní oblasti, stavy zaškrtnutí, plochý nebo 3D vzhled a propojení rádiových skupin prostřednictvím typovaných vlastností
- Definované názvy zpřístupňují
IsMacro, takže vazby maker zachovávají požadovaná metadata názvu sešitu
Opraveno
- Úprava a opakované uložení klasických ovládacích prvků formulářů již neodstraňuje stavy zaškrtnutí, vazby maker, vzorce propojených buněk, zdrojové oblasti ani podporovaná metadata rádiových skupin
- Vymazání zdrojové oblasti kombinovaného pole nebo seznamu nyní odstraňuje serializovaný vstupní vzorec místo obnovení předchozí oblasti při dalším otevření
Verze 2.227.0
Přidáno
LINESTaLOGESTnyní vrací úplná víceproměnná pole koeficientů a volitelné pět řádkové statistické maticeTRENDaGROWTHnyní vrací tvarovaná pole predikcí pro jednoproměnné a víceproměnné vstupy
Změněno
- Aritmetika polí, porovnání, zřetězení, unární negace a procentní operace nyní vysílají skaláry a singleton řádky nebo sloupce při zachování výsledků pro jednotlivé buňky
- Výpočetní závislosti nyní rozbalují vnořené názvy sešitů a listů, vzorcem definované názvy a odkazy na více oblastí s ochranou cyklů vnímající rozsah
Opraveno
- Chyba v jednom prvku pole již neshrnuje úplný výsledek ani nesprávně nepřechází na skalární vyhodnocení
- Vzorcem definované názvy, jejichž závislosti lze vyřešit staticky, již nevynucují zbytečný volatilní úplný přepočet
Verze 2.226.0
Přidáno
- Existující pivotní mezipaměti XLSX a zobrazení pivotních tabulek se nyní načítají do typovaného modelu prostřednictvím vztahů balíčku, včetně záznamů mezipaměti, polí, sdílených položek, seskupování, filtrů, formátů, počítaných definic a rozšíření
TXLSPivotTable.Makenyní vyhodnocuje počítaná pole mezipaměti, počítané položky a počítané členy dat s vazbou názů vnímající závislosti- Rozšířené režimy
ShowDataAspřidávají nadřazená procenta, průběžná procenta a vzestupné nebo sestupné pořadí s platným značením rozšíření XLSX
Změněno
- Generování pivotních výsledků nyní před sestavením seskupených domén aplikuje viditelnost položek, výběry stránek a filtry titulků, dat, agregací a hodnot
- Číselná, datová a diskrétní seskupení, řazení štítků nebo datových hodnot, konfigurované mezisoučty a volitelné materializované řádky nebo sloupce celkových součtů se nyní účastní generování výsledků
Opraveno
- Pivotní filtry nyní používají značení kořenového filtru platné podle schématu a symbolické typy filtrů namísto nejednoznačných číselných hodnot
- Načítání řízené vztahy již nepředpokládá konvenční nebo sekvenční názvy částí pivotní mezipaměti, záznamů mezipaměti nebo pivotních tabulek
Verze 2.225.0
Přidáno
TXLSXWorkbook.ConnectionsaTXLSXWorksheet.QueryTablesnyní poskytují typované vytváření a úpravy metadat externích databází, webu, textu a výsledků dotazů- Parametry připojení zachovávají svůj přesný druh Boolean, celé číslo, číslo s plovoucí desetinnou čárkou, řetězec nebo odkaz na buňku, včetně explicitní nuly, false a prázdných řetězcových hodnot
Změněno
- Otevření a uložení XLSX nyní řeší a zapisuje části připojení a tabulek dotazů prostřednictvím jejich vlastnících relací, synchronizuje tabulky výsledků a definované názvy a zachovává neznámé atributy, podřízené uzly a seznamy rozšíření
- Úpravy řádků a sloupců udržují rozsahy výsledků dotazů zarovnané, zatímco kopírování listů v rámci stejného sešitu a napříč sešity zachovává vlastnictví dotazů a přemapovává identifikátory připojení a konfliktní názvy
Opraveno
- Tabulky dotazů mohou koexistovat se standardními tabulkami, vláknovými komentáři a kontingenčními tabulkami bez kolize identifikátorů relací listu nebo sešitu
Verze 2.224.0
Přidáno
- Klasické listy XLS a moderní listy XLSX nyní poskytují
AddDataTableaDataTablespro datové tabulky What-If s jednou proměnnou pro řádek, jednou proměnnou pro sloupec a dvěma proměnnými
Změněno
- Přepočet sešitu vyhodnocuje každý výsledek datové tabulky v izolovaném vstupním kontextu, včetně nepřímých závislostí vzorců, a zachovává definice společně s mezipamětí výsledků prostřednictvím operací otevření, uložení, kopírování listu a strukturálních úprav řádků či sloupců
Opraveno
- Smazané vstupní buňky What-If nyní vytvářejí výsledky
#REF!a klasický přepočet sešitu navštěvuje každý list místo vynechání prvního listu - Vkládání řádků na začátek klasického listu již nezvyšuje riziko porušení přístupu na platformě Win64
Verze 2.223.0
Změněno
- Zrušení paralelního přímého čtení se nyní šíří aktivními čteními členů ZIP a každým krokem dekomprese místo čekání na další tažení XML
Opraveno
- Přerušení paralelního skenování listu již nečeká na dokončení velkého čtení komprimovaného XML před uvolněním blokovaných pracovníků
Verze 2.222.0
Přidáno
TXLSDirectReader.ParallelBufferMemoryLimitomezuje agregovanou zátěž fronty raw-cell pro paralelní skenování listu, zatímcoParallelPeakBufferedByteszpřístupňuje naměřené maximum pro diagnostiku a testy kapacity
Změněno
- Paralelní přímá čtení nyní streamují položky ZIP listu do XML čteček lokálních pro pracovníka a ohraničených front producer-consumer místo uchovávání kompletní rozbalené XML listu a kompletních vyrovnávacích pamětí buněk pro jednotlivé listy
- Aktivní listy přijímají nezávislé rozpočty front a jsou zpracovávány v oknech o velikosti pracovníka, což zachovává pořadí zpětných volání bez umožnění pozdějším listům vyhladovět list, který se právě vysílá
Opraveno
- Přerušení buněk, selhání zpětných volání a chyby pracovníků nyní probouzejí blokované producenty a konzumenty, kooperativně zastavují tažení XML, připojují všechny pracovníky a ponechávají přímou čtečku znovu použitelnou
Verze 2.221.0
Změněno
- Otevírání XLSX s více listy nyní streamuje každou položku ZIP listu přímo do jejího inflateru a XML čtečky lokálních pro pracovníka místo uchovávání rozbalené XML listu před analýzou
- Souběžné čtečky listů serializují pouze krátká poziční čtení ze zdroje balíčku, takže dekomprese a analýza XML zůstávají paralelní, zatímco přechodná vstupní paměť listu je omezena počtem aktivních pracovníků
Verze 2.220.0
Přidáno
- Generování výsledků kontingenční tabulky nyní provádí všech devět klasických režimů
ShowDataAs, včetně rozdílu, procenta základní položky, procentního rozdílu, běžného součtu, procenta řádku, procenta sloupce, procenta celkem a výpočtů indexu xlPivotBaseItemPreviousaxlPivotBaseItemNextposkytují typované selektory pro sousední základní položky ve srovnávacích výpočtech
Změněno
- Procentuální hodnoty a hodnoty indexu kontingenční tabulky používají mezisoučty řádků, sloupců a celkové součty agregované přímo ze zdrojových záznamů, čímž zachovávají správnou sémantiku průměru, součinu, počtu, rozptylu a směrodatné odchylky bez opětovného procházení zdroje
- Běžné součty se řídí pořadím položek kontingenční tabulky, resetují se nezávisle pro každou skupinu vrstevníků a zachovávají řídké úložiště výsledků pro kontingenční tabulky s vysokou kardinalitou
Opraveno
- Záznamy BIFF8
SXDInyní používají standardní 14bajtové pevné rozložení a zachovávajíShowDataAs, základní pole, základní položku, formát čísla a zobrazovaný název prostřednictvím typovaných čtení, zatímco starší záznamy HotXLS zůstávají čitelné - Datová pole XLSX nyní zapisují indexy kontingenčních polí, mapují selektory předchozí a další na požadované hodnoty OOXML a vysílají základní atributy pouze pro režimy, které je používají
- Chybějící porovnávací buňky zůstávají prázdné, zatímco přítomné nulové jmenovatele vracejí
#DIV/0!namísto záměny s chybějícími daty
Verze 2.219.0
Opraveno
VDBnyní uplatňuje odpisy degresivní metodou ve zlomkových obdobích, přepíná na lineární odpisy, je-li to výhodné, a respektujeno_switch- Nulové faktory, hranice zůstatkové hodnoty, zlomková počáteční období a neplatné rozsahy období nyní odpovídají výsledkům kompatibilním s Excelem namísto zaokrouhlování období a vrácení zjednodušeného přiblížení degresivní metody
Verze 2.218.0
Přidáno
TXLSXWorksheet.Scenariosnyní poskytuje typované vytváření Správce scénářů What-If s pojmenovanými scénáři, aktivními a zobrazenými indexy, rozsahy měnících se buněk, metadaty uživatele a komentáře, stavy uzamčeno a skryto a vlastní hodnoty vstupních buněk- Definice scénářů se nyní řídí kopiemi listů a strukturálními úpravami řádků nebo sloupců, zatímco limity kompatibility s Excelem jsou ověřovány před zápisem neplatných metadat
Opraveno
- Otevírání a ukládání scénářů vytvořených v Excelu nyní zachovává kořenové atributy a vnořené vstupní buňky namísto zploštění hierarchie do ztrátového surového XML
- Prvky listu scénářů, automatického filtru, konsolidace dat, sloučených buněk a fonetiky nyní používají pořadí schématu, takže striktní konzumenti tabulek nevyžadují průchod opravou
Verze 2.217.0
Přidáno
TXLSXWorksheet.IgnoredErrorsnyní poskytuje typované vytváření pro každou standardní kategorii ignorovaných chyb s odkazy na více oblastí, podporou kopírování listů, aktualizacemi strukturálních úprav a cykly otevření/uloženíTXLSXWorkbooknyní zpřístupňuje režim odkazů, přepočet při uložení, plnou přesnost, souběžný výpočet a nastavení ruční souběžnosti vedle svých stávajících možností výpočtu
Opraveno
- Každé nestandardní nastavení výpočtu sešitu nyní nezávisle vytváří a přenází element
calcPrseřazený podle schématu, včetně limitů iterace nakonfigurovaných před povolením iterace - Režimy výpočtu, režimy odkazů, hranice iterace, identifikátory výpočtu a počty ruční souběžnosti nyní odmítají nebo normalizují neplatné hodnoty místo zápisu nejednoznačného stavu sešitu
Verze 2.216.0
Změněno
XMATCHaXLOOKUPnyní provádějí logaritmické vzestupné i sestupné binární vyhledávání na vyžádání, včetně s Excelem kompatibilních hranic pro duplicitní a přibližné shodyXIRRnyní respektuje odhad pomocí střeženého řešiče, který dokáže najít vysoké a na odhad citlivé kořeny, zatímcoXNPVpoužívá kompenzované sčítání a validované vstupy datumů a sazeb- Vyhledávání definovaných názvů XLSX s vysokou kardinalitou nyní používá líný rozsahově uvědomělý hašovací index při zachování serializovaného pořadí, přednosti lokálních názvů a chování první shody
- Zachované části balíčku XLSX nyní alokují svou deklarovanou nekomprimovanou velikost najednou při zachování úplné kontroly délky a CRC
Opraveno
- Neplatné režimy vyhledávání, binární vyhledávání se zástupnými znaky, dvourozměrné rozsahy vyhledávání a neodpovídající návratové vektory
XLOOKUPnyní hlásí chyby vzorce namísto dvojznačných výsledků XIRRaXNPVnyní odmítají neplatné značky peněžních toků, sazby, odhady a datumy, zkracují desetinné seriové číslo datumu a hlásí nekonvergenci namísto vrácení neověřeného středu
Verze 2.215.0
Přidáno
FREQUENCYnyní vrací vertikální pole s jedním výsledkem na přihrádku plus přihrádku přetečení
Změněno
SORTnyní používá stabilní škálovatelné řazení pro řádky i sloupce, zachovává zdrojové pořadí shodných klíčůUNIQUEnyní používá stabilní hašovacím indexem podporované porovnávání pro řádky i sloupce, včetně výsledkůexactly_oncea textu nerozlišujícího velikost písmenPERCENTRANK.INC,PERCENTRANK.EXCaMODE.MULTse nyní efektivně škálují na vstupech s vysokou kardinalitou namísto spoléhání na kvadratická prohledávání
Opraveno
- Volba
by_coluSORTaUNIQUEnyní pracuje se sloupci namísto náhradového chování pro řádky
Verze 2.214.0
Přidáno
- Otevírání XLSX nyní přijímá streamované UTF-16 little-endian a big-endian XML části s značkou pořadí bajtů nebo požadovanou endianově specifickou deklarací, včetně znaků mimo základní množinu roviny (Basic Multilingual Plane)
Změněno
- Obnovování mezipaměti kontingenční tabulky (PivotTable) s vysokou kardinalitou nyní používá deterministické hašovací indexy pro sdílené hodnoty a alokuje matici záznamů najednou, přičemž zachovává pořadí položek podle prvního výskytu a vyhýbá se opakovanému lineárnímu hledání a řádek po řádku rostoucímu prohledávání
- Projektované přímé čtení zahodí buňky mimo vybrané řádky a sloupce před kopírováním surových hodnot, vzorců a formátovaného textu do vyrovnávacích pamětí jednotlivých listů
Opraveno
- Poškozené XML s duplicitními značkami pořadí bajtů, nepodporovanými nebo odporujícími deklaracemi kódování, signaturami UTF-32, lichými délkami bajtů UTF-16 nebo neplatnými náhradními páry je nyní odmítnuto
- Paralelní pracovníci přímého čtení nyní inicializují veškerý stav úlohy před startem, po selhání přestanou přijímat nové úlohy listu, deterministicky znovu vyvolají chybu úlohy s nejnižším indexem a vyčistí každého vytvořeného pracovníka, pokud konstrukce fondu selže
Verze 2.213.0
Přidáno
T.TESTnyní vyhodnocuje nezávislé vzorky buď se sdruženým rovným rozptylem nebo s Welchovým nerovným rozptylem, kromě párovaných vzorků, včetně jednostranných a dvoustranných pravděpodobností
Změněno
- Otevírání XLSX nyní následuje cíle vztahů sešitu, listu a kresby pro listy, sdílené řetězce, styly, motivy, makra, externí odkazy, komentáře, vláknové komentáře, VML, kresby, obrázky, grafy, tabulky a kontingenční tabulky, včetně platných balíčků používajících přejmenované nebo nesouvislé cesty částí
Opraveno
- Poškozené balíčky s duplicitními identifikátory vztahů již neumožňují pozdějšímu nepodporovanému vztahu nahradit první použitelný cíl během obnovy kompatibility
Verze 2.212.0
Změněno
- Sledování závislostí vzorců se nyní lépe škáluje na velkých listech díky indexování závislostí buněk a rozsahů před přestavbami a zneplatněním špinavých buněk
- Velké statistické a regresní vzorce nyní vyhodnocují každou číselnou hodnotu v dodaných rozsazích namísto zastavení u předchozí vyrovnávací paměti pevné velikosti
Opraveno
- Buňky XLSX mimo mřížku listu jsou konzistentně odmítnuty, takže neplatné souřadnice již nemohou aliasovat platné buňky
- Úpravy vzorců již neresetují režim výpočtu sešitu, limity iterací, příznaky úplného výpočtu ani ostatní nastavení výpočtu
- Čtení seznamu blobů nyní explicitně validuje požadované rozsahy a umožňuje platné prázdné řezy na konci proudu
Zabezpečení
- Klasické šifrování XLS nyní pokrývá proudy mezipaměti kontingenční tabulky spolu s daty listu
- Poškozené ocasy rozšíření SST a záznamy centrálního adresáře ZIP jsou odmítnuty dříve, než nadměrná alokace, zkrácená čtení nebo vložené falešné záznamy adresáře v komentáři mohou ovlivnit načítání
Verze 2.211.0
Přidáno
TXLSPivotTable.Makenyní materializuje každé nakonfigurované datové pole s vlastní agregací a rozbaluje hodnoty na řádcích nebo sloupcích podleDataFieldAxisIsRow
Změněno
- Generování výsledku kontingenční tabulky znovu používá hašovacím indexem podporované domény klíčů řádků a sloupců napříč všemi datovými poli, vybírá husté nebo řídké úložiště akumulátoru podle tvaru výsledku, zachovává pořadí položek mezipaměti za devíti klíči a emituje čitelné kombinované štítky pro osy s více poli
Opraveno
Countnyní zahrnuje neprázdné textové, booleovské, chybové, datové a číselné hodnoty mezipaměti, zatímcoCountNumszahrnuje pouze číselné a datové hodnoty,Productvrací nulu pro průsečíky bez číselných hodnot, prázdné hodnoty se již nepočítají jako položky a kontingenční tabulky pouze s hodnotami mohou materializovat své celkové součty bez polí řádků nebo sloupců
Verze 2.210.0
Přidáno
TXLSWorkbookViewernyní vykresluje podmíněné výplně XLSX, barvu a zdůraznění písma, formáty čísel, směrové kladné a záporné datové pruhy, přechody, ohraničení, osy, skryté hodnoty a všechny vestavěné rodiny sad ikonTXLSWorkbookViewer.RefreshConditionalFormatspřestaví připravený agregovaný a prahový stav poté, co volající upraví připojený sešit XLSX na místě
Změněno
- Prohlížeč ukládá do mezipaměti jeden připravený vyhodnocovač podmíněného formátu pro každý aktivní list, znovu ho používá napříč operacemi posouvání, výběru a překreslování a uvolní ho při změně sešitu nebo listu
Opraveno
- Osy datových pruhů na pravém okraji jsou nyní oříznuty uvnitř vlastnící buňky namísto kreslení do sousední buňky
Verze 2.209.0
Přidáno
- Listy XLSX nyní zpřístupňují připravený vyhodnocovač podmíněného formátu, který řeší prioritu pravidla,
StopIfTrue, relativní vzorce, diferenciální styly, hodnocení Top/Bottom, testy nad/průměrem, duplicitní a unikátní hodnoty, relativní datová období, dvou- a tříbarevné stupnice, datové pruhy a sady ikon pro libovolnou buňku
Změněno
- Export HTML a PDF nyní vykresluje odpovídající podmíněné výplně, zdůraznění a barvu písma, formáty čísel, barevné stupnice, směrové kladné a záporné datové pruhy, explicitní osy, glyfy rodin ikon, skryté hodnoty a barvy motivu s řešením nádechu
- Velké domény podmíněného formátu nyní znovu používají zkompilované relativní vzorce bez alokace syntaktického stromu pro každou buňku, streamují statistiky průměru, směrodatné odchylky, minima a maxima, uchovávají seřazené hodnoty pouze pro pravidla hodnocení nebo percentilu, hromadně třídí klíče duplicit v Unicode a používají kandidátní indexy pásem řádků, aby se vyhnuly skenování nesouvisejících pravidel
Opraveno
- Klasická podmíněná pravidla nyní správně načítají typy výrazů a konzistentně vyhodnocují obrácené mezi mezemi, textové predikáty nerozlišující velikost písmen, prázdné buňky a chybové predikáty
Verze 2.208.0
Změněno
- Kompaktní úložiště buněk nyní zapisuje nativní značkované payloads pro řetězce, booleovské hodnoty, chyby a prázdné hodnoty, iteruje buňky v pořadí řádek za řádkem a run-length kóduje po sobě jdoucí buňky stejného typu pro nižší spotřebu paměti a rychlejší sekvenční výstup
- Sdílené řetězce klasického sešitu nyní udržují bajty znaků v jedné alokaci a vytvářejí dekódované řetězcové hodnoty líně, čímž snižují režii alokace pro velké tabulky unikátních řetězců
Přidáno
- Kontingenční tabulky nyní mohou počítat kompletní matici výsledků ze záznamů mezipaměti se seskupením klíčů řádků a sloupců a všemi 11 podporovanými agregačními funkcemi
- Klasické grafy sešitu nyní zpřístupňují typové informace o sériích, osách, legendě a skupině grafu pro pracovní postupy konverze a inspekce
Verze 2.207.0
Přidáno
TXLSPivotCache.RefreshFromSourcebuduje mezipaměť kontingenční tabulky ze zdrojového rozsahu listu: přečte řádek záhlaví pro pojmenování polí, destiluje odlišné hodnoty každého datového řádku do domény sdílených položek daného pole, uzamkne typ pole podle první neprázdné hodnoty a zaznamená index sdílené položky pro každý (záznam, pole) — takže kontingenční tabulku lze vytvořit programově z datového rozsahu namísto spoléhání na ExcelůvrefreshOnLoad. Čtečka hodnot založená na callbacku udržuje pivotní jednotku bez přímé závislosti na listu
Verze 2.206.0
Přidáno
- Nový
TlxCellMMU(jednotkalxCellMMU) implementuje kompaktní úložiště buněk v pořadí řádek za řádkem s run-length kódováním běhů stejně typových a prázdných buněk a značkovým kódem typu bajtu, který slouží zároveň jako selektor šířky dat — takže sloupec malých celých čísel stojí jeden bajt na buňku namísto osmi. Engine kóduje čísla v nejmenší šířce zachovávající hodnotu (int8 / int16 / int32 / 2-desetinné / 4-desetinné škálovaná celá čísla / IEEE double), kompaktně ukládá indexy řetězců, booleovské, chybové a prázdné buňky a zpřístupňuje APIGetValue/SetNumber/SetStringplus dopředný iterátor. Jde o backend nové generace za příznakem funkce pro stávající APITXLSXCells, cílící na 10–25× snížení pracovní sady na hustých listech
Verze 2.205.0
Přidáno
TXLSCustomChart.GetChartInfonyní dekóduje sémantický souhrn ze surového proudu záznamů grafu BIFF — rodina typu grafu (sloupcový, spojnicový, koláčový, plošný, bodový, radarový, prstencový, povrchový, bublinový), počet sérií a přítomnost legendy — takže typ BIFF grafu lze dotazovat programově a konverze BIGH-na-XLSX grafu si může vybrat správnou cílovou rodinu. Bajtové úložiště průchodu zaručující věrnost round-tripu zůstává nezměněno
Verze 2.204.0
Změněno
- Klasická tabulka sdílených řetězců
.xlsnyní zapisuje čistě ASCII řetězce v komprimovaném kódování Latin-1 ([MS-XLS] §2.5.294fHighByte=0, jeden bajt na znak) namísto vždy použít UTF-16, čímž zhruba halveuje velikost SST — a tedy i souboru.xls— pro sešity bohaté na ASCII
Verze 2.203.0
Přidáno
- Nový
TlxCompoundFilečte a zapisuje formát kontejneru Compound File Binary (OLE2) přímo v čistém Pascalu, bez závislosti naole32.dll/ COMIStorage— což otevírá dveře in-memory a multiplatformnímu zpracování.xls. Čtečka pokrývá rozložení v3, se kterým se HotXLS v praxi setkává (hlavička + DIFAT v hlavičce + průchod FAT řetězcem + MiniFAT a mini-stream pro proudy pod 4096 bajty + strom adresářů); zapisovač emituje minimální, ale platný kontejner v3 dostatečný pro výstup HotXLS
Verze 2.202.0
Přidáno
- Stav řazení autofiltru má nyní typový model (
TXLSXSortStates potomkyTXLSXSortCondition) pokrývající řazení podle hodnoty / barvy buňky / barvy písma / ikony, metodu řazení (none / stroke / pinYin), citlivost na velikost písmen, řazení sloupců a vlastní seznamy pro každou podmínku — takže aplikace mohou stav řazení budovat programově namísto úpravy surového XML, zatímco starší průchod neprůhlednýmSortStateXmlstále vyhrává pro soubory, které HotXLS nevytvořil - Dynamické filtry se nyní čtou a zapisují jako typový
TXLSXDynamicFilterType(nad/pod průměrem a směrodatnou odchylkou, dnes/včera/zítra, tento/minulý/příští týden, měsíc, čtvrtletí a rok, kumulativní od začátku roku, Q1–Q4, M1–M12) s volitelnými mezemival/maxVal— otevření sešitu používajícího dynamický filtr ho již nezahazuje při uložení
Verze 2.201.0
Přidáno
- Povrchové a 3D povrchové grafy (
xlsxChartSurface/xlsxChartSurface3D) jsou nyní plnohodnotné typy grafů — zapisované, čtené a round-tripované jako ostatní rodiny grafů - API pro tvorbu automatických tvarů pokrývá praktickou podmnožinu seznamu OOXML přednastavených geometrií — trojúhelníky, kosočtverce, rovnoběžníky, šestiúhelníky, osmiúhelníky, šipky, řezy, bubliny (callouts), uzly vývojových diagramů, hvězdy, srdce, slunce, měsíc, závorky a složené závorky — každý mapuje na svůj správný token
prsta id tvaru[MS-ODRAW], takže vytvořené tvary se vykreslí správně v Excelu (úplný seznam 187 přednastavení byl již zachován při round-tripu průchodem surových ukotvení)
Verze 2.200.0
Opraveno
- Otevření sešitu, jehož autofiltr používá barevný filtr nebo filtr ikon, již nezahazuje tento filtr při uložení —
colorFilteraiconFilterse nyní čtou do typových sloupců (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) a znovu emitují doslovně, namísto ztráty jako nerozpoznané potomky sloupce filtru
Verze 2.199.0
Přidáno
TCondFormatRule.Evaluateodpovídá, zda se pravidlo podmíněného formátování pro danou buňku aktivuje, pokrývá porovnání hodnoty buňky, výrazy vzorců, pravidla text obsahuje/začíná/končí, prázdné a chybové pravidla — základ pro dotazování, které buňky pravidlo aktuálně zvýrazňuje, a pro vykreslení výsledků CF mimo Excel
Změněno
FACTa interní pomocníky faktoriálu nyní používají předpočítanou tabulku 0!..170! namísto přepočítávání O(n) součinu při každém volání, čímž zrychlujíFACT, multinomické koeficienty a cesty Poisson/Binom/chi-kvadrát rozdělení
Verze 2.198.0
Změněno
- Ukládání listu nyní seskupuje buňky do řádků jediným průchodem spočti-a-pak-vyplň namísto rozšiřování indexu každého řádku s realokací na buňku, čímž odstraňuje skrytou kopii O(buněk × buněk-na-řádek) na velkých listech
- Graf závislostí vzorců nyní indexuje své referenční rozsahy podle (list, řádek), takže nasazení špinavé buňky binárně vyhledává kandidátní pásmo namísto skenování každého vzorce při každé změně buňky — čím větší sešit a čím více listů má, tím větší zrychlení při přepočtu
- Průchod buněk v pořadí řádek za řádkem, tříděné sloupci se nyní zpřístupňuje jako
TXLSXWorksheet.BuildRowMajorCellOrder, takže ukládání, schránka, autofiltr a ostatní konzumenti uspořádané po řádcích sdílejí jeden průchod namísto jeho opětovného odvozování
Verze 2.197.0
Opraveno
- Radar, burzovní a koláč-z-koláče/sloupec-z-koláče grafy se již neztrácí, když se sešit
.xlsx, který je obsahuje, otevře a znovu uloží — čtečka grafů nyní rozpozná kontejnerové elementyc:radarChart,c:stockChartac:ofPieChart, které již zapisuje, čímž obnovuje symetrické pokrytí čtení/zápis SUBTOTALs kódy funkcí 101–111 nyní vylučuje hodnoty na skrytých řádcích aAGGREGATEnyní respektuje své kódy volby ignorovat skryté řádky (2, 3, 6, 7), což odpovídá Excelu namísto zacházení s variantami zahrň-skryté a ignoruj-skryté identicky- Volání vestavěné funkce s pevnou aritou s více argumenty, než je deklarováno (například
=SIN(1,2)), nyní centrálně vyvolá#VALUE!namísto přijetí dispečerem
Verze 2.196.0
Opraveno
- Vkládání a mazání řádků a sloupců nyní rozděluje podmíněné formáty hodnoty buňky a výrazu plus validace dat, když upravované cílové oblasti vyžadují různé relativní kotvy vzorců, při zachování nastavení pravidel, přiřazení unikátních priorit podmíněného formátu a zachování agregovaných domén podmíněného formátu
Verze 2.195.2
Změněno
- Export PDF nyní podnastavuje vložený TrueType font přes Windows API
fontsub.dllCreateFontPackage, přičemž ponechává pouze glyfy, které dokument skutečně vykreslil, namísto vložení celého.ttf— typicky zmenší PDF 8–20× pro listy bohaté na Unicode; při nedostupnosti podnastavování přechází na plné vložení
Verze 2.195.1
Opraveno
- Vkládání nebo mazání řádků a sloupců na klasickém enginu
.xlsnyní přepíše každý ovlivněný odkaz vzorce (vzorce buněk a definované názvy), aby odpovídal sémantice Excelu — odkazy pod vložením se posunou, odkazy plně uvnitř mazání se stanou#REF!a částečně se překrývající oblasti se zmenší — namísto ponechání zastaralých souřadnic
Verze 2.195.0
Změněno
- Mazání sloupců tabulky nyní převede každý ovlivněný token strukturované reference na
#REF!napříč vzorci listu, vzorci tabulky, definovanými názvy a sériemi grafu při zachování nesouvisejících referencí a textových literálů
Opraveno
- Smazání celé tabulky již nezanechává kvalifikované strukturované reference ukazující na tabulku, která již neexistuje
- Klonované validace dat nyní zachovávají svůj režim vstupu IME
Verze 2.194.0
Změněno
- Úpravy řádků a sloupců nyní udržují identifikátory sloupců tabulky Excel, názvy, vypočítané vzorce, vzorce součtů, sloupce filtru, rozsahy filtru a podmínky řazení v souladu s upravenou tabulkou
Opraveno
- Vzorce podmíněného formátu a validace dat nyní přebazují relativní a smíšené reference, když mazání odstraní jejich první cílovou oblast
- Stavy řazení listu a tabulky nyní zapisují platné atributy a zahazují podmínky, jejichž rozsahy byly smazány
Verze 2.193.0
Změněno
- Úpravy řádků a sloupců nyní aktualizují komplexní a křížově rozsahové vzorce definovaných názvů, datové rozsahy bublinového grafu a prahy vizuálního podmíněného formátu založené na vzorci
- Bublinové a bodové grafy nyní při opětovném otevření obnovují své rozsahy sérií osy X, osy Y a velikosti bubliny
Opraveno
- Cíle podmíněného formátu a validace dat s více oblastmi nyní posunou každou přeživší oblast nezávisle namísto ponechání úplného seznamu cílů beze změny
- Ukotvení textových polí a objektů WordArt se nyní přesouvají nebo mění velikost s vloženými a smazanými řádky a sloupci
Verze 2.192.0
Přidáno
- Streamované přímé čtení a průchod kurzorem řádků se mohou přihlásit ke strukturovaným formátovaným řetězcům s úplným formátováním běhů, fonetickými běhy a fonetickými vlastnostmi při zachování omezeného úložiště sdílených řetězců
TXLSDirectWriter.WriteRichStringzapisuje formátovaný a fonetický text jako inline nebo deduplikované sdílené řetězce
Změněno
- Deduplikace formátovaných sdílených řetězců nyní rozlišuje formátování běhů a fonetická metadata při zachování běžného interningu řetězců na jeho stávající rychlé cestě
Opraveno
- Fonetický text v inline řetězcích již není zahrnut do zobrazované hodnoty buňky
Verze 2.191.0
Přidáno
TXLSXRange.SetDynamicArrayFormulanyní vytváří nativní vzorce dynamických polí s úplným řetězcem metadat Excel XLDAPR
Změněno
- Kořeny dynamických polí nyní sdílejí jeden deduplikovaný záznam metadat sešitu a křížně sešitové kopie listů nebo rozsahů přemapují tento záznam do cílového sešitu
- Podporovaná metadata dynamických polí zůstávají dostupná, když je zakázáno zachování nepodporovaných částí balíčku, zatímco nesouvisející metadata hodnot jsou stále odstraněna
Opraveno
- Prolévací buňky (spill) dynamických polí již nejsou modelovány jako starší následníci CSE a nahrazení nebo vyčištění kořene již nezanechává zastaralé indexy metadat
- Odstranění konečného kořene dynamického pole nyní odstraní nepoužívanou část metadat, vztah sešitu a položku typu obsahu
Verze 2.190.0
Změněno
- Streamované přímé čtení a průchod kurzorem řádků nyní rozbalují následníky sdílených vzorců do úplných vzorců relativních k buňce při zachování projekce a chování omezené paměti
Opraveno
- Sešity s dynamickými poli nyní zachovávají indexy metadat buněk a hodnot, atributy přepočtu vzorců, vztahy balíčku metadat a nezměněné prefixy budoucích funkcí během cyklů otevření a uložení
- Zakázání zachování nepodporovaných částí již nezanechává visící indexy metadat listu po odstranění části metadat
Verze 2.189.0
Přidáno
- Otevírání sešitů XLSX nyní rozbaluje následníky sdílených vzorců do úplných vzorců pro každou buňku se správnými relativními, absolutními, smíšenými, rozsahovými a kvalifikovanými listem referencemi
Opraveno
- Samouzavírací následníci sdílených vzorců již nezachycují pozdější hodnotu nebo XML vzorce a jejich uložené výsledky přežijí cykly otevření a uložení
- CSE maticové vzorce nyní zachovávají své kotvy a vztahy následníků skrze úpravy struktury řádků nebo sloupců, kopírování úplných rozsahů, duplikaci listů a křížově sešitové kopie listů
- Přiřazení normálního vzorce nebo vyčištění buňky nyní odstraňuje zastaralé členství v CSE matici, takže výpočet nemůže být přesměrován na starou kotvu matice
- Kopírování pouze části CSE matice již nevytváří visící odkazy následníků v cíli
- Kopírování rozsahů nyní vytváří snímek překrývajících se zdrojů a posouvá relativní odkazy vzorců, čímž brání přepsání zdrojových buněk nebo kotev matice před jejich zkopírováním
- Úpravy řádků nebo sloupců, které protínají pouze část CSE matice, jsou odmítnuty namísto tiché změny velikosti nebo odpojení matice
Verze 2.188.0
Přidáno
TXLSDirectReader.SharedStringMemoryLimitomezuje paměť dekódovaných sdílených řetězců a automaticky migruje větší tabulky na mazané při zavření indexované dočasné úložiště s vyrovnávací pamětí hodnot pevné velikostiTXLSRowCursor.SharedStringMemoryLimitzpřístupňuje stejné řízení omezeného úložiště sdílených řetězců pro průchod řádků pouze vpřed
Změněno
- Přímé parsování sdílených řetězců nyní zachovává hodnoty tvořené pouze mezerami, CDATA, XML entity, znaky mimo BMP, prázdné položky a pořadí běhů formátovaného textu, přičemž z zobrazované hodnoty vylučuje text fonetického vodítka
Opraveno
- Otevírání sešitů XLSX nyní zachovává každou položku sdíleného řetězce v pořadí dokumentu, což brání tomu, aby duplicitní text nebo odlišně formátované formátované řetězce zkolabovaly pozdější indexy buněk
- Ukládání sešitů XLSX nyní deduplikuje formátované řetězce podle hranic běhů a vlastností formátování namísto pouze viditelného textu, čímž zachovává odlišné formátování pro buňky se stejnou zobrazovanou hodnotou
Verze 2.187.0
Přidáno
TXLSDirectReader.FirstRowaLastRowomezují streamované čtení na rozsah řádků od 1 a zastaví parsování listu po požadovaném rozsahuTXLSDirectReader.IncludeColumnaClearColumnProjectionposkytují projekci sloupců v konstantním čase, která přeskočí nevybrané buňky před dekódováním hodnoty a dispečováním callbacku
Verze 2.186.0
Přidáno
TXLSDirectWriter.UseSharedStringsmůže deduplikovat opakovaný text do části OOXML sdílených řetězců s přesnými celkovými a unikátními počty, čímž snižuje velikost balíčku pro data bohatá na opakováníTSimpleDomReaderposkytuje kompaktní jednoprchodový XML strom pro dotazy s náhodným přístupem na metadata sešitu a části balíčku s lookupem QName a lokálního názvu citlivým na velikost písmen
Změněno
- Přímé čtení XLSX nyní používá hašováním asistované přesné dispečování elementů, jednoprchodové sklízení atributů a vyhledávání sloupce aktuálního řádku v konstantním čase při zachování streamovaného chování paměti
- Generování XML sdílených řetězců nyní používá vyrovnávací paměť s lineárním růstem, aby se vyhnulo opakovaným kopiím celého řetězce u velkých tabulek odlišných řetězců
Opraveno
- Export CSV vzorce již nepřidává druhé znaménko rovná se, když text vzorce již jedno obsahuje
- Export XLSX do PDF již nezkracuje text buňky pomocí odhadu počtu znaků před rozložením
- Haše názvů čtečky XML nyní sledují instrukce zpracování, atributy a návraty k vlastním elementům bez odhalení zastaralého stavu elementu
Verze 2.185.1
Opraveno
- Vkládání nebo mazání řádků a sloupců nyní upraví lokální a křížově listové odkazy vzorců přesně jednou při zachování názvů funkcí a textových literálů
Verze 2.185.0
Přidáno
TXLSPDFExportnyní poskytuje výběr výstupuFirstPageaLastPageod 1, úplnou logickouPageCounta šest přetíženíCalculatePageCountpro klasické a XLSX rozsahy, listy a sešity bez konstrukce objektů stránky PDFTXLSXWorkbook.SaveWorkbookAsHTMLpublikuje viditelné listy v jednom navigovatelném dokumentu HTML se stabilními kotvami pro každý list, escapovanými titulky a názvy listů a volitelně zahrnuje skryté nebo velmi skryté listyTDataToXLS.BeforeRecordmůže přeskočit záznamy před výstupem řádku aBeforeValuemůže transformovat nebo potlačit hodnoty polí s kontextem datasetu, úrovně detailu, zdrojového pole a exportního sloupceTXLSWorkbookViewerzpřístupňuje komentáře a hypertextové odkazy vybrané buňky, vyvolává událost hypertextového odkazu řízenou aplikací, kreslí indikátory komentářů a XLSX písma, výplně a zarovnání a normalizuje výběr a vykreslování napříč sloučenými rozsahy
Změněno
- Příklad ConversionWorkbench nyní může produkovat výstup PDF a publikuje všechny viditelné listy XLSX pro cíle HTML, zatímco příklad WorkbookViewer demonstruje navigaci ve sloučených buňkách, komentáře a aktivaci hypertextových odkazů
Verze 2.184.0
Přidáno
- Klasické rozsahy XLS a XLSX mohou kopírovat Unicode tabulkový text a stylované HTML do schránky Windows prostřednictvím
CopyToClipboard, přičemž zachovává vzorce, sloučené buňky, odkazy, formátování zobrazení a bezpečně uvozené vložené tabulátory, konce řádků a uvozovky TXLSXWorkbooknyní zachovává vlastní části balíčku dostupné z neznámých kořenových vztahů balíčku, sešitu, listu nebo kresby, včetně řešení kolize ID vztahu, typů obsahu, dětských vztahů, volby komprese a přesných bajtů payloadu;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytesaClearUnsupportedPartszpřístupňují řízení a diagnostiku- Ukládání klasického XLS zpřístupňuje callbacky začátek, práce a konec se zrušením prostřednictvím
OnProgressEx, zatímcoIXLSWorkbookProgressposkytuje strukturovanou diagnostiku se stabilními kódy, závažností, operací, kontextem listu, nativními návratovými hodnotami a detaily výjimky TXLSXWorkbooknyní zpřístupňuje stejné strukturované povrchyDiagnostics,LastDiagnosticaOnDiagnosticpro ukládání, otevírání, přepočet, zrušení a hlášení výjimek- Zpracované moduly VBA nyní podporují úpravy
SourceCodea zápis aktualizovaného komprimovaného proudu modulu zpět přes ukládání klasického XLS, samostatného úložiště VBA a maker-povoleného OOXML při zachování prefixů proudu a nedotčeného obsahu projektu - Klasické listy a kolekce tvarů nyní zpřístupňují typové ovládací prvky formuláře
TXLSCheckBox,TXLSComboBoxaTXLSListBoxs pomocníky pro vytvoření, štítky, inspekcí druhu ovládacího prvku, kotvami buněk, mazáním a objevováním při otevření/uložení TXLSXRange.ApplyFormatPatchmůže selektivně kopírovat komponenty písma, výplně, ohraničení, formátu čísel, zarovnání a ochrany s dlaždicováním zdrojového vzoru při zachování cílových hodnot a nevybraného formátováníTDataToXLSmůže rekurzivně exportovat propojené datasety master-detail prostřednictvímReadDetailTablesaIndentDetailTables, přičemž zachovává aktivní datové odkazy, připojuje každou tabulku detailu pod její záznam master a dědí volby pole, titulky a formátování na každé úrovniTXLSXWorksheet.AddWordArtvytváří text DrawingML ukotvený k buňce s přednastaveným zakřivením plus konfigurovatelnou barvou textu a obrysu a cesta zachování surového ukotvení kresby udržuje úplný tvar WordArt na pozdějších cyklech otevření/uloženíTXLSWorkbookViewerpřidává prohlížeč listu VCL pro klasické a moderní objekty sešitu s načítáním souborů XLS, XLSX, XLSM, šablon a ODS, formátovaným textem buněk, klasickými styly, velikostí řádků a sloupců, záhlavími, vykreslováním mřížky a výběru, posuvníky, výběrem myší, navigací klávesnicí, umístěním buněk, přepínáním listů a událostmi výběru nebo listu- Nové příklady Delphi
FeatureShowcaseaWorkbookViewerdemonstrují stylový tisk PDF, titulky tisku, ruční konce, klasické ovládací prvky formuláře, selektivní záplaty formátu, WordArt, diagnostiku, vytvoření prohlížeče za běhu, načítání souborů, navigaci buněk, přepínání listů a události prohlížeče, s odpovídajícími anglickými příručkami a tématy vývojářské reference
Změněno
- Export klasického XLS a moderního XLSX sešitu, listu a rozsahu do PDF nyní zapisuje každý viditelný list do jednoho dokumentu, přeskočí skryté a grafové listy, vykreslí plné výplně, barvy písma, velikosti písma, tučné a kurzívní zdůraznění, horizontální a vertikální zarovnání, explicitní ohraničení buněk a volitelné mřížky listu, následuje oblast tisku každého listu, velikost papíru, orientaci, okraje, zoom, nastavení fit-to-width, šířky sloupců, skutečné výšky řádků, ruční konce stránky řádků a sloupců, opakované titulkové řádky a sloupce a třídílná záhlaví a zápatí s poli stránka, celkem-stránek, název-listu, datum a čas, stránkuje široké a vysoké rozsahy přes obě osy, emituje nezávislé na lokalitě PDF číselné syntaxe a vkládá vhodný TrueType font plus ToUnicode mapu pro text mimo WinAnsi
- Rozšířené callbacky průběhu XLSX nyní přijímají spolehlivé stavy začátek, práce a konec pro ukládání, otevírání a přepočet, zatímco starší callback zůstává pouze práce a každá operace resetuje předchozí stav zrušení
- Serializace klasického XLS nyní šíří selhání listu, grafu, rozšíření stylu, VBA, proudu ovládání, úložiště a potvrzení výstupu namísto hlášení úspěchu a ukládání souborů připravuje úplný složený soubor před atomickým nahrazením cíle
- Ukládání souborů XLSX a ODS nyní budují kompletní sourozenecký dočasný balíček a atomicky nahradí cíl teprve po úspěšném dokončení, přičemž ponechají stávající soubory beze změny po zrušení nebo selhání
Verze 2.183.0
Přidáno
TXLSDirectWriternyní podporuje opakovaně použitelné handly stylu buněk na úrovni balíčku a klonování stylů bez bufferování řádků listu; stejný index stylu lze aplikovat na libovolný počet buněk nebo znovu použít napříč listy- Přímé styly buněk poskytují 30 formátovacích schopností zahrnujících název písma, velikost, barvu BGR, tučné, kurzíva, přeškrtnutí, obrys, stín, pět režimů podtržení, 19 vzorů výplně s barvami popředí/pozadí, pět nezávisle obarvených hran ohraničení se 14 styly čar a diagonálními směry, vestavěné nebo vlastní formáty čísel, horizontální a vertikální zarovnání, zalamování, shrink-to-fit, odsazení, rotaci textu, prefixy uvozovek a ochranu locked/hidden
- Stylovaná přetížení jsou dostupná pro řetězce, čísla, booleovské hodnoty, datumy, vzorce, chyby a každý typ výsledku uloženého vzorce, což umožňuje exportérům s vysokým objemem vybrat předpřipravený styl podle celočíselného indexu během sekvenčních zápisů
Změněno
- Přímý zapisovač deduplikuje stejné komponenty písma, výplně, ohraničení a formátu čísel při sestavování
styles.xml, přičemž zachovává stabilní indexy stylů buněk již zapsané do proudů listu - Generované tabulky stylů přímého zapisovače nyní zahrnují standardní výchozí výplně
noneagray125před vlastními výplněmi pro přísnější kompatibilitu s OOXML
Verze 2.182.0
Přidáno
TXLSDirectWriternyní zapisuje podmíněné formátování při zachování svého profilu paměti nezávislého na počtu řádků, s osmi operátory hodnoty buňky, pravidly výrazů, pravidly text obsahuje/neobsahuje/začíná/končí, pravidly horních nebo dolních hodnot a procent, pravidly nad nebo pod průměrem, duplicitními a unikátními hodnotami, prázdnými a neprázdnými buňkami, chybovými a nechybovými buňkami, datovými pruhy, dvou- a tříbarevnými stupnicemi a všemi 17 základními rodinami sad ikon- Přímá pravidla podmíněného formátu podporují explicitní priority, vyhodnocování stop-if-true, volby směrodatné odchylky průměru a rovnosti, nahrazení prahů ikon, zobrazení pouze ikon a reverzní zobrazení, viditelnost hodnoty datového pruhu, barvy BGR a diferenciální styly výplně, barvy písma, tučné a kurzíva
Změněno
- Přímý zapisovač deduplikuje ekvivalentní diferenciální styly napříč listy a ukládá pouze pravidla a styly podmíněného formátu, takže spotřeba paměti roste s počtem pravidel spíše než s počtem řádků listu
- Automatické druhy prahů minima a maxima datového pruhu jsou normalizovány na standardní tokeny
minamaxv základním elementu OOXML pro širokou kompatibilitu s tabulkovými procesory
Verze 2.181.0
Přidáno
TXLSDirectWriternyní zapisuje ochranu listu a sešitu bez bufferování dat listu, včetně 15 jemně odstupňovaných oprávnění listu, starších ověřovacích hesel, moderních metadat haše, upravitelných chráněných rozsahů s volitelnými hesly nebo bezpečnostními deskriptory, zámků struktury a okna sešitu, přiřazení surového ověřovatele a mazání ochrany
Opraveno
- Nepodporovaná ukotvení kreseb nyní zachovávají každý uzavírací element při rekonstrukci pro výstup round-tripu, takže kresby obsahující pouze tvary zůstávají dobře formátované po otevření a uložení
- Oprávnění ochrany listu XLSX nyní následují definici příznaku uzamčení OOXML, takže povolené akce zapisují
0, zakázané akce zapisují1a vynechané atributy se znovu otevírají se svými výchozími hodnotami schématu - Starší hesla listu XLSX, chráněného rozsahu a sešitu nyní používají algoritmus ověřovatele kompatibilní s Excelem 16-bit s konverzí ANSI a limitem 15 bajtů
Verze 2.180.0
Přidáno
- Model listu XLSX nyní round-tripuje elementy What-If Scenario Manager (
<scenarios>) a Data Consolidation (<dataConsolidate>). Nové vlastnosti surového XMLScenariosXmlaConsolidateXmlnaTXLSXWorksheetpřenášejí vnitřní obsah doslovně — zapisovač emituje obalové elementy, čtečka parsuje potomky scénářů/konsolidace dat zpět. Soubory pro finanční modelování, které definují scénáře nebo definice konsolidace, je již neztrácí při round-tripu.
Verze 2.179.0
Přidáno
- Nová pomocná funkce
XlsxBuildNumFmtkonstruuje kódy formátů čísel OOXML ze sémantických vlastností —Decimals,Thousands(oddělovač),NegativeRed(červené záporné),CurrencySymbolaPercent. Volající již nemusí ručně psát formátovací řetězce jako"$#,##0.00;[Red]-$#,##0.00"— tvůrce je produkuje z jednoduchých parametrů. Navrženo pro použití sCell.NumberFormatneboWorkbook.NumberFormats.Add.
Verze 2.178.0
Přidáno
- Model listu XLSX nyní round-tripuje kódové jméno VBA (
<sheetPr codeName="..."/>), nezbytné pro VBA interop, kde projekt VBA odkazuje na listy podle kódového jména. Nová vlastnostCodeNamenaTXLSXWorksheet. - Komentáře nyní podporují přepínač viditelnosti
AlwaysShownaTXLSXComment— když je True, bublina komentáře je vždy viditelná (přepínač Excelu "Zobrazit/skrýt komentář" pro jednotlivé komentáře), nejen při najetí myší. - Validace dat nyní round-tripuje atribut režimu IME (
imeMode) naTXLSXDataValidation. Enum 11 hodnot řídí chování vstupní metody CJK při zadávání do buňky (noControl / off / on / hiragana / fullKatakana / atd.). Nezbytné pro soubory s japonskou/korejskou/čínskou lokalitou. - Model listu získává vlastnost
PaneStatepro atribut stavu podokna na<pane>nad rámec stávajícího zpracování zmrazeného režimu — podporuje stavyfrozenSplit(zmrazené-pak-posouvat) asplit.
Verze 2.177.0
Přidáno
- Tři dříve registrované, ale neimplementované funkce listu mají nyní úplný dispatch:
DOLLAR(text formátovaný jako měna),FIXED(text s pevným počtem desetinných míst s volitelným potlačením čárky) aAREAS(počet oblastí v referenci). Dříve byly tyto registrovány vInitFuncHash, ale neměly případ výpočetního enginu — vyhodnocení=DOLLAR(...)tiše vracelo nesprávné výsledky. - Model listu XLSX nyní round-tripuje měřítka zoomu podle typu zobrazení (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), barvu mřížky (sheetView color) a příznaky zobrazení zobrazení listu (showFormulas/showZeros). Nové vlastnosti naTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros. - Směr souhrnu osnovy nyní round-tripuje. Nové vlastnosti
SummaryBelow,SummaryRightaShowOutlineSymbolsnaTXLSXWorksheetřídí, zda se řádky/sloupce souhrnu objevují pod/napravo od detailu a zda jsou symboly osnovy viditelné. Zapisovač emituje<outlinePr>uvnitř<sheetPr>; čtečka ho parsuje zpět. - calcPr sešitu nyní nese atributy
forceFullCalcacalcCompletedvedle existující trojicecalcId/fullCalcOnLoad/calcMode/iterate.
Verze 2.176.0
Přidáno
- Výpočetní engine vzorců XLSX nyní rezolvuje strukturované reference tabulek před kompilací. Nová metoda
ResolveStructuredRefsnaTXLSXWorkbookskenuje text vzorce na vzoryTableName[ColumnSpec]a nahrazuje je konkrétními A1 referencemi rozsahu pomocí kolekceTXLSXTablesešitu. Podporované specifikace zahrnují rozsah dat sloupce (Sales[Qty]), sloupec aktuálního řádku (Sales[@Total]), úplná data (Sales[#Data]/Sales[#All]), záhlaví (Sales[#Headers]) a řádek součtů (Sales[#Totals]). Resoluce běží automaticky uvnitřGetCompiledFormula— existující vzorce nejsou ovlivněny, protože nestrukturované identifikátory jsou ponechány doslovně. Dříve strukturované reference způsobovaly selhání kompilace vzorce.
Verze 2.175.0
Přidáno
- Výpočetní engine vzorců nyní podporuje kompilaci vzorců v referenčním stylu R1C1. Nová metoda
GetCompiledFormulaR1C1naTXLSCalculator(aGetCompiledR1C1naTXLSFormula) přijímá vzorec napsaný v notaci R1C1 (R2C3pro absolutní,R[-1]C[2]pro relativní,RCpro aktuální buňku) a kompiluje ho nejprve převedením na notaci A1 pomocí řádku/sloupce buňky vzorce. Samostatná funkceR1C1ToA1provádí konverzi — detekuje značkyR/C, které jsou samostatné (nejsou součástí názvu funkce jako ROUND), parsuje volitelné offsety v závorkách a produkuje ekvivalentní A1 referenci. Řetězcové literály a identifikátory jsou přeskočeny. Dříve bylo možné kompilovat pouze vzorce ve stylu A1.
Verze 2.174.0
Přidáno
- Výstup AutoFiltru
TXLSDirectWriternyní podporuje sloupce filtru listu a tabulky, hodnotové filtry, prázdné filtry, filtry seskupení datumů, vlastní filtry porovnání, dynamické filtry, horní/dolní filtry, příznaky tlačítek filtru, stavy řazení, podmínky řazení, escapování XML a potlačení duplicitních rozsahů filtru listu/tabulky při streamování souborů XLSX
Verze 2.173.0
Přidáno
- Výstup tabulek
TXLSDirectWriternyní podporuje komentáře tabulek, počty řádků součtů, štítky řádků součtů sloupců, funkce řádků součtů sloupců, vzorce počítaných sloupců, vzorce řádků součtů a escapování XML pro metadata sloupce tabulky při streamování souborů XLSX
Verze 2.172.0
Přidáno
TXLSDirectWriternyní zapisuje části tabulek Excel při streamování souborů XLSX, včetně vztahů tabulek listu, typů obsahu části tabulky, rozsahů tabulek, názvů sloupců, příznaků řádku záhlaví a řádku součtů a příznaků zobrazení vestavěného stylu tabulky bez budování úplného objektového modelu sešitu
Verze 2.171.0
Přidáno
TXLSDirectWriternyní zapisuje validace dat listu při streamování souborů XLSX, včetně seznamu, celého čísla, desetinného čísla, datumu, času, délky textu, vlastního vzorce, libovolnéhosqref, výzvy, upozornění na chybu, allow-blank, rozevíracího seznamu a příznaků zprávy vstupu/chyby bez budování úplného objektového modelu sešitu
Verze 2.170.0
Přidáno
TXLSDirectWriternyní zapisuje definované názvy sešitu a lokální pro list při streamování souborů XLSX, včetně skrytých názvů, komentářů, generovaných absolutních rozsahů, oblastí tisku, řádků titulků tisku, sloupců titulků tisku, kombinovaných titulků tisku, uvozených odkazů s názvem listu, escapování XML a sémantiky nahrazování pro opakované settery názvu tisku bez budování úplného objektového modelu sešitu
Verze 2.169.0
Přidáno
TXLSDirectWriternyní zapisuje hypertextové odkazy listu při streamování souborů XLSX, včetně externích URL, mailto a souborových vztahů, interních umístění listů, zobrazovaného textu, tooltipů, rozsahů hypertextových odkazů na jednu nebo více buněk, normalizace holýchwww.URL, escapování XML a procentuálně kódovaných cílů vztahů bez budování úplného objektového modelu sešitu
Verze 2.168.0
Přidáno
TXLSDirectWriternyní zapisuje metadata tisku a zobrazení listu při streamování souborů XLSX, včetně přepínačů zobrazení mřížky a záhlaví řádků/sloupců, okrajů stránky, textu lichého záhlaví/zápatí, tiskových mřížek a záhlaví, centrování stránky, velikosti papíru a orientace na šířku, rozměrů fit-to-page a ručních konce stránky řádků nebo sloupců bez budování úplného objektového modelu sešitu
Verze 2.167.0
Přidáno
TXLSDirectWriternyní zapisuje metadata rozložení listu při streamování souborů XLSX, včetně výchozích velikostí sloupců a řádků, vlastních šířek sloupců, skrytých řádků a sloupců, sloučených rozsahů, rozsahů AutoFiltru, zmrazených podoken, barev karet listu a zobrazení listu zprava doleva bez budování úplného objektového modelu sešitu
Verze 2.166.0
Přidáno
- Streamované pracovní postupy XLSX nyní zahrnují výpis názvů listů bez skenování listů, výběr listu kurzorem řádků podle názvu, streamování surových číselných datumů, opakované použití přímého zapisovače, zápis chybových buněk a zapisovače uložených výsledků vzorců pro číselné, řetězcové, booleovské, datové a chybové hodnoty
Verze 2.165.0
Opraveno
TXLSDirectReader.ReadStreamnyní obnovuje pozici proudu volajícího po přímém skenování, což odpovídá dokumentované smlouvě proudu a umožňuje aplikacím znovu použít stejný proud po průchodu přímým čtením
Verze 2.164.0
Přidáno
- Exporty datasetu
TDataToXLSnyní podporují seznamy řetězcůIncludeFieldsaExcludeFields. Aplikace mohou whitelistovat exportovaná pole, vynechat citlivé sloupce a udržovat záhlaví, datové řádky, šířky sloupců a callbacky exportu v souladu s vybranou sadou polí
Verze 2.163.0
Přidáno
- Export CSV získává konfigurovatelné uvádění textu v uvozovkách napříč enginy XLS a XLSX.
TXLSWorkbooknyní zpřístupňujeCSVEmitFormulasaCSVQuoteAllStringsaTXLSXWorkbookpřidáváCSVQuoteAllStrings. Při povolení zápis vzorce exportuje text vzorce a textová pole jsou uvedena v uvozovkách, zatímco číselná, datová, booleovská, Null a Empty pole zachovávají běžná pravidla uvádění
Verze 2.162.0
Přidáno
- Engine XLSX získává přerušitelný systém událostí průběhu. Nový callback
OnProgressExnaTXLSXWorkbookse spouští vedle existujícíhoOnProgressse třemi vylepšeními: (1) parametrTXLSXProgressState(ppsBegin/ppsWork/ppsEnd), který ohraničuje každou fázi, takže uživatelská rozhraní vědí, kdy operace začíná a končí; (2) var parametrAbort: Boolean, který umožňuje callbacku zrušit aktuální operaci uprostřed proudu — smyčky čtení/zápisu/výpočtu kontrolujíWorkbook.Aborteda čistě se přeruší; (3) nová fázexlsxProgressExportingpro operace exportu (HTML/RTF/CSV/ODS). Pomocná metodaFireProgresscentralizuje duální dispečování callbacků. PříznakFAbortedje resetován na začátku každé operace nejvyšší úrovně (Open / SaveAs / Recalculate).
Verze 2.161.0
Přidáno
- Model grafu XLSX nyní podporuje čtyři nové prvky grafu pro silnější kompatibilitu s Excelem. Datová tabulka grafu (
c:dTable):TXLSXChartzískává přepínačeShowDataTable+ShowDataTableKeys— při povolení zapisovač emituje element datové tabulky uvnitř oblasti vykreslení, takže Excel vykreslí zdrojová data jako mřížku pod osou grafu. Pruhy nahoru/dolů + čáry hi-low (prvky burzovního/OHLC grafu):TXLSXChartzískáváHasUpDownBars+UpDownGapWidthaHasHiLowLines— zapisovač emitujec:upDownBarsac:hiLowLinesuvnitř elementu grafu (spojnicové/burzovní grafy). Ovládací prvky 3D zobrazení:TXLSXChartzískáváRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— zapisovač emitujec:view3Dna úrovni grafu, když se jakákoli vlastnost 3D liší od výchozí. Dříve nebyly emitovány žádné z těchto elementů, takže grafy vytvořené s datovými tabulkami, prvky burzovního grafu nebo 3D zobrazeními je ztrácely při round-tripu.
Verze 2.160.0
Přidáno
- Odkazy vzorců se nyní upravují automaticky, když jsou řádky nebo sloupce vloženy nebo smazány v enginu XLSX. Metoda
ShiftSheetGeometry— volanáInsertRows/DeleteRows/InsertCols/DeleteCols— nyní projde každou přeživší buňku vzorce a přepíše její A1 odkazy, aby odrážely strukturální změnu. Nový textový skenerXlsxAdjustFormulaRowColRefsdetekuje reference na jednotlivé buňky (A1,$B$2) a reference na rozsahy (A1:B3), posune jejich komponenty řádku/sloupce za bodem vložení a převede smazané reference na#REF!. Relativní i absolutní reference jsou posunuty (odpovídá chování Excelu). Dříve vzorce tiše zůstávaly ukazovat na špatné buňky po strukturální úpravě.
Verze 2.159.0
Přidáno
- Stav řazení autofiltru nyní round-tripuje přes engine XLSX.
TXLSXWorksheetzískává vlastnostSortStateXml, která přenáší surové vnitřní XML elementu OOXML<sortState>(směr řazení sloupce, citlivost na velikost písmen, metoda řazení a každá<sortCondition>s jejím příznakem sestupného řazení + ref). Zapisovač emituje element po<autoFilter>; čtečka parsuje atributy a podmínky řazení zpět. Dříve byl stav řazení tiše zahozen při čtení a nikdy nebyl zapsán. - Nastavení CJK fonetiky/ruby nyní round-tripuje přes engine XLSX.
TXLSXWorksheetzískáváPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) aPhoneticAlignment(left / center / distributed). Zapisovač emituje<phoneticPr>po<sheetData>; čtečka parsuje atributy zpět. Dříve byl fonetický element tiše zahozen při čtení — soubory pro japonský trh ztrácely svá nastavení furigana pomůcky čtení.
Verze 2.158.0
Přidáno
- Engine XLSX nyní round-tripuje tabulku pojmenovaných stylů buněk (
<cellStyles>). Nová třídaTXLSXNamedStyle+ kolekceTXLSXNamedStylesnaTXLSXWorkbookpřenáší úplný povrch:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. Zapisovač emituje jeden<cellStyle>na položku, když je kolekce neprázdná; čtečka je parsuje zpět. Dříve zapisovač natvrdo kódoval jednu položku"Normal"a čtečka zahazovala všechny pojmenované styly, takže soubory se styly "Good"/"Bad"/"Total"/vlastně pojmenovanými ztrácely tyto názvy při round-tripu.
Verze 2.157.0
Přidáno
- Engine XLSX nyní round-tripuje úplný element
<calcPr>, nejen přepínače iterativního výpočtu.TXLSXWorkbookzískáváCalcId(identifikátor výpočetního enginu, který Excel používá k rozhodnutí, zda jsou uložené hodnoty zastaralé),FullCalcOnLoad(vynutí, aby Excel provedl úplný přepočet při otevření — kritické pro sešity produkované ne-Excel enginem) aCalcMode(auto / manual / autoNoTable). Zapisovač emituje odpovídající atributy na<calcPr>; čtečka je parsuje zpět. Dříve byly zpracovávány pouzeiterate/iterateCount/iterateDeltaa zbytek byl tiše zahozen.
Verze 2.156.0
Přidáno
- Vyhodnocovač vzorců nyní implementuje 37 funkcí listu, které byly dříve registrovány (ptg přiřazen v InitFuncHash), ale neměly implementaci dispatchu — propadly do
#NAME?. Nové implementace zahrnují pět rodin funkcí: Regrese (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Amortizace (SLN,SYD,DB,DDB,VDB), Popisná statistika (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Pole párově (SUMXMY2,SUMX2MY2,SUMX2PY2) a Kombinatorika/Matematika (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Regresní funkce používají řešič metodou nejmenších čtverců; amortizační funkce implementují metody lineární, součtu číslic roků a klesajícího zůstatku; funkce popisné statistiky počítají průměrnou absolutní odchylku, špičatost, šikmost, geometrický/harmonický/ořezaný průměr; a párové funkce počítají součet čtvercových rozdílů mezi dvěma stejně velkými rozsahy. Nový pomocníkCollectRangeValuesnaTXLSCalculatorextrahuje číselné hodnoty z argumentů rozsahu pro statistické funkce.
Verze 2.155.0
Přidáno
- Vyhodnocovač vzorců nyní podporuje pět dalších statistických a inženýrských kompatibilních názvů:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTaF.TEST.ERFCdoplňuje existující sérii chybových funkcí,BINOM.INVprohledává práh binomického CDF,CHI.INV.RTaliasuje inverzi pravostranného chi-kvadrátu aF.TESTvrací dvoustrannou p-hodnotu rozptylu vzorku
Verze 2.154.0
Přidáno
- Vyhodnocovač vzorců nyní rezolvuje křížově sešitové reference přes nový callback
OnGetExternalValuenaTXLSCalculator. Když 3D referenční rozsah ukazuje do externího sešitu ([1]Sheet1!A1), vyhodnocovač směruje přes callback namísto vrácení#REF!. Engine XLSX propojuje tento callback naGetExternalCellValue, který mapuje index SupBook + index listu na odpovídající mezipaměť<sheetDataSet>TXLSXExternalLinka dekóduje uloženou hodnotu buňky podle jejího OOXML atributu typu (číselný / booleovský / řetězec / chyba). Dříve křížově sešitové vzorce vracely#REF!nepodmíněně; callbacková infrastruktura nyní umožňuje jakémukoli enginu (BIFF8, XLSX nebo vlastní hostitel kalkulačky) dodávat externí hodnoty. - Vyhodnocovač vzorců nyní provádí elementové vysílání polí na binárních operátorech (
+/-/*///^). Když je kterýkoli operand 1D nebo 2D variantní pole (např. výsledek maticové funkce, proliitý rozsah nebo operand CSE matice), operátor je aplikován element po elementu; skalární operand je vysílán na každý element operandu pole. Nový pomocníkApplyArrayBinaryOpzpracovává validaci tvaru, skalární vysílání a propagaci dělení nulou. Starší skalární aritmetika je nezměněna — cesta pole se aktivuje pouze, když je alespoň jeden operand variantní pole. - Vyhodnocovač vzorců nyní rozpoznává funkci
TABLE(What-If Analysis DataTable). Excel ukládá datové tabulky jako CSE maticové vzorce, jejichž tělo jeTABLE(rowRef, colRef); dříveTABLEnebyl rozpoznán a propadl do#NAME?. Funkce je registrována se syntetickým ptg (ftabTABLE = 4232), takže round-tripuje přes kódování vzorce BIFF8, a při vyhodnocení vrací zástupnou hodnotu (0) — skutečné výsledky jsou předem vypočítány Excelem a uloženy jako hodnoty buněk v mezipaměti, takže HotXLS znovu nevyhodnocuje logiku substituce.
Verze 2.153.0
Přidáno
- Typový model kontingenční tabulky nyní nese typové vlastnosti osy stránky (Hier / Caption / Name), rozsah automatického řazení a hooky round-tripu surového XML pro
<formats>a<extLst>potřebné pro plnější kompatibilitu s Excelem.TXLSPivotFieldzískáváPageHier/PageCaption/PageName(F16 — název hierarchie OLAP + popisek osy stránky + zobrazovaný název) aAutoSortScope(F20 — reference rozsahu A1 připínající buňky, které Excel používá k automatickému řazení položek pole);TXLSPivotTablezískáváFormatsXml/ExtLstXml(F17 — round-trip surového vnitřního XML pro blok přepsání CF / formátu čísel<formats>a blok slicer / timeline / x14<extLst>, emitovaný doslovně při nastavení, takže round-trip je bezpečný i napříč verzemi enginu). Zapisovač XLSX emituje odpovídající atributy<pageField hier=... cap=... name=.../>, potomka<autoSortScope><pivotField>a bloky<formats>+<extLst>před uzavíracím sentinel. - Sledovač vzorců nyní zaznamenává snímky zásobníku operandů pro každý krok, což umožňuje skutečný krokový debugger "Vyhodnotit vzorec".
TXLSFormulaStepzískáváStepKind(push / reduce / function),StackBefore/StackAfter(snímky zásobníku operandů oddělené čárkou v momentě, kdy každý krok začal / skončil) aTokenStart/TokenEnd(1-založený znakový rozsah připínající krok zpět ke zdrojovému vzorci).TXLSFormulaTracerzískáváTraceReversed(vrací stejné kroky v opačném pořadí vyhodnocování — užitečné pro uživatelské rozhraní krokování zpět, které prochází od konečného výsledku k původním operandům) a vlastnostStepCount. Dříve sledovač zaznamenával pouze Depth / Source / Expression / Value bez stavu zásobníku. - Export HTML nyní vkládá obrázky pro jednotlivé buňky přes nový callback
OnCellImagenaTXLSHTMLExporta novou volbuxhImages. Když je volba nastavena a callback propojen, exportér se implementátora ptá na fragment<img>každé buňky (typicky Base64 data-URI) a připojí ho za text buňky. To odděluje exportér od úložiště obrázků BIFF8 enginu XLS (které žije v záznamu MsoDrawing pro každý list), takže exportér nemusí sám parsovat ukotvení. Export HTML enginu XLSX již obrázky vkládal; toto zavírá mezeru pro engine XLS. - Import RTF nyní aplikuje znakové vlastnosti (tučné / kurzíva / podtržení / přeškrtnutí / velikost) z řídicích slov RTF na písmo cílové buňky.
TXLSRTFImportsleduje\b/\i/\ul/\strike/\fsnapříč dokumentem a tlačí formátování dominantního běhu do XF buňky při potvrzení. Nová vlastnostImportCharFormat(výchozí True) přepíná chování; nastavte False pro obnovení staršího importu pouze textu. Buňky s více běhy se zhroutí na jedno XF (vyhraje poslední aktivní běh), protože API buněk enginu XLS je na úrovni buněk, nikoli na fragment — ale to je mnohem lepší než zahození veškerého formátování, což dělal starší importér. - Nová třída
TXLSHTMLImportparsuje HTML tabulky do buněk listu. Projde první<table>ve zdroji, emituje jeden řádek listu na<tr>a jednu buňku na<td>/<th>. Respektujecolspan/rowspan(sloučení ve stylu Excelu), odstraní značky uvnitř buňky (zhroutí vnořené formátování na prostý text), dekóduje pět standardních znakových entit (&/</>/"/'/ ) a číselné formy&#NNN;/&#xNN;a převede čisté číselné řetězce na Double, takže importované tabulky zůstávají počítatelné. Navrženo pro výstup, který sám HotXLS produkuje (SaveAsHTML), plus obecné tabulky HTML v kvalitě kopírovat-vložit; není to úplný parser HTML5.
Verze 2.152.0
Přidáno
- Tabulky XLSX nyní zachovávají metadata součtů na úrovni sloupců a vzorce tabulek.
TXLSXTablezpřístupňujeColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]aColumnTotalsRowFormulas[];SaveAsemituje odpovídající XMLtotalsRowFunction,totalsRowLabel,calculatedColumnFormulaatotalsRowFormulasloupce tabulky,Openje čte zpět a klony tabulky je zachovávají
Verze 2.151.0
Přidáno
- Typový model kontingenční tabulky nyní nese kolekci filtrů pro každé pole, přepínač vícenásobného výběru, povrch fieldGroup discretePr + groupItems a model počítaných položek / počítaných členů potřebný pro plnější kompatibilitu kontingenční tabulky.
TXLSPivotFieldzískává typovou kolekciTXLSPivotFilters(každá položka neseFilterTypenapříč 80členným OOXML enumemST_FilterType— rodiny count / percent / sum / caption / value / date — plusValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), přepínačMultipleItemSelectionAllowed(F9) a kolekciTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldzískáváDiscreteIndices[]+AddDiscreteIndexaGroupItemLabels[]+AddGroupItempro bloky fieldGroup discretePr + groupItems (F13).TXLSPivotTablezískává kolekciTXLSPivotCalculatedMember(F14). Zapisovač XLSX emituje odpovídající<pivotField multipleItemSelectionAllowed="1">, blok<filters><filter .../>pro každé pole, element<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, blok<calculatedItems>pro každé pole a blok<calculatedMembers>na úrovni tabulky — takže programově vytvořené pivoty s filtry / vícenásobným výběrem / seskupováním / počítanými položkami round-tripují.
Verze 2.150.0
Přidáno
- Definované názvy nyní udržují svůj text vzorce platný, když je list, na který odkazují, smazán nebo přejmenován. Smazání listu přepíše každý kvalifikátor
SheetN!uvnitř vzorce definovaného názvu na#REF!(odpovídá chování Excelu); přejmenování listu přepíše kvalifikátor na nový název. Dříve text vzorce stále ukazoval na neexistující název listu, který by Excel pak označil jako přerušený odkaz při opětovném otevření. - Typový model kontingenční tabulky nyní nese pořadí řazení na úrovni pole a přepínače rozložení plus atributy rozložení / zobrazení na úrovni tabulky potřebné pro plnější kompatibilitu rozložení kontingenční tabulky.
TXLSPivotFieldzískáváSortType(manuální / vzestupné / sestupné),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTablezískáváCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesplusRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissinga pár rozložení osy stránkyRowPageCount/ColPageCount. Zapisovač XLSX emituje odpovídající atributy<pivotField sortType=... compact=... outline=...>a<pivotTableDefinition indent=... outline=... showEmptyRow=...>a element<location rowPageCount=... colPageCount=.../>, takže programově vytvořené pivoty nesou uživatelem nastavené rozložení namísto výchozích hodnot Excelu. - Nová metoda
FormulaIsVolatilenaTXLSWorkbookhlásí, zda by vzorec vynutil přepočet při každém průchodu výpočtem — tj. volá nestálou funkci (NOW / RAND / TODAY / OFFSET / INDIRECT) nebo nese neřešitelnou referenci. Sonda sdílí stejný extraktor závislostí, jaký používá engine přepočtu, takže odpověď odpovídá tomu, coRecalculateskutečně dělá. Volající ji mohou použít k označení buněk pro ověřovací uživatelské rozhraní, k naplnění sady nestálých prvků výpočetního řetězce na zcela novém sešitu nebo k přeskočení ukládání výsledku čerstvě zadaného vzorce do mezipaměti.
Verze 2.149.0
Přidáno
- Mezipaměti kontingenční tabulky lze nyní obnovit ze zdrojového rozsahu programově. Nová metoda
RefreshPivotCache(ACacheId)naTXLSXWorkbookznovu naskenuje zdrojový rozsah mezipaměti, přestaví doménu sdílených položek pro každé pole (znovu deduplikuje hodnoty a znovu odvodí meze pro každý typ) a přepíše indexy položek pro každý záznam. Dříve se HotXLS spoléhal na natvrdo kódovaný příznakrefreshOnLoad="1"a odkládal veškerou práci obnovy na Excel při dalším otevření; programové pipeline mohou nyní obnovovat v procesu.
Verze 2.148.0
Přidáno
InsertColsna enginu XLSX nyní dědí šířku sloupce od svého levého souseda, což odpovídá výchozímu chování Excelu pro "vložit sloupec". Dříve vložený sloupec přebíral výchozí šířku sešitu, což produkovalo viditelnou mezeru věrnosti po opětovném otevření.- Engine XLSX získává pomocníky pro pohodlné sbalení osnovy
ToggleColGrouped/ToggleRowGroupednaTXLSXWorksheet, které projdou stromem osnovy a sbalí nebo rozbalí skupinu na dané úrovni. Příznaky sbalení samy o sobě již round-tripovaly; toto přidává chybějící pohodlné API projdi-strom.
Verze 2.147.0
Přidáno
- Export HTML nyní emituje kotvy
<a name>u buněk, které jsou cíli interních hypertextových odkazů, takže hypertextové odkazy#SubAddressse rezolvují správně, když na ně čtečka klikne. Dříve byly odkazy emitovány, ale cíle neměly kotvy, takže interní skoky se rezolovaly na nic. - Export CSV získal vlastnost
CSVEmitFormulasnaTXLSXWorkbook. Při True buňky vzorce exportují svůj text vzorce (=SUM(A1:A2)) namísto vypočítané hodnoty — užitečné pro ladění a pro pipeline, které znovu importují do jiného enginu. - URL externích hypertextových odkazů jsou nyní procentuálně kódovány při zápisu (
XlsxEncodeHyperlinkUrl): mezera, lomené závorky, uvozovky, složené závorky, roury, zpětná lomítka, stříšky a zpětné uvozovky jsou kódovány jako%XXv atributu<Relationship Target="..."/>, takže se soubor otevírá správně v každém prohlížeči. Existující procentuálně kódované sekvence (%20) jsou zachovány tak, jak jsou. - Informace o stylu kontingenční tabulky nyní nese úplný povrch
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnnaTXLSPivotTable. Zapisovač XLSX emituje odpovídající element, takže programově vytvořené pivoty nesou uživatelem zvolený styl pruhování namísto natvrdo kódovaného výchozího. - Nová metoda
CalculateAndVerifynaTXLSXWorkbookznovu vyhodnotí každou buňku vzorce a porovná vypočítaný výsledek s uloženou hodnotou buňky. Vrací počet neshod (0 = všechny uložené hodnoty odpovídají čerstvému výpočtu enginu; nestálé vzorce jsou vyloučeny). Užitečné pro QA při portování sešitů mezi enginy nebo při validaci, že zapisovač nezkazil uložené hodnoty.
Verze 2.146.0
Přidáno
- Engine XLSX nyní podporuje iterativní výpočet kruhových referencí (iterativní režim výpočtu Excelu). Nová trojice vlastností
Iterate/IterateCount/IterateDeltanaTXLSXWorkbookřídí chování: kdyžIterate=Truea je běhemRecalculatedetekována referenční smyčka, engine znovu vyhodnotí buňky členů smyčky ažIterateCount-krát (výchozí 100) nebo dokud změna každé buňky není< IterateDelta(výchozí 0,001), namísto vrácení#REF!. Nastavení round-tripuje přes element OOXML<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. Finanční modely se záměrnými kruhovými referencemi (úrok z úroku, kruhové alokace) nyní konvergují namísto chyb. - Pole mezipaměti kontingenční tabulky nyní nesou model seskupení pro seskupování číselných rozsahů a hierarchií datumů.
TXLSPivotCacheFieldzískáváHasGroup+GroupStartNum/GroupEndNum/GroupInterval(číselný rozsah) aGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(datum). Zapisovač XLSX emituje element<fieldGroup><rangePr groupBy="range|days|months|..."/>, takže programově vytvořené pivoty se seskupenými poli odpovídají výstupu Excelu. - Export HTML nyní emituje vysvětlivky komentářů (endnotes). Když je
xhCommentsve volbách exportu, každá buňka s komentářem dostane superscriptový odkaz[n]a úplný text komentáře (autor + tělo) je uveden jako sekce vysvětlivky po tabulce se zpětnou kotvou k buňce. Dříve byly komentáře dostupné pouze přes atributtitle=buňky, který je neviditelný při tisku nebo kopírování.
Verze 2.145.0
Přidáno
- Literály chyb vzorce BIFF8 (token
tErr) se nyní dekódují do typované položky syntaxeSA_ERRORnamísto selhání parsování vzorce. Buňka ukládající=#N/A(nebo kterákoli ze sedmi konstant chyb Excelu) dříve způsobovala zahození celého vzorce při čtení; bajt chyby nyní round-tripuje přes čtení → vyhodnocení → zápis a rekonstruuje se do své textové formy (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) přes nový pomocníkXlsErrorToString. - Token BIFF8
tIsect $0F(operátor implicitního průniku) se nyní dekóduje v překladateli binárních vzorců, buduje stejný uzelSA_ISECT, který textový parser produkuje pro@. Dříve by binární vzorec obsahujícítIsectselhal při parsování. - Podmíněné formátování datových pruhů nyní emituje blok rozšíření
x14Excel 2010+ vextLstlistu, když model nese jakékoli nestandardní pole x14 (barva negativní výplně, přechod vypnutý, barva osy, směr, ohraničení). NovýBuildDataBarExtXmlbuduje elementext<x14:conditionalFormattings>s odpovídající prioritou, dvojicí cfvo, výplní + negativními + barvami osy a atributy gradient/border/direction/negativeBarColorSameAsPositive.
Verze 2.144.0
Přidáno
- Engine XLSX nyní může zapisovat Agility-šifrované sešity (
TXLSXWorkbook.SaveAsEncryptedAgile), čímž zavírá vysoce hodnotnou mezeru kompatibility čtení/zápis. Agile je to, co Excel 2010+ zapisuje ve výchozím nastavení pro soubory .xlsx chráněné heslem; HotXLS dříve mohl číst Agile, ale zapisovat pouze Standard Encryption (AES-128). Nová pipeline zápisu zrcadlí existující cestu dešifrování: hašování hesla SHA-512 s počtem iterací 100000, šifrování balíčku AES-256-CBC po segmentech, náhodně generovaný přechodný klíč zabalený podle tří specifikací připnutých blokových klíčů a kompletní deskriptor XML<encryption>nesoucí šifrovaný ověřovatel + bloby klíčů. Výstup je bajtově věrný tomu, co produkuje Excel, a čistě round-tripuje přesXlsLoadAgileEncryptedFile(ověřeno testem: správné heslo dešifruje, špatné heslo je odmítnuto). - Nové kryptografické primitivy podkladují cestu zápisu Agile:
XlsHMACSHA512(RFC 2104, potřebný pro elementdataIntegrity),XlsBase64Encode(kodér RFC 4648 zrcadlící existující dekodér) aAESEncryptCBC(šifrování AES-CBC pro libovolnou velikost klíče 128/192/256, inverze k existujícímuAESDecryptCBC). Jednotka AES nyní importujeaes_encrypt_key192/aes_encrypt_key256z Gladman obj (dříve bylo k dispozici pouze 128bitové šifrování).
Verze 2.143.0
Přidáno
- Vyhodnocovač vzorců nyní parsuje a vyhodnocuje operátor explicitního průniku
@(syntaxe dynamických polí Excel 365, např.=A2:A4 @ B2:B4). Lexer emituje nový tokenLT_ISECTpro symbol@, parser precedence buduje uzelSA_ISECT(váže těsněji než^, volněji než%) a nový vyhodnocovačIntersectRangesrezolvuje oba operandy jako rozsahy a vrací hodnotu jediné protínající se buňky — pravidlo implicitního průniku Excelu. Serializér BIFF tokenů emitujetIsect $0F, takže operátor round-tripuje přes XLS, a cesta rekonstrukce textu vzorce emituje formu implicitní mezery. Dříve takové vzorce selhaly při parsování. - Standardní kodér Base64 (
XlsBase64Encode) je nyní k dispozici, zrcadlící existujícíXlsBase64Decode. Toto je předpoklad pro cestu zápisu Agility-šifrování, která emituje saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue jako hodnoty atributů Base64. - Událost
OnProgresssešitu se nyní spouští také během úplného přepočtu (Recalculate), s novou fázíxlsxProgressCalculating. Dříve se událost spouštěla pouze během čtení a zápisu, takže dlouhé úplné přepočty nedávaly uživatelskému rozhraní žádný tep. Událost se spouští zhruba každé 4 % buněk, aby se zabránilo zaplavování. - Rozšířené vlastnosti dokumentu (
docProps/app.xmlnyní round-tripují další tři pole, která Excel zapisuje pro dokumenty chráněné heslem / založené na šablonách:Manager,TemplateaDocSecurity(bitové pole: 1=chráněno heslem, 2=doporučeno pouze pro čtení, 4=vynuceno pouze pro čtení, 8=uzamčeno pro anotaci).
Verze 2.142.0
Přidáno
- Typový model kontingenční tabulky nyní nese metadata, zdroj, počítané pole, "show values as" a povrch mezí sdílených položek, které předchozí kolo analýzy označilo jako mezery.
TXLSPivotCachezískáváRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDataplus typový tvar zdroje listu (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldzískáváFormula/DatabaseField/MemberPropertyField(počítaná pole) a meze sdílených položek (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldzískáváShowDataAs/BaseField/BaseItempro transformace "show values as" (procento-z / rozdíl / kumulativ / index). Zapisovač XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) ctí všechny tyto, takže programově vytvořený pivot (AddPivotTable) emituje bohatšípivotCacheDefinition+pivotTableDefinition— refreshOnLoad / trojice verzí / refreshedBy / zdroj pojmenovaného rozsahu / vzorec počítaného cacheField / meze sharedItems / subtotal + showDataAs dataField. Kontingenční tabulky načtené ze souboru nadále round-tripují své surové XML doslovně. - Chování ukotvení obrázku nyní round-tripuje přes novou vlastnost
AnchorTypenaTXLSXImage(xaTwoCell= přesunout a změnit velikost s buňkami,xaOneCell= přesunout ale neměnit velikost,xaAbsolute= nepřesouvat ani neměnit velikost). Zapisovač vybere element ukotvení (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) tak, aby odpovídal; čtečka parsuje název elementu + atributeditAszpět. Mapuje na dialog Excelu pravé-kliknutí → Velikost a vlastnosti → Vlastnosti. - Záhlaví/zápatí nyní round-tripuje diferenciaci sudé/první stránky.
TXLSXWorksheetzískáváEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextplus čtyři přepínače<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Soubory, kde uživatel povolil "Různé liché a sudé stránky" nebo "Různá první stránka", již neztrácí sekce sudé/první stránky při round-tripu. - Nastavení stránky nyní round-tripuje rozšířené atributy
<pageSetup>, které Excel zapisuje pro nestandardní nastavení tisku:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(zobrazené/prázdné/pomlčka/NA),UsePrinterDefaults. <sheetFormatPr>nyní round-tripujecustomHeight,zeroHeight,outlineLevelRowaoutlineLevelCol, takže soubory, kde uživatel nastavil uživatelem připnutou výchozí výšku řádku, skryté výchozí řádky nebo výchozí úroveň osnovy, již neztrácí toto chování.- Podmíněné formátování datových pruhů round-tripuje standardní atribut
gradient(přechod vs. plná výplň) aTXLSDataBarSpeczískává pole rozšířeníx14Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColors motivem/tint,Direction,Border) na modelu, takže je mohou spotřebitelé API nastavit. - Bubliny komentářů round-tripují své kreslení VML doslovně. Čtečka zachytí
xl/drawings/vmlDrawingN.vmltak, jak je, a zapisovač ho přehraje při uložení (namísto vestavěné šablony žluté bubliny), takže pozice / velikost / barva výplně / viditelnost každé bubliny nastavená uživatelem přežije. - Těla komentářů round-tripují formátování pro každý běh.
TXLSXCommentzískává líný payloadRichText: TXLSXRichText(znovu používá model běhu sdílených řetězců); zapisovač emituje jeden<r><rPr>...</rPr><t>...</t></r>na běh, když RichText nese formátování, a čtečka parsuje<b/>,<i/>,<sz val=N/>,<color rgb=.../>zpět, takže tučné / kurzíva / velikost / barva přežijí. - Vyhodnocovač vzorců nyní implementuje
SUBTOTAL(všech jedenáct agregátorů: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, plus varianty 101–111 ignorující skryté) aAGGREGATE(devatenáct agregátorů s příznaky kódu volby 0–7, které vybírají přeskočení chyby/skrytého, včetně rodiny LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE s jejich argumentemk). Obě dříve propadly do cesty nepodporované funkce;SUBTOTALbyl registrován, ale neměl implementaci,AGGREGATEnebyl registrován vůbec. - Funkce listu
CELLaINFOjsou nyní vyhodnocovány:CELLpodporujeaddress,col,row,type,contents,filename,formatainfo_typestavu GUI (color,parentheses,prefix,protect,width) vracejí neutrální výchozí hodnoty;INFOpodporujeosversion,system,recalc,memavail,numfile,release,origin. Obě byly registrovány, ale propadly do#NAME?. - Podmíněné formátování nyní round-tripuje atributy
cfRulestopIfTrue,stdDev,equalAverageatimePeriod, plus úplná desetičlenná rodinatimePeriod(yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth). Ty byly tiše zahozeny při čtení; Excel je zapisuje běžně na pravidlech nad-průměrem a datových pásech a jejich zahození měnilo, jak se pravidlo znovu vyhodnotilo při opětovném otevření. - Export CSV získal vlastnost
TXLSCsvEncodingnaTXLSCSVSaverse třemi režimy:ceSystemAnsi(starší výchozí),ceUtf16(historický režim Unicode) aceUtf8, který zapisuje soubor UTF-8 se značkou pořadí bajtů EF BB BF — moderní výchozí hodnota přátelská k Excelu, která se znovu otevírá bez průvodce importem textu v jakékoli lokalitě. - Import CSV získal vlastnost
LocaleTolerantNumbersnaTXLSCSVLoader. Při povolení je číselné pole, které selže při parsování s.jako oddělovačem desetinných míst, retryováno s,(a naopak), takže evropské3,14importuje jako číslo 3,14 na americkém stroji. Striktní režim (výchozí) je nezměněn, takže text s úvodními nulami, PSČ a další tokeny nesoucí čárky zůstávají textem.
Opraveno
- Striktní inference čísel enginu XLSX již nevytváří textová pole nesoucí čárky (např.
3,14) do čísel přes DelphiTryStrToFloat, který toleruje čárku jako oddělovač tisíců i když jeThousandSeparatornastaven na#0. Taková pole nyní zůstávají textem, pokud není povolena nová volbaLocaleTolerantNumbers.
Verze 2.140.0
Změněno
- Engine XLSX nyní komprimuje svých šest fondů stylů pro každý atribut (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) před každým uložením: nový průchod
CompactStylePoolsskenuje indexy stylů každé buňky a zahodí položky fondu, které již nejsou odkazovány žádnou buňkou — položky, které se hromadí, když jsou buňky vyčištěny, smazány nebo restylovány po přidání položky fondu. Komprimované fondy produkují menší tabulku<cellXfs>ve výstupním souboru (typicky o 30–70 % menší pro dokumenty, které prošly několika cykly úprav), což odpovídá komprimaci, kterou engine XLS již provádí přesCreateAllReferredList
Verze 2.139.0
Přidáno
- Tvary vrstvy kresby, konektory, skupinové tvary a ne-grafové grafické rámy nyní round-tripují doslovně: když čtečka XLSX narazí na ukotvení
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>nebo ne-grafové<xdr:graphicFrame>, které typový model (obrázky / grafy / textová pole) nepokrývá, zachytí úplné XML ukotvení a přehraje ho nezměněně při uložení — takže kresby vytvořené v Excelu (šipky, bubliny, seskupené tvary, rámy smart art) přežijí cyklus čtení→zápis bez ztráty. Každý list zpřístupňujeRawDrawingAnchorCount/RawDrawingAnchor(i)pro inspekci
Verze 2.138.0
Přidáno
- Uložené hodnoty buněk externích odkazů nyní round-tripují na enginu XLSX: nový model
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDatavisí z každéhoTXLSXExternalLinkpřesAddSheetData/AddRow/AddCell, zapisovač emituje odpovídající blok<sheetDataSet>uvnitřexternalLinkN.xmla opětovné otevření obnoví každou uloženou hodnotu.FindCachedCell(sheetIdx, row, col)vyhledá poslední známou hodnotu externě odkazované buňky — data, která sám Excel zobrazuje, když je vzdálený sešit offline
Verze 2.137.0
Přidáno
- Příznak OOXML cellXf
quotePrefix— mechanismus Excelu pro označení uloženého textu jako literálu, aby přežil číselnou koerci (kódy importované z CSV jako00123, dlouhá čísla účtů, cokoli, co uživatel prefikoval apostrofem) — nyní round-tripuje na enginu XLSX:TXLSXAlignmentzískává vlastnostQuotePrefix, fond zarovnání ji počítá do deduplikace, zapisovač emitujequotePrefix="1"na odpovídající<xf>a opětovné otevření ji obnoví, ať již cellXf neslo potomka<alignment/>nebo bylo holé samouzavírací<xf quotePrefix="1"/>
Verze 2.136.0
Přidáno
- Osy grafů jsou nyní plně programovatelné: nový model
TXLSXChartAxisna každé oseCategoryAxisaValueAxisgrafu zpřístupňujeLogBase(logaritmické měřítko, např. 10 pro dekadický logaritmus),Orientation(normální / obrácená),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = automaticky),MajorUnit/MinorUnit,CrossesAt,TickLblPosaDispUnits(zobrazovací jednotky: stovky / tisíce / miliony / miliardy / biliony). Všechny výchozí hodnoty odpovídají automatickému chování Excelu, takže stávající grafy generují stejné XML jako dříve; zapisovač přidává<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>a<c:dispUnits>pouze tehdy, když volající nastaví jinou hodnotu než výchozí, a opětovné otevření takového grafu obnoví všechna nastavení
Verze 2.135.0
Přidáno
- Chybové úsečky (error bars) grafů jsou nyní programovatelné a procházejí obousměrným převodem na XLSX enginu: každá
TXLSXChartSerieszískáváAddErrorBar(dir)vracejícíTXLSXChartErrBarsValueType(pevná / procentuální / stdDev / stdErr / vlastní),Value,PlusValue/MinusValue(vlastní) aNoEndCap; ukládá se jeden slot chybové úsečky na směr (X / Y), zapisovač generuje odpovídající blok<c:errBars>a opětovné otevření obnovuje směr, typ a velikost, takže vědecké / inženýrské grafy zachovávají své indikátory nejistoty
Verze 2.134.0
Přidáno
- Popisky dat grafů jsou nyní programovatelné a procházejí obousměrným převodem na XLSX enginu: každá
TXLSXChartSerieszískává vlastnostiShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeaSeparator, které generují odpovídající blok<c:dLbls>s jeho<c:show*/>potomky; opětovné otevření takového grafu obnovuje přepínače, takže nastavení „zobrazit hodnotu" / „zobrazit procento" přežije cyklus uložení–úprava–uložení
Verze 2.133.0
Přidáno
- Vektorové formáty obrázků EMF a WMF jsou nyní plnohodnotnými typy obrázků na XLSX enginu:
TXLSXImageFormatzískáváxlsxImageEmf/xlsxImageWmf, zapisovač generuje odpovídající typy obsahuimage/x-emf/image/x-wmfa přípony.emf/.wmfa čichač formátů rozpoznává hlavičky EMF (01 00 00 73), placeable WMF (D7 CD C6 9A) a standardní WMF — takže obrázky vložené z Wordu nebo PowerPointu, které Excel ukládá jako vektorová data, nyní procházejí obousměrným převodem namísto toho, aby byly zahozeny
Opraveno
- Podproudy grafů BIFF8, jejichž záznam GELFRAME (
$1066) přesahuje 8224bajtovou hranici pokračování, již neztrácejí geometrii výplně/čáry: čtečka nyní přijímá vlastní pokračování GELFRAME (Excel zapíše další$1066místo standardního$003CCONTINUE) a také umožňuje standardním záznamům CONTINUE spojovat se uvnitř kontextu grafu, což odpovídá stávajícímu víceblokovému odeslání zapisovače - Obrázky pozadí záhlaví/zápatí BIFF8 (
$0866), jejichž datová část přesahuje záznamy pokračování, se již nepoškozují: každý segment pokračování opakuje 14bajtovou hlavičku MSO, kterou čtečka nyní před spojením odstraní, takže vložená obrazová data již nejsou posunuta o 14 bajtů na segment
Verze 2.132.19
Opraveno
- Úklid úložiště starších XLS a šifrovaných XLSX nyní deterministicky uvolňuje proudy složených souborů, což zabraňuje zablokování dočasných souborů po operacích uložení, načtení, VBA nebo šifrovaného balíčku
- Formátované zobrazení rozšířených celočíselných hodnot variant nyní konzistentně aplikuje požadovaný formát čísla, což odpovídá stávajícímu chování pro standardní celočíselné hodnoty
- Sdílené řetězce, ověřování dat, listy grafů, archivy ZIP, kreslení PNG a vzorce opakovaného textu nyní čistí dočasné vyrovnávací paměti defenzivněji během chybových cest a operací s velkým textem
Verze 2.132.18
Opraveno
- Přiřazení hodnoty interního string builderu nyní při přiřazení prázdného řetězce maže předchozí text, což zabraňuje opakovaně používaným vyrovnávacím pamětem XML a textu v zadržování zastaralého obsahu
Verze 2.132.17
Opraveno
- Vytváření listů grafů XLS nyní přijímá uvozované názvy zdrojových listů obsahující vykřičník, odmítá přehnané odkazy na řádky dříve, než se mohou zavinout do platného řádku BIFF, a omezuje názvy legend trendových linií na limit krátkého textu BIFF, takže generované záznamy grafů zůstávají dobře formované
Verze 2.132.16
Opraveno
- Interní seznamy klíčů řetězců (string-key) a klíčů objektů (object-key) nyní při přepsání existující pozice odstraňují zastaralé vyhledávací klíče, což zabraňuje tomu, aby staré klíče odkazovaly na náhradní položky
- Interní nahrazení seznamů objektů a transformované mezipaměti jedinečných klíčů nyní uvolňují vlastněné položky při přepsání, vyčištění a zničení, což zabraňuje únikům během opakovaných operací se sešity a styly
Verze 2.132.15
Opraveno
- Přímé streamované čtení XLSX nyní dekóduje logické buňky, které ukládají literálové hodnoty OOXML, jako jsou true a false
- Aktualizace indexů interních seznamů řetězců nyní při přepsání existující pozice odstraňují zastaralé klíče, což zabraňuje tomu, aby staré názvy odkazovaly na novou hodnotu
Verze 2.132.14
Opraveno
- Informační a chybové zprávy pro ověření dat BIFF8, jejichž prvním znakem je NUL, nyní zachovávají hranice záznamů namísto zápisu neodpovídající délky DV
Verze 2.132.13
Opraveno
- Parsování textu XML nyní odmítá vnořené začátky entit, jako je &&, namísto tichého zahazování nedokončené entity
- Dekompilované vzorce nyní zapisují číselné konstanty s invariantním tečkovým oddělovačem desetinných míst, takže text vzorce zůstává přenositelný napříč regionálními nastaveními
Verze 2.132.12
Opraveno
- Průhlednost palety PNG nyní ignoruje průhledné barvy, které nejsou přítomny v paletě obrázku, namísto označení libovolného indexu palety jako průhledného
- Vzorce SUMPRODUCT nyní v argumentech dlouhých oblastí přestávají procházet zbývající řádky po prvním řádku mimo použitou oblast, což zabraňuje zbytečnému čtení buněk při zachování vypočítaného výsledku
Verze 2.132.11
Opraveno
- Vzorce TEXT nyní vrací #VALUE!, pokud nelze použít neplatný nebo příliš velký formát čísla, namísto toho, aby byly potlačeny jako prázdný úspěšný výsledek
- Zkrácení tabulky sdílených řetězců nyní uvolňuje správné koncové bloky a udržuje tabulku znovupoužitelnou po velkých cyklech mazání
Verze 2.132.10
Opraveno
- Přesná vyhledávání MATCH nyní respektují zástupné znaky Excelu a metadata řádkového posunu klasických XLS nyní ignorují řádky mimo blok, namísto porušení struktury uloženého sešitu
- Komprimovaná textová metadata PNG nyní bezpečně uvolňují dočasné vyrovnávací paměti, pokud zpracování bloku vyvolá výjimku
Verze 2.132.9
Opraveno
- Komprimovaná textová metadata PNG, vkládání do seznamu bloků a zpracování pořadí bajtů CRC nyní zůstávají stabilní napříč podporovanými platformami Windows
Verze 2.132.8
Opraveno
- Vzorce LEFT a RIGHT nyní hlásí #VALUE!, pokud nelze num_chars převést na platné celé číslo
Verze 2.132.7
Opraveno
- Vzorce SEARCH nyní podporují zástupné znaky ?, * a ~ ve stylu Excelu
- Ověření názvu listu nyní při přejmenovávání listů odmítá neplatné znaky názvu listu Excelu
- Ruční odstraňování konců stránek nyní funguje po vložení konce před existující konce stránek
Verze 2.132.6
Opraveno
- Vzorce DATE nyní odpovídají chování přetečení měsíce a dne kompatibilnímu s Excelem, včetně volání jako DATE(2008,14,2)
- Čtení vlastnosti Hidden u rozsahů sloupců nyní hlásí viditelnost každého sloupce namísto míchání stavu viditelnosti řádků
- Metadata řádků BIFF na limitu řádků Excelu 97-2003 se nyní načítají správně, takže nastavení pro řádek 65536 zůstanou zachována
Verze 2.132.5
Opraveno
- Načítání sešitů BIFF nyní toleruje nesprávné barvy záložek listů, zkrácené popisky kontingenčních tabulek a neplatné fragmenty kalendářních dat v mezipaměti kontingenčních tabulek bez vyvolání výjimek
- Načítání balíčku a streamu sešitu nyní konzistentněji čistí neúspěšné cesty nastavení archivu a úložiště, čímž se zabraňuje úniku prostředků při chybném vstupu nebo neúspěšném otevření úložiště zálohovaného streamem
Verze 2.132.4
Opraveno
- Zpracování archivů ZIP nyní dokončí aktuální balíček před opakovaným použitím stejného objektu archivu pro jiný balíček a otevírání archivů založených na souborech nyní umožňuje souběžné sdílené čtenáře
Verze 2.132.3
Opraveno
- Zápis balíčku sešitu nyní zachovává názvy položek ZIP jiné než ASCII s metadatar UTF-8, což zabraňuje vzniku zkomoleného textu (mojibake), když názvy částí balíčku obsahují text v kódování Unicode
- Výstup XML nyní při zakázaném uvozování zapisuje čistý text a hodnoty atributů jako bajty UTF-8, což odpovídá deklarovanému kódování dokumentu
- Vyhodnocování vzorců nyní po výjimkách zpětného volání vyčistí svůj stav zpracování a správně zpracovává zrušení velkých čísel v Unicode sestaveních Delphi
- Extrakce matice maticového vzorce nyní respektuje nenulové dolní meze polí Variant, namísto vyvolání výjimky pro platná pole indexovaná od jedničky
Verze 2.132.2
Změněno
- Řazení rozsahů nyní používá stabilní průchod řazení O(n log n) pro velké seřazené rozsahy, přičemž zachovává stávající chování obsahu řádků při obousměrném převodu
- Parsování a formátování čísel ODS a XLSX nyní znovu využívá invariantní stav formátování namísto jeho opakovaného vytváření v kritických cestách
Opraveno
- Parsování XML nyní přijímá platné bloky CDATA a instrukce pro zpracování UTF-8, aniž by došlo k porušení textu nebo selhání na platné značce
- Parsování vzorců nyní přijímá vědecký zápis se znaménkem a čistě odmítá poškozené nebo zkrácené bajty vzorců
- Klasické cesty pro otevření a uložení sešitu nyní po chybách spolehlivě uvolňují streamy a úložiště, což zabraňuje tomu, aby dočasné soubory zůstaly uzamčené
- Manipulace s binární vyrovnávací pamětí nyní ověřuje meze kopírování a čtení, před kopírováním zvětšuje cílové vyrovnávací paměti a čistě odmítá neplatné zpětné odkazy komprese VBA
Verze 2.132.1
Opraveno
- Opravena chybová zpráva vyvolaná v případě, že šifrovaný sešit používá nepodporované schéma šifrování: dříve uváděla, že šifrování ECMA-376 Agile Encryption nelze přečíst, přestože dešifrování Agile (AES-128/192/256) je podporováno od verze 2.119.0. Zpráva nyní uvádí skutečně podporovaná schémata
- Metoda Open nyní odkazuje volající na TXLSXWorkbook.OpenEncrypted, pokud odmítne šifrovaný balíček OOXML, namísto tvrzení, že šifrované sešity nejsou podporovány
Verze 2.132.0
Změněno
- Načítání XLSX je podstatně rychlejší: čtečka XML nyní internuje opakované názvy prvků a převádí text a hodnoty atributů přímo ze své skenovací vyrovnávací paměti, což zkracuje přidělování paměti na buňku o více než polovinu. Nejvíce těží vícevláknové otevírání (2.128.0) — odstraněné alokace byly ty, které serializovaly pracovní vlákna — přičemž sešity s více listy se nyní na vícejádrových strojích otevírají téměř dvakrát rychleji než jednovláknová cesta; jednovláknové otevírání také získává několik procent
Verze 2.131.0
Přidáno
- Rozšiřující bloky listů, které HotXLS nemodeluje — položky
<ext>v<extLst>listu jiné než sparklines, jak jsou zapsány Excelem pro funkce jako podmíněné formátování x14 nebo průřezy (slicers) — jsou nyní při otevření sešitu zachovány beze změny a zapsány zpět při uložení, takže otevření a opětovné uložení souboru již tyto přípony neodstraňuje. Zachycené bloky jsou viditelné pouze pro čtení prostřednictvímWorksheet.RawWorksheetExtsa přenášejí se s listem, když je zkopírován do jiného sešitu
Verze 2.130.0
Přidáno
- Uložené sešity, které obsahují vzorce, nyní nesou část kalkulačního řetězce
xl/calcChain.xml, což Excelu umožňuje inicializovat svůj závislostní engine ze zaznamenaného pořadí namísto jeho opětovného sestavování při načítání. Po voláníRecalculateřetězec sleduje topologické uspořádání grafu závislostí; v opačném případě jsou buňky se vzorci uvedeny v pořadí dokumentu (platné vodítko, které Excel upřesňuje za běhu). Tato část, její typ obsahu a její vztah k sešitu jsou generovány společně a přežívají obousměrné cykly otevření/uložení
Verze 2.129.0
Přidáno
- Nová vlastnost
Workbook.ParallelParseThreadsladí počet pracovních procesů pro vícevláknovou cestu Open představenou ve verzi 2.128.0 (0 = automaticky, jeden pracovní proces na jádro CPU). Parsování listu intenzivně alokuje paměť a alokace paměti je serializována napříč vlákny, takže u některých úloh funguje malý explicitní limit stejně dobře jako — nebo lépe než — plný počet jader; tato vlastnost umožňuje integrátorům vybrat to, co nejlépe vyhovuje jejich souborům
Verze 2.128.0
Přidáno
- Vícevláknové načítání XLSX: otevření sešitu nyní parsuje XML každého listu — což je hlavní náklad u velkých souborů — na pracovních vláknech, takže sešity s více listy se na vícejádrových strojích otevírají rychleji. Části listů se z balíčku extrahují předem a každý pracovní proces se dotýká pouze svého vlastního listu, takže načtený sešit je identický se sériovým výsledkem
- Nová vlastnost
Workbook.ParallelParse(výchozíTrue) přepne zpět na jednovláknové parsování, pokud je předOpennastavena naFalse— jednorádkové odhlášení pro omezená prostředí
Změněno
- Zpětné volání čtení
OnProgressse stále spouští jednou na list ve volajícím vlákně, nyní při odeslání každého listu k parsování, namísto striktně mezi listy
Verze 2.127.0
Přidáno
- Inkrementální přepočet na XLSX enginu: nová metoda
Workbook.Recalculatesestaví graf závislostí vzorců, vyhodnotí každou buňku se vzorcem jednou v pořadí závislostí a uloží každý výsledek do mezipaměti hodnoty buňky. Následná volání znovu vyhodnocují pouze buňky ovlivněné změnami hodnot od posledního průchodu — u zřetězených modelů (finanční tabulky, kaskády sestav) úprava jednoho vstupu přepočítá pouze jeho následné vzorce namísto celého sešitu - Volatilní funkce (
NOW,TODAY,RAND,OFFSET,INDIRECT) se přepočítávají při každém průchodu, stejně jako vzorce, jejichž odkazy nelze vyřešit staticky (názvy s více oblastmi, externí sešity) — engine raději přepočítává nadbytečně, než aby riskoval zastaralý výsledek - Cyklické odkazy jsou detekovány namísto zacyklení:
Recalculatevrací kód chyby, když vzorce tvoří kruhový řetězec, přeskočí členy cyklu a stále vyhodnotí každý vzorec mimo cyklus. Odkazy mezi listy, pojmenované rozsahy a maticové vzorce CSE (výsledky rozlité napříč ukotveným rozsahem) se plně účastní grafu závislostí
Změněno
- Stávající cesta
Calculatena vyžádání se nemění;Recalculateje samostatné volitelné API a sešity, které jej nikdy nevolají, se chovají přesně jako dříve
Verze 2.126.0
Přidáno
- Minigrafy (sparklines) na XLSX enginu: listy nyní obsahují skupiny minigrafů — mini grafy v buňce, které Excel vykresluje z rozsahu dat — se třemi typy Excelu (spojnicový, sloupcový, skládaný výhra/prohra). Vytvořte jednu pomocí
Worksheet.AddSparklineGroupnebo sestavte skupiny ručně prostřednictvím nové kolekceWorksheet.SparklineGroups, přičemž do každé skupiny přidáte libovolný počet minigrafů se zdrojovým rozsahem a zobrazovací buňkou - Skupiny minigrafů nabízejí kompletní sadu možností, které Excel nabízejí: tloušťku čáry, značky datových bodů, přepínače zvýraznění nejvyššího/nejnižšího/záporného/prvního/posledního bodu, osm barevných pozic ARGB (řada, záporná hodnota, osa, značky, první, poslední, vysoká, nízká), škálování svislé osy pro jednotlivé skupiny nebo jednotlivé minigrafy a zpracování mezer/nul/přemostění pro prázdné zdrojové buňky
- Minigrafy přežívají kompletní obousměrný cyklus uložení→otevření: uložení vygeneruje rozšiřující blok listu
extLst([MS-XLSX] §2.3.6), takže Excel 2010 a novější vykreslí minigrafy, a otevření takového sešitu — ať už zapsaného pomocí HotXLS nebo Excelu — znovu sestaví každou skupinu, možnost a rozsah, takže přetrvávají i po editačních cyklech. Zkopírování listu do jiného sešitu naklonuje také jeho skupiny minigrafů
Verze 2.125.0
Přidáno
- Sedm textových funkcí počítajících bajty DBCS z analýzy rozdílů XLSSuit se nyní vyhodnocuje na obou enginech:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHBaREPLACEB. Každá z nich zachází se svým vstupem jako s bajtovým řetězcem pod systémovou kódovou stránkou ANSI, takže znaky CJK (čínština/japonština/korejština) zabírají 2 bajty, zatímco ASCII zabírá 1; operace, které by rozdělily pár vedoucího/koncového bajtu DBCS, skočí zpět na nejbližší hranici znaku, což odpovídá chování Excelu
Verze 2.124.0
Přidáno
- Pět funkcí pro testování hypotéz a rozdělení z analýzy rozdílů XLSSuit se nyní vyhodnocuje na obou enginech:
Z.TEST(jednostranná pravděpodobnost pravého konce, že průměr výběru je alespoňxza nulové hypotézy),T.TEST(p-hodnota párového t-testu pro dva výběry; nepárové typy se shodným/rozdílným rozptylem jsou odloženy),CHISQ.TEST(p-hodnota dobré shody prostřednictvím horního konce chi-kvadrát CDF),HYPGEOM.DIST(hypergeometrické PMF/CDF s kumulativním příznakem) aNEGBINOM.DIST(negativně binomické PMF/CDF). Matematika p-hodnot znovu využívá stávající pomocné funkce CDF pro normální/Studentovo-t/chi-kvadrát rozdělení enginu prostřednictvím samostatných vnořených rutin, takže se žádná stávající metoda Calc nemění
Verze 2.123.0
Přidáno
- Čtrnáct vzorcových funkcí, které porovnání s XLSSuit identifikovalo jako mezery, se nyní vyhodnocuje na obou enginech:
AVERAGEIF(průměr na základě jednoho kritéria, chybějící sourozenec SUMIF/COUNTIF),WORKDAY.INTLaNETWORKDAYS.INTL(vlastní masky víkendů pomocí číselných kódů 1-17 nebo 7znakového řetězce Mon-Sun),XIRRaXNPV(vnitřní výnosové procento a čistá současná hodnota pro peněžní toky s nepravidelnými daty, řešené metodou půlení intervalu),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(zaokrouhlování bez ohledu na znaménko),PERCENTRANK.INC/PERCENTRANK.EXC(percentilové pořadí s odpovídající inkluzivní/exkluzivní interpolací),MODE.MULT(rozlévá každou hodnotu spojenou s nejvyšší četností),ERF.PRECISE(Gaussova chybová funkce prostřednictvím její alternující řady),ACCRINT(nahromaděný úrok) aISPMT(úrok za období pro amortizaci s konstantní jistinou)
Verze 2.122.0
Přidáno
- Vláknové komentáře (Excel 365) nyní procházejí obousměrně na XLSX enginu:
AddThreadedCommentaAddThreadedReplyna listu sestavují strom odpovědí rodič→potomek ukotvený v buňce, automaticky registrují každého autora v novém seznamuPersonsna úrovni sešitu a generují vyhrazenou částxl/threadedComments/threadedCommentN.xmlpro každý list plusxl/person/person.xmls rozsahem pro sešit; opětovné otevření takového balíčku znovu sestaví strom konverzace a seznam účastníků z těchto částí, takže řetězce odpovědí, identifikátory a zobrazované názvy přežívají kompletní cyklus čtení→zápis
Verze 2.121.0
Přidáno
- Vyhodnocovač vzorců nyní počítá funkce dynamických polí Excelu 365
XMATCH,SORT,UNIQUEaSEQUENCE, čímž se připojuje k již podporovaným funkcímXLOOKUPaFILTER; výsledky se rozlévají jako 2D pole, takžeSEQUENCE(3;2;1;1)vrací mřížku 3×2,SORTmění uspořádání řádků podle libovolného klíčového sloupce vzestupně nebo sestupně,UNIQUEsbalí duplicitní řádky a zachová první výskyt aXMATCHhlásí pozici vyhledávané hodnoty indexovanou od 1 se stejnými režimy shody pro přesnou shodu/zástupné znaky/další menší/další větší jakoXLOOKUP
Verze 2.120.0
Přidáno
- Nová metoda
PasteFromClipboardna listech obou enginů čte tabulátorem oddělený text ze schránky Windows — data, která tam Excel umístí při zkopírování rozsahu, nebo jednoduchý výběr z jakékoli jiné aplikace — a zapisuje jej do buněk počínaje daným řádkem a sloupcem, se stejnou převodní logikou pro čísla/data/logické hodnoty, jakou již používá zavaděč CSV; text začínající na=se stává živým vzorcem, což odpovídá tomu, jak vkládá samotný Excel
Verze 2.119.0
Přidáno
- Čtení šifrování ECMA-376 Agile Encryption — ochrana heslem, kterou Excel 2010 a novější používají ve výchozím nastavení:
OpenEncryptednyní parsuje XML popisovač šifrování, odvozuje klíče pomocí hashování SHA-512 s počtem iterací (spin-count), ověřuje heslo a dešifruje segmentovaný balíček AES-CBC (AES-128/192/256), takže sešity chráněné heslem přímo v Excelu se otevřou i bez nainstalovaného Excelu OpenEncryptedzpracovává všechny tři případy prostřednictvím jednoho vstupního bodu: čistý nešifrovaný soubor.xlsx, Standard Encryption (náš obousměrný převodSaveAsEncrypted) a Agile Encryption; chybné heslo vyvolá stejnou jasnou chybu v každém schématu
Opraveno
- Ukládání sešitu
.xlsx, jehož XML listu překročilo přibližně 116 KB — asi 3 000 řádků typických řetězcových dat — selhalo s přetečením zásobníku; kontrolní součet CRC-32 zapisovače ZIP nyní zpracovává data v blocích o velikosti 64 KB, což udržuje kompresní backend mimo jeho kódovou cestu pro velké vstupy, která alokuje nadměrně velkou pomocnou vyrovnávací paměť na zásobníku. Výsledek kontrolního součtu se nemění
Změněno
- Deduplikace sdílených řetězců nyní probíhá přes hashovací tabulku namísto prohledávání seznamu řetězců a část
sharedStrings.xmlje sestavována pomocí předem zvětšeného nástroje pro sestavování řetězců (string builder) namísto opakovaného spojování — spolu s indexem buněk v konstantním čase to zkracuje ukládání 120 000 buněk s řetězci z desítek sekund na přibližně třetinu sekundy
Verze 2.117.0
Změněno
- Přístup k buňkám XLSX je nyní v konstantním čase: kolekce buněk nese hashovací index nad (řádek, sloupec), který nahrazuje předchozí lineární průchod — takže naplnění, zpětné čtení nebo načtení velkého listu škáluje lineárně s počtem buněk namísto kvadraticky; vyplnění 100 000 buněk nyní trvá výrazně méně než sekundu, zatímco dříve trvalo minuty
- Zrychlení platí napříč enginem:
Cells[r, c],HasCell, načítání sešitu, ukládání, kopírování napříč sešity, auto-fit a každý pomocník, který se dotýká buněk podle pozice, z toho těží; vkládání nebo mazání řádků a sloupců přestavuje index v jednom průchodu
Verze 2.116.0
Přidáno
- Export PDF v klasickém XLS enginu: nové metody
SaveAsPDFna listu a sešitu vykreslují použitou oblast (nebo oblast dodanou volajícím prostřednictvímTXLSPDFExport) jako stránkovanou mřížku — zobrazovaný text buněk přes číselný formát, mřížku, šířky sloupců odvozené ze šířek Excelu a škálované pro přizpůsobení stránce a automatické vícestránkové stránkování - Výstup je samostatný soubor PDF 1.4 bez vnějších závislostí, který používá vestavěné písmo Helvetica s kódováním textu WinAnsi; orientace A4 na výšku nebo na šířku, okraje stránky a velikost písma jsou konfigurovatelné na exportéru
- Jedná se o export pro prezentaci dat vedle HTML a RTF: reprodukuje tabulkový obsah a rozložení pro reporty a předávání dokumentů, nikoli plné stylování jednotlivých buněk
Verze 2.115.0
Přidáno
- Vytvoření grafu jedním voláním z oblasti dat v XLSX enginu: nové
AddChartFromRangesestaví kompletní graf a automaticky odvodí jeho řady z obdélníkového bloku dat — ekvivalent funkce Excelu „vložit graf z výběru" — s rozložením řad ve sloupcích nebo transponovaných řad v řádcích - Pojmenované zkratky
AddColumnChart,AddBarChart,AddLineChart,AddPieChartaAddAreaChartvybírají typ grafu podle názvu nad stejným jednovolacím tokem, přičemž názvy řad čtou ze záhlaví řádku a popisky kategorií z prvního sloupce - Aktualizace: Odkazy na řady jsou kvalifikovány uvozovaným názvem zdrojového listu, takže vygenerovaný graf zůstává funkční umístěný na jakémkoli listu a přežije uložení a opětovné načtení
Verze 2.114.0
Přidáno
- Import RTF v klasickém XLS enginu, inverze ke stávajícímu exportu
SaveAsRTF: nové metodyOpenRTFna listu a sešitu načítají tabulku RTF dokumentu do buněk listu —\cellposouvá sloupec,\rowposouvá řádek — počínaje A1 - Aktualizace: Obnovuje tabulková data ze souborů vytvořených pomocí
SaveAsRTF, Wordu nebo WordPadu: číselný text se ukládá jako čísla, takže vzorce nadále fungují, hexadecimální (\'hh) a Unicode (\uN) escape sekvence se správně dekódují a hlavičkové skupiny (tabulka písem, tabulka barev, stylesheet, info) se přeskakují - Dokumenty bez tabulky se vracejí do režimu odstavců, přičemž každý
\parse importuje jako další řádek ve sloupci A
Verze 2.113.0
Přidáno
- Čtení šifrovaných sešitů
.xlsx:OpenEncryptednyní dešifruje balíčky ECMA-376 Standard Encryption (AES-128), čímž dokončuje obousměrný převod se stávajícímSaveAsEncrypted— přečte kontejner složeného souboru, odvodí klíč z hesla, ověří jej a načte obnovený sešit - Chybné heslo vyvolává jasnou chybu „heslo je nesprávné" a
OpenEncryptedu běžného nešifrovaného.xlsxjej nadále načítá přímo, takže volající mohou směrovat každý soubor jedním vstupním bodem
Změněno
- Aktualizace: Zpráva o nepodporovaném šifrování nyní konkrétně jmenuje ECMA-376 Agile Encryption jako zbývající nepodporované schéma, protože čtení a zápis Standard Encryption jsou oba k dispozici
Verze 2.112.0
Přidáno
- Nová vlastnost
TaggedTextna buňkách XLSX převádí mezi formátovaným textem a odlehčeným značkováním:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>a<size=N>, s escape sekvencemi</>/&— takže obsah buněk s více formáty může být vytvořen ze šablony typu String namísto ručního sestavování objektů běhů (run) - Zápis značkování sestavuje seznam běhů a ponechává
Valuejako zřetězený prostý text; značkování bez tagů ukládá prostý řetězec typu String bez formátovaného obsahu; čtení serializuje atributy každého běhu jako úplné sady tagů; neznámé tagy projdou jako doslovný text
Opraveno
- Běh formátovaného textu (rich-text run) skládající se výhradně z mezer (například jeden stylizovaná mezera mezi slovy) nyní přežije uložení a opětovné načtení; dříve byla mezera při opětovném otevření souboru zahozena
Verze 2.111.0
Přidáno
- Nová událost
OnProgressna sešitu XLSX hlásí průběh načítání a ukládání: spouští se jednou za list při parsování běhemOpennebo při generování běhemSaveAs, přičemž nese fázi (čtení nebo zápis), aktuální číslo listu od 1 a celkový počet — takže aplikace mohou řídit ukazatel průběhu u dlouhých operací napříč více listy se zanedbatelnými náklady na zpětné volání
Verze 2.110.0
Přidáno
- Nový kurzor řádků ve stylu datasetu
TXLSRowCursorpro soubory.xlsx/.xlsm:Open,SelectSheet, potéFindFirst/FindNextprocházejí list po jednom řádku, přičemž v paměti jsou pouze buňky aktuálního řádku — tažená alternativu ke zpětným volánímTXLSDirectReaderpro sekvenční zpracování listů s miliony řádků - Každý řádek zpřístupňuje své číslo řádku listu od 1, obsazené buňky v pořadí dokumentu (zadaná hodnota, text vzorce, index stylu) a vyhledávání
ValueByCol, které vracíNullpro sloupce, které nejsou na daném řádku obsazeny; řádky bez obsazených buněk se přeskakují - Názvy a počet listů jsou k dispozici po
Open(přetížení pro soubor a proud), přičemž sdílené řetězce a detekce formátu data se zpracovávají stejně jako u streamovací čtečky
Verze 2.109.0
Přidáno
- Nový „štětec formátu"
TXLSXCellFormatpro XLSX engine: popište písmo, výplň, ohraničení, zarovnání, číselný formát a ochranu jednou a poté razte libovolný počet cílů pomocíApply(jedna buňka),ApplyRange,ApplyRows,ApplyColsneboApplySheet - Aplikují se pouze skutečně dotčené aspekty — štětec, který nastavuje pouze
Font.Bold, ponechává výplně, ohraničení a číselné formáty cílů nedotčené — takže se štětce skládají se stávajícím formátováním jako formátovací štětec Excelu - Každé použití rozřeší dotčené aspekty do fondů stylů sešitu jednou a poté zapisuje pouze indexy fondů na buňku, takže formátování velkých oblastí stojí jedno vyhledání ve fondu na aspekt místo na buňku;
ApplyRangematerializuje chybějící buňky, zatímco formy řádek/sloupec/list razí pouze stávající buňky
Verze 2.108.0
Přidáno
- Lokalizovatelný zobrazovaný text logických hodnot: nové proměnné
XLSBooleanTrueText/XLSBooleanFalseTextřídí, jak se hodnoty logických buněk vykreslují všude, kde se vytváří zobrazovaný text —FormattedText, export do HTML a měření auto-fit — takže lokalizované aplikace mohou zobrazit například WAHR/FALSCH nebo VRAI/FAUX
Změněno
- Aktualizace: Logické buňky se nyní ve výchozím nastavení zobrazují jako
TRUE/FALSE, což odpovídá mřížce Excelu, namísto kapitalizaceTrue/Falseběhového prostředí
Verze 2.107.0
Přidáno
- Nová událost
OnPasswordna klasickém sešitu XLS: kdyžOpennarazí na šifrovaný sešit a dodané heslo chybí nebo je chybné, událost požádá aplikaci o heslo a pokus o otevření zopakuje (až třikrát) — takže interaktivní nástroje mohou vyzvat uživatele namísto předběžného načítání hesel nebo kontroly chybových kódů - Událost obdrží aktuální heslo odkazem a příznak
Retry; ponecháníRetrynaFalsese vzdá a vrátí původní chybu hesla
Verze 2.106.0
Přidáno
- Nová třída
TXLSFileMonitorsleduje soubor sešitu na disku a spouštíOnFileChanged, když jiný proces — typicky Excel — jej přepíše, takže aplikace mohou automaticky znovu načíst a obnovit své zobrazení - Aktualizace: Založeno na dotazování (čas posledního zápisu plus velikost,
IntervalMskonfigurovatelné, výchozí 1 s), takže funguje stejně na místních discích i síťových sdílených bez smyčky zpráv;SynchronizeEventvolí mezi doručením v hlavním vlákně pro obsluhu UI (výchozí) a přímým doručením ve vlákně sledování pro konzolový kód nebo kód služby - Soubor, který během cyklu uložení na krátkou dobu zmizí, nespustí falešnou událost; změna se nahlásí, jakmile je nový obsah na svém místě
Verze 2.105.0
Přidáno
- Ohraničený auto-fit v klasickém XLS enginu, odpovídající limitům, které XLSX engine již nabízí: nová přetížení
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth)aRowsAutoFit(AMinHeight, AMaxHeight)upínají každou naměřenou šířku sloupce (jednotky šířky Excelu) nebo výšku řádku (body) do dané oblasti — 0 ponechá stranu neohraničenou a prázdný sloupec nebo řádek stále obdrží požadované minimum
Verze 2.104.0
Přidáno
- Nová vlastnost
FormattedTextpouze pro čtení vrací zobrazovaný text buňky — uloženou hodnotu vykreslenou prostřednictvím jejího číselného formátu, tak jak ji Excel ukazuje v mřížce — pokrývající oddělovače tisíců, desetinná místa, procenta, masky data a času, vícesekční masky kladné/záporné/nula a formáty logických hodnot - K dispozici v obou enginech: na
IXLSRangev klasickém XLS enginu (oblasti více buněk vykreslují svou ukotvenou buňku) a naTXLSXCellv XLSX enginu (buňky s formátovaným textem vracejí svůj zřetězený text běhů)
Verze 2.103.0
Přidáno
- Nová funkce
DetectExcelContentFormat(přetížení pro název souboru a proud) identifikuje kontejner sešitu z jeho úvodních bajtů, nikoli z přípony souboru — hlásí složený soubor BIFF/OLE, balíček OOXML.xlsx, balíček OpenDocument.odsnebo prostý oddělený text — takže aplikace mohou směrovat přejmenované soubory nebo soubory bez přípony ke správnému zavaděči
Změněno
- Aktualizace:
TXLSWorkbook.Opennyní čichá k signatuře obsahu a odmítá balíčky založené na ZIP (.xlsxnebo.odspřejmenované na.xls) jasnou zprávou uvádějící správný zavaděč, namísto selhání s neprůhledným chybovým kódem TXLSXWorkbook.Opennyní rozpoznává obsah složeného souboru OLE (starší.xlspřejmenovaný na.xlsxnebo šifrovaný balíček) a hlásí, co soubor skutečně je, namísto toho, aby ukázal chybu parseru ZIP
Verze 2.102.0
Přidáno
- Cross-sešit list copy in the classic XLS (BIFF8) engine now brings the sešit-level defined names a vzorec 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 vzorec 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 vzorec on its computed hodnota as before
Verze 2.101.0
Přidáno
- Cross-sešit list copy in the classic XLS (BIFF8) engine now re-points formulas at the source sešit as an external link when the destination has no sheet of the referenced name and the source has been saved to a soubor: the copied buňka stays a live vzorec (its references switch to the [SourceBook]Sheet form), the source's computed hodnota is kept as the cached result so reads keep working until the link is refreshed, and the external sešit reference round-trips through save and reload; formulas carrying defined-name references, and copies from unsaved source workbooks, keep the computed hodnota as before
Verze 2.100.0
Přidáno
- Array formulas now survive list copies in the classic XLS (BIFF8) engine: each array oblast is rebuilt as a whole in the copy — within the same sešit and across workbooks alike — with the root vzorec recompiled against the destination's sheet names; an array the destination cannot recompile keeps its computed values instead
Opraveno
- Copying a oblast that contains array-vzorec cells between classic XLS worksheets no longer risks a crash on the spill cells (which carry no vzorec tree of their own); such cells now transfer their computed hodnota
Verze 2.99.0
Přidáno
- Chart sheets can now be copied between classic XLS (BIFF8) workbooks: the chart record stream is cloned into the destination, series category / hodnota / 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 soubor still opens), chart font references migrate by hodnota 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-sešit list copy
Verze 2.98.0
Přidáno
- Cross-sešit list copy in the classic XLS (BIFF8) engine now preserves rich-text formatting inside cells: each formatting run's font is migrated by hodnota into the destination sešit'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
Opraveno
- Fonts referenced only by rich-text runs (and not by any buňka formát) are no longer dropped from the FONT table when saving a classic XLS sešit, and the runs now follow the same font reordering as buňka formats on save, so rich-text strings keep the correct fonts after a save/reload cycle
Verze 2.97.0
Přidáno
- Cross-sešit list copy in the classic XLS (BIFF8) engine now also clones embedded pictures: the image bytes migrate into the destination sešit's picture store (identical images are shared rather than duplicated), and each picture frame keeps its buňka anchor, size, visibility, and transparent color; a new CrossWorkbookCopyXls sample project demonstrates the classic-engine copy end to end
Změněno
- Classic XLS cross-sešit copy limitations are now documented: chart sheets are not copied (AddCopy returns nil for them), and a vzorec whose sheet reference has no same-name sheet in the destination keeps the source's computed hodnota instead of becoming an external reference
Verze 2.96.0
Přidáno
- Cross-sešit list copy in the classic XLS (BIFF8) engine now also clones conditional formats (buňka-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-sloupec criteria (the dropdown buttons are rebuilt in the copy), and tables (ids and names are re-issued so they stay unique in the destination sešit); rule formulas are recompiled against the destination's sheet names, matching the behavior of buňka formulas
Verze 2.95.0
Přidáno
- Classic XLS (BIFF8) worksheets can now be copied from one sešit into another: TXLSWorksheets.AddCopy adds a new sheet to the destination sešit and copies the source sheet's buňka 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, řádek heights, sloupec widths, outline levels, frozen panes, sheet protection, page setup, manual page breaks, tab color, and view settings; buňka, řádek, and sloupec formats are migrated by hodnota into the destination sešit's formát table, so a styled source produces an independently styled copy
- Cross-sešit formát migration in the classic XLS engine now carries the full-precision RGB and theme colors alongside each formát entry, so fills, fonts, and borders keep their exact colors instead of falling back to palette approximations; this also applies to oblast-level paste between workbooks
Verze 2.94.0
Přidáno
- Cross-sešit list 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-objekt deep-copies its own state into the destination list
- Cross-sešit vzorec 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 sešit (which is registered as an external link) or #REF! when the source has no soubor identity; the rewrite applies to buňka formulas, conditional-formát rules, data-validation formulas, and chart series ranges alike
Verze 2.93.0
Přidáno
- A list can now be copied from one sešit into another: TXLSXSheets.AddCopy adds a new sheet to the destination sešit and copies the source sheet's cells, formulas, merged ranges, sloupec/řádek sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, page setup, AutoFilter oblast, and tab colour onto it; the six per-buňka style indices are remapped into the destination sešit's own Font/Fill/Border/NumberFormat/Alignment/Protection pools via hodnota-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 hodnota; a new CrossWorkbookCopy sample project demonstrates the cross-sešit copy with style preservation
Verze 2.92.0
Přidáno
- XLSX workbooks now support pivot tables: TXLSXWorksheet.AddPivotTable scans a flat source oblast, auto-builds a pivot cache, and Vrací typed pivot table for řádek / sloupec / page / data-axis wiring, mirroring the long-standing BIFF8 (XLS) engine API so the same code targets either formát; PivotSetDataFieldFormat assigns a number formát to each aggregated hodnota 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 sešit never drops or alters its pivots even when they use features the typed model does not expose
Verze 2.91.0
Přidáno
- Automatický filtr (AutoFilter) listu lze nyní aplikovat na data, takže uložený sešit se otevře s již skrytými neodpovídajícími řádky, což odpovídá chování Excelu, když je hodnota vybrána z rozevíracího seznamu filtru
- Vložené obrázky zpřístupňují svou geometrii v reálných jednotkách (centimetry, palce, body) vedle hodnot EMU a lze měnit jejich velikost podle měřítka s volitelným uzamčením poměru stran
- Okraje nastavení stránky lze zadávat přímo v centimetrech jako metrické usnadnění oproti okrajům založeným na palcích
- Chráněné listy XLSX nyní zpřístupňují patnáct podrobných přepínačů oprávnění (formátovat buňky, vkládat/odstraňovat řádky a sloupce, řadit, automatický filtr, vybírat uzamčené/odemčené buňky a další) prostřednictvím nové vlastnosti AllowOption, která odpovídá seznamu zaškrtávacích políček Revize > Zamknout list v aplikaci Excel; nastavení pro jednotlivé akce zůstávají po uložení a načtení souboru zachována
- Listy XLSX lze nyní duplikovat (TXLSXSheets.Duplicate): přidá se nový list a zkopírují se na něj buňky zdroje, sloučené oblasti, velikosti sloupců/řádků, ukotvené příčky, stav zobrazení, ochrana, nastavení stránky a barva záložky, což odpovídá chování po kliknutí pravým tlačítkem v Excelu > Přesunout nebo zkopírovat > Vytvořit kopii
- Dvacet dva nových ukázkových projektů pokrývá funkce podporované knihovnou: šifrování sešitů, komentáře k buňkám, hypertextové odkazy, definované názvy, vyhodnocování automatických filtrů, vložené obrázky, šablona faktury, pokročilé podmíněné formátování XLSX, sloučené buňky, osnovy řádků/sloupců, ukotvené příčky, rozvržení s více listy, maticové vzorce, kopírování/přesouvání oblastí, hledání/nahrazování, datové systémy, formátovaný text, pokročilé CSV, možnosti exportu do HTML, vlastní číselné formáty, skryté řádky/sloupce a ochrana listu
Verze 2.90.29
Změněno
- Streamovací přímý čtenář nyní počítá každou naplněnou buňku i v případě, že není připojen žádný obslužný program pro jednotlivé buňky, takže obyčejné volání ReadFile lze použít k rychlému zjištění velikosti listu; vrácený počet a vlastnost CellCount udávají počet naskenovaných naplněných buněk
Verze 2.90.28
Přidáno
- Vzorce lze nyní vyhodnocovat krok za krokem, což odpovídá příkazu Evaluate Formula v aplikaci Excel: nový sledovač redukuje výraz po jednom dílčím kroku, počínaje nejvíce vnořeným, a hlásí každou redukci s jejím zdrojovým dílčím výrazem, stejným dílčím výrazem po nahrazení operandů jejich hodnotami a výslednou hodnotou, takže aplikace mohou ukázat, jak je výsledek sestaven; respektuje prioritu operátorů, zachovává odkazy na oblasti nedotčené pro funkce jako SUM a znovu využívá výpočetní jádro listu, takže každý krok souhlasí s úplným přepočtem
Verze 2.90.27
Přidáno
- Sešity XLSX lze nyní vytvářet buňku po buňce prostřednictvím nového streamovacího přímého zapisovače, který emituje každý list přímo do balíčku s přibývajícími řádky, aniž by vytvářel plný strom buněk v paměti, takže lze generovat velmi velké soubory s téměř konstantní paměťovou stopou; zapisovač zpracovává vložené řetězce, čísla, booleovské hodnoty, data a vzorce napříč více listy a hladce spolupracuje se streamovacím přímým čtenářem
Verze 2.90.26
Přidáno
- Sešity XLSX lze nyní skenovat buňku po buňce prostřednictvím nového streamovacího přímého čtenáře, který vyvolává události pro každou buňku a každý list bez vytváření plného stromu buněk v paměti, čímž udržuje paměťovou stopu téměř konstantní i pro velmi velké soubory; každá hlášená buňka nese svou hodnotu, druh (číslo, řetězec, booleovská hodnota, datum nebo chyba), text vzorce a index stylu, s volitelnou detekcí data a podporou předčasného ukončení
Verze 2.90.25
Přidáno
- Klasické sešity XLS nyní mohou přidávat hypertextové odkazy z odkazů na buňky ve stylu A1 se zachováním normalizace URL, podadres cílů sešitu, zobrazovaného textu a tipů na obrazovce
Verze 2.90.24
Přidáno
- Klasické konce stránek XLS lze nyní přidat z pozic řádků nebo sloupců indexovaných od 1 a odkazů na buňky ve stylu A1 prostřednictvím kolekce page-break a přetížení pomocných metod listu
Verze 2.90.23
Přidáno
- Klasické listy XLS a kolekce tvarů nyní mohou vytvářet objekty kreslení obdélníků, oválů, čar a typizovaných automatických tvarů z řetězců rozsahů ve stylu A1
Verze 2.90.22
Přidáno
- Klasické kolekce tvarů XLS nyní mohou vytvářet textová pole z řetězců rozsahů ve stylu A1 pomocí přetížení AddTextBox
Verze 2.90.21
Přidáno
- Klasická textová pole XLS lze nyní přesouvat z řetězců rozsahů ve stylu A1 prostřednictvím nového přetížení SetArea
Verze 2.90.20
Přidáno
- Klasická textová pole listů XLS lze nyní vytvářet z řetězců rozsahů ve stylu A1 pomocí přetížení AddTextBox
Verze 2.90.19
Přidáno
- Klasické listy XLS nyní mohou vytvářet kreslená textová pole přímo z ukotvení řádků a sloupců prostřednictvím nové metody AddTextBox
Verze 2.90.18
Přidáno
- Klasické listy XLS nyní mohou vytvářet komentáře buněk přímo ze souřadnic řádků a sloupců prostřednictvím nových přetížení AddComment
Verze 2.90.17
Přidáno
- Klasické definované názvy XLS lze nyní vytvořit z názvu listu a souřadnic řádků/sloupců prostřednictvím nových přetížení Names.Add
Verze 2.90.16
Přidáno
- Klasické vkládání obrázků XLS nyní může umístit souborové a TBitmap obrázky do dodané buňky listu beze změny aktuálního výběru
Verze 2.90.15
Přidáno
- Klasické sloupce AutoFilter XLS lze nyní nalézt podle indexu pole prostřednictvím kolekce AutoFilterColumns
Verze 2.90.14
Přidáno
- Klasické definované názvy XLS lze nyní vyhledat podle buňky listu prostřednictvím nových přetížení FindByCell v kolekci Names
Verze 2.90.13
Přidáno
- Klasické rozsahy XLS nyní podporují vytvoření komentáře s textem a autorem v jediném volání AddComment
Verze 2.90.12
Přidáno
- Klasické komentáře XLS nyní zpřístupňují vlastnost Author pro nastavení a čtení uloženého autora komentáře prostřednictvím typizovaného rozhraní API
Verze 2.90.11
Opraveno
- Kopírování klasických rozsahů XLS nyní zachovává zkopírované autory komentářů společně s textem komentáře
Verze 2.90.10
Opraveno
- Klasický AddHyperlink XLS nyní ukládá cíle buněk sešitu jako interní podadresy místo externích cest k souborům
Verze 2.90.9
Opraveno
- Kopírování klasických rozsahů XLS nyní zachovává hypertextové odkazy buněk v cíli, včetně adresy, tipu obrazovky a zobrazeného textu
Verze 2.90.8
Opraveno
- Hypertextové odkazy XLS a XLSX nyní před uložením normalizují holé adresy www na absolutní adresy URL http se zachováním zobrazeného textu
Verze 2.90.7
Opraveno
- Klasický ApplyAutoFilter XLS nyní před opětovným sestavením rozsahu filtru ignoruje indexy polí mimo rozsah, čímž zachovává existující kritéria místo jejich vymazání
Verze 2.90.6
Opraveno
- Klasické řady grafů XLS nyní ignorují malá a velká písmena při odmítání odkazů na vlastní list grafu, čímž zabraňují neplatným zdrojům dat Area3D, když se velikost písmen názvu listu liší
Verze 2.90.5
Opraveno
- Klasické listy grafů XLS nyní používají normální ochranu názvu listu při použití vlastních názvů listů grafů, čímž brání duplicitním názvům, které se liší pouze velikostí písmen
Verze 2.90.4
Opraveno
- Klasické kontingenční tabulky XLS nyní při vytváření nebo opětovném použití mezipamětí kontingenčních tabulek nerozlišují velká a malá písmena u zdrojových názvů listů
Verze 2.90.3
Opraveno
- Klasické přejmenování listu XLS nyní odmítá duplicity bez rozlišení velkých a malých písmen, čímž zachovává jednoznačné chování vyhledávání po přejmenování
Verze 2.90.2
Opraveno
- Vyhledávání názvů klasických listů XLS nyní nerozlišuje velká a malá písmena napříč SheetByName, TryGetSheetByName, Index a IDByName
Verze 2.90.1
Opraveno
- Klasické vyhledávání definovaných názvů XLS nyní nerozlišuje velká a malá písmena, takže názvy vyřešené prostřednictvím kolekce Names sešitu se po uložení a opětovném otevření chovají konzistentně
Verze 2.90.0
Změněno
- NEKOMPATIBILNÍ ZMĚNA — kolekce listů XLSX je nyní indexovaná od 1.
Workbook.Sheets[i],Sheets.IndexByNamea celočíselná vlastnostActiveSheetnyní počítají od 1, aby odpovídaly enginu XLS, takže první list jeSheets[1]místoSheets[0]; poziční pomocníciActiveIndex,Activate,Movea argument indexu listu uSaveAsCSV/SaveAsHTML/SaveAsRTFzůstávají indexované od 0 - NEKOMPATIBILNÍ ZMĚNA — FreezePanes přijímá řádek jako první argument v obou enginech. Enginy XLS a XLSX nyní sdílejí
FreezePanes(ARow, ACol); metoda XLSXFreezePane(ACol, ARow)a obrácené dvouargumentové přetížení XLS byly odstraněny, takže volání, které zmrazovalo N sloupců a M řádků, musí prohodit své dva argumenty - NEKOMPATIBILNÍ ZMĚNA — třídy listů XLS ztratily zavádějící předponu I.
IXLSWorksheetaIXLSWorkSheetsse mění naTXLSWorksheetaTXLSWorksheets(vždy to byly třídy, nikdy rozhraní); skutečná rozhraníIXLSWorkbookaIXLSRangezůstávají beze změny - NEKOMPATIBILNÍ ZMĚNA — enum operátoru ověření dat XLS byl přejmenován. Členové
TXLSDvOperatorse mění zxlsDv...naxlsDvOp...(napříkladxlsDvOpBetween), takže již nesdílejí předponu s enumem typu ověření a odpovídají názvům XLSXxlsxDvOp...
Verze 2.89.46
Opraveno
- Vlastní motivy přežijí průchod XLSX tam a zpět. Otevření sešitu s vlastním motivem a jeho opětovné uložení tento motiv zachová místo nahrazení vestavěným motivem Office, takže barvy založené na motivu se již tiše nepřepíší
- Překrývající se sloučené oblasti jsou odmítnuty. Sloučení rozsahu buněk, který se protíná s existující sloučenou oblastí, je nyní odmítnuto místo zápisu překrývajících se položek, kvůli nimž Excel hlásí uložený soubor jako poškozený
- Datum zapsané jako hodnota buňky se zobrazí jako datum. Při přiřazení data nebo času buňce, která je stále ve formátu čísla Obecný, se nyní použije výchozí formát data, takže se v Excelu zobrazí jako datum místo surového sériového čísla; vlastní nastavený číselný formát zůstane beze změny
Zabezpečení
- Hluboce vnořené vzorce již nemohou vyčerpat zásobník. Čtečka vzorců .xls omezuje hloubku vnoření tokenů vzorce, takže chybný nebo útočný sešit s extrémním vnořením je odmítnut místo rizika pádu
Verze 2.89.45
Opraveno
- Názvy záznamů ZIP označené jako UTF-8 se čtou správně. Pokud archiv označí název členu jako UTF-8 (bit 11 pro obecné účely), název se dekóduje jako UTF-8 místo lokální kódové stránky archivu
- Buňky s chybami uložené přímo v souboru .xls se zachovají. Buňka uložená přímo jako chybová hodnota (záznam BOOLERR s nastaveným příznakem chyby) si zachová svůj kód chyby místo čtení prázdné hodnoty
- Šifrování balíčku většího než 2 GB selže čistě. Standardní šifrování odmítne příliš velkou datovou část místo přetečení 32bitové aritmetiky velikosti
Verze 2.89.44
Opraveno
- Export vzorců ODS zachovává definované názvy beze změny. Definovaný název připomínající odkaz na buňku (např.
TaxRate2) se již nepřepisuje jako neplatná adresa buňky ODF a analýza_xlnm.Print_Titlesjiž nerozděluje název listu obsahující čárku - Import ODS je bezpečný za poslední sloupec. Řádek, jehož opakované buňky s formátovaným textem přesahují za poslední sloupec listu, již znovu nepoužívá uvolněný prototyp formátovaného textu
Verze 2.89.43
Opraveno
- Export RTF zachovává text mimo ASCII. Text buněk se zapisuje s Unicode escape sekvencemi
\ua záhlaví deklaruje kódovou stránku, takže znaky CJK / cyrilice / znaky s diakritikou se exportují správně namísto nahrazení znakem „?" podle kódové stránky zapisovače - Navigační rámec HTML s více stránkami escapuje názvy listů. Názvy listů na stránce rejstříku / framesets jsou HTML-escapovány a znaky mimo ASCII se stávají číselnými znaky, takže záložka pojmenovaná značkovacími znaky nebo písmeny mimo ASCII se vykresluje správně
Verze 2.89.42
Opraveno
- Čísla v exponenciálním zápisu ve vzorcích jsou správně analyzována. Literál jako
1E3nebo2.5E-3ve vzorci se nyní tokenizuje jako jediné číslo namísto čísla následovaného nadbytečným názvem - Funkce SEARCH je bezpečná pro Unicode. Funkce SEARCH nerozlišující velikost písmen již neskladuje velká/malá písmena přes kódovou stránku ANSI, takže shody textu mimo ASCII se vyhledávají na správné pozici znaku
Verze 2.89.41
Opraveno
- Datový systém 1904 se použije na data buněk XLSX. Čtení nebo zápis sešitu používajícího základní datum Mac 1904 nyní posune sériová čísla dat o 1462 dní, takže data v takových sešitech odpovídají Excelu místo toho, aby byla posunuty přibližně o čtyři roky
Verze 2.89.40
Opraveno
- Data v souborech XLSX třetích stran se načítají jako data. Buňka, jejíž styl používá jakýkoli vestavěný nebo vlastní formát čísla data/času — nejen vlastní styl data HotXLS — se nyní čte zpět jako hodnota data místo surového sériového čísla, včetně formátů data/času pro lokalizaci CJK
Verze 2.89.39
Opraveno
- Formáty čísel dat jsou detekovány přesněji. Formátovací kód je rozpoznán jako datum/čas pouze podle neescapovaných tokenů data mimo řetězcové literály a sekce v závorkách, takže literál jako
#,##0 "MM"se již nezpracovává jako datum a jednopísmenné kódy jakom/dse již neopomíjejí - Archivy ZIP s rozsáhlým komentářem čtou záznam konce adresáře správně. Záznam konce centrálního adresáře se analyzuje ze skenovacího bufferu pouze tehdy, je-li plně zachycen, a jinak se znovu načte ze souboru, čímž se opravuje případné chybné čtení, když komentář rozdělí záznam přes hranici skenovacího okna
Verze 2.89.38
Opraveno
- Zašifrovaný XLSX zapsaný pomocí Standard Encryption se nyní otevírá v Excelu. Zašifrovaný balíček je šifrován pomocí AES-128 v režimu ECB, jak vyžaduje formát, nikoli CBC, který ponechával vše po prvním bloku nečitelné
- Dešifrování RC4 souborů BIFF8 (.xls) chráněných heslem je opraveno. Klíčový proud je nyní znovu klíčován a spotřebováván v souladu s pozicí proudu, takže správné heslo dešifruje tělo sešitu místo vytváření nečitelných buněk
Verze 2.89.37
Opraveno
- Odstranění listu zachovává konzistenci definovaných názvů. Odebrání listu nyní odstraní definované názvy sešitu vázané na tento list a posune názvy vázané na pozdější listy o jednu pozici dolů, takže uložený sešit již nesměřuje názvem vymezeným pro list (například oblast tisku nebo titulek tisku) na nesprávný list
Verze 2.89.36
Opraveno
- Čtení poškozených souborů .xls je robustnější. Záznamy s více buňkami čísla / prázdné záznamy a paleta barev již nepřekračují mez, pokud jsou jejich pole délky poškozena, a čtečka sešitu se uvolní místo úniku paměti, když otevření souboru vyvolá chybu
- Vkládání obrázků již nezpůsobuje únik paměti při selhání. Načtení poškozeného nebo nečitelného obrázku (BMP / WMF / EMF / JPEG / PNG) uvolní jeho dočasný stream a bitmapu namísto jejich úniku
- Při ukládání se zabraňuje duplicitním záznamům stylů. Styl, jehož první shoda je úplně první položkou v tabulce, je nyní sdílen správně namísto dvojitého zápisu při optimalizaci stylů BIFF
- Export HTML escapuje názvy písem, takže název písma obsahující
&,<,>nebo"již neporuší exportovaný atribut stylu buňky
Verze 2.89.35
Opraveno
- Několik funkcí listu nyní odpovídá chování Excelu.
EXPvrací svůj výsledek místo chyby „nepodporováno",WEEKDAYs jedním argumentem čísluje neděli jako 1,MODzachovává znaménko a desetinnou část dělitele aLEFT/RIGHT/MIDvrací#VALUE!pro záporné délky nebo nesprávný počet argumentů - Číselné znakové reference mimo ASCII v XLSX se nyní čtou správně. Číselné XML entity jako
中ve sdílených řetězcích, textu buněk a atributech se dekódují na celý znak místo jediného zkráceného bajtu - Textová pravidla podmíněného formátování přežívají dvojité uvozovky. Text obsahující
"v pravidlech containsText / beginsWith / endsWith je escapován, takže uložený sešit zůstane platný - Úpravy oblasti podmíněného formátování již nezanechávají nadbytečnou oblast. Vymazání nebo přesunutí sloupce mimo oblast podmíněného formátování již nevytváří překrývající se fantomovou oblast
- Barvy záložek listu indexované v souborech .xls používají správný záznam palety a data s číselným formátem uvnitř záznamů s více buňkami (MULRK) si zachovávají detekci dat v datovém systému 1904
- Kritéria AutoFilter pro horní / dolní procento se přenášejí správně. Načtení filtru „top N procent" nebo „bottom N procent" ze souboru .xls jej již nepovyšuje na prostý počet položek
- Hypertextové odkazy mailto: jsou rozpoznány jako URL a tipy obrazovky (ScreenTips) hypertextových odkazů jsou zapsány tak, aby přežily přenos místo toho, aby byly zahozeny
- Export HTML vydává platné velikosti písem v lokálních nastaveních s desetinnou čárkou, takže exportovaná písma buněk již nespadají zpět na výchozí hodnotu prohlížeče
- Čtení poškozených nebo zkrácených souborů je robustnější. Poškozené kresby OfficeArt, indexy stylů / barev / palet / motivů mimo rozsah a soubory JPEG bez základní linie již nezpůsobují pád nebo nesprávné velikosti, a byl opraven únik paměti sdílených řetězců při načítání formátovaného textu
Verze 2.89.34
Přidáno
- Textová pole na listech XLSX jsou snadněji spravovatelná.
TXLSXWorksheetpřidáváIndexOfTextBoxAt,FindTextBoxAt,DeleteTextBox,DeleteTextBoxAt,DeleteTextBoxesInRangeaClearTextBoxes, které umožňují volajícím vyhledat a odebrat samostatná textová pole kresby podle ukotvovací buňky nebo průsečíkového rozsahu - Ruční zalomení stránek v XLSX lze vyhledat a odebrat podle rozsahu.
TXLSXWorksheetpřidáváIndexOfRowBreak,IndexOfColBreak,RemoveRowBreaksInRangeaRemoveColBreaksInRangepro přímou správu zalomení stránek řádků / sloupců
Opraveno
- Listy XLSX obsahující pouze textová pole nyní zapisují relaci kresby. List, který obsahuje samostatná textová pole kresby, ale žádné obrázky, grafy, komentáře, hypertextové odkazy ani tabulky, nyní vydává odpovídající relaci kresby
xl/worksheets/_rels/sheetN.xml.rels, takže uložený balíček rozloží svůj odkaz<drawing r:id="...">
Verze 2.89.33
Změněno
- Ukázky WorkbookAudit pro C++Builder nyní odpovídají funkcím Delphi. Ukázka WorkbookAudit pro C++Builder odvozuje stejnou závažnost, doporučenou akci a důkazy přezkoumání jako verze pro Delphi ve svém seznamu sešitů i v sestavách JSON, CSV a HTML, a ukázka ConversionWorkbench pro C++Builder zaznamenává zdrojový formát, akci a poznámku přezkoumání pro každý konverzní úkol, včetně souhrnných počtů akcí v sestavě HTML
Verze 2.89.32
Změněno
- Ukázka ConversionWorkbench nyní spouštěna bez obsluhy z příkazového řádku. Volání
ConversionWorkbench.exe <folder> [/targets=xlsx,csv,html] [/persheet] [/skip] [/quiet]prohledá složku, převede každý zdroj na požadované cílové formáty, zapíše sestavy konverze a ukončí se;/quietponechá okno skryté, takže konverze lze spouštět ze skriptů a naplánovaných úloh - Dávkové konverze zůstávají interaktivní. Ukazatel průběhu sleduje seznam úloh (zaškrtnuté zdroje krát zaškrtnuté cíle), tlačítko Storno přeruší dávku se sestavami pokrývajícími dokončené úlohy a dvojitým kliknutím na řádek výsledku se otevře vytvořený soubor (nebo výstupní složka pro sady CSV po listech)
- Možnosti Workbench přetrvávají mezi relacemi. Složka, cílové formáty, oddělovač, možnosti HTML, přepínače ODS, CSV po listech, přeskočení existujících a volby streamování jsou uloženy v souboru INI vedle spustitelného souboru; šifrovací heslo záměrně uloženo není
Verze 2.89.31
Změněno
- Ukázka WorkbookAudit nyní spouštěna bez obsluhy z příkazového řádku. Volání
WorkbookAudit.exe <folder> [/r] [/quiet]prohledá složku (volitelně s podsložkami), audituje každý sešit, exportuje sestavy JSON, CSV a HTML a ukončí se;/quietponechá okno skryté, takže audit lze spouštět ze skriptů a naplánovaných úloh - Velké dávky zůstávají interaktivní. Ukazatel průběhu sleduje dávku, tlačítko Storno ji přeruší (zbývající soubory jsou označeny jako zrušené) a výběr sešitu nyní vyplní panel detailního přehledu po listech s informacemi o struktuře, vzorcích, odkazech a ochraně
- Složka auditu a volba podsložky přetrvávají. Možnosti jsou uloženy v souboru INI vedle spustitelného souboru a obnoveny při dalším spuštění
Verze 2.89.30
Změněno
- Ukázka WorkbookAudit nyní odvozuje závažnost přezkoumání a doporučené akce. Hlavní seznam a sestavy JSON, CSV a HTML zahrnují závažnost, doporučenou akci a důkazy přezkoumání, takže dávkové audity mohou směrovat šifrované, makry povolené, externě propojené, chráněné, stylově nebo vzorci náročné sešity bez čtení každého řádku listu
- Ukázka ConversionWorkbench nyní zapisuje přehled konverzí. Každý úkol zaznamenává zdrojový formát, akci a poznámku přezkoumání, a sestava HTML agreguje počty akcí pro přijatý výstup, sady CSV po listech, opakovaně použité soubory, nepodporované volby cíle, opravy zdroje, kandidáty na opakování a výsledky ručního přezkoumání
Verze 2.89.29
Přidáno
- Klasické sešity XLS nyní čtou vlastnosti dokumentu při otevření. Otevření existujícího souboru nebo streamu .xls naplní
Title,Subject,Author,Keywords,Comments,CompanyaManagerze souhrnných informací souboru, čímž odpovídá chování vlastností dokumentu modelu XLSX; vlastnosti uložené samotným Excelem, včetně nelatinskového textu uloženého v lokalizovaných kódových stránkách ANSI, jsou dekódovány správně
Verze 2.89.28
Změněno
- Ukázka ConversionWorkbench získává čtyři dávkově orientované možnosti. Ukázky pro Delphi a C++Builder nyní umí rozdělit každý list do vlastního souboru CSV (
<name>.<sheet>.csv, pro klasické zdroje XLS i XLSX), zapisovat výstup XLSX chráněný heslem přesSaveAsEncrypted(včetně přechodové cesty klasického XLS), přeskakovat konverze, jejichž výstup již existuje (hlášeno jako přeskočeno, ne znovu spuštěno), a povolovat streamované zápisy XLSX pro velké sešity
Verze 2.89.27
Změněno
- Ukázka WorkbookAudit nyní prohledává hlouběji a označuje rizikové markery. Ukázky pro Delphi a C++Builder získaly rekurzi podsložek s názvy souborů relativními ke složce, detekci XLSX chráněného heslem přes
CanReadEncrypted(hlášeno jako šifrované místo obecné chyby otevření) a sloupec Příznaky, který zobrazuje projekty VBA, externí reference, skryté listy, chráněné listy a šifrované soubory na první pohled v seznamu i v každé sestavě - Sestavy auditu nesou bohatší metadata. Sestava JSON seskupuje kompletní sadu vlastností dokumentu (název, předmět, autor, klíčová slova, společnost, správce, popis, kategorie, vytvořeno, změněno, naposledy změnil) do objektu
docPropsa všechny tři formáty sestav přidávají počty obrázků po listech; názvy vymezené na list jsou nyní shromažďovány vedle názvů na úrovni sešitu pro klasické soubory XLS
Verze 2.89.26
Přidáno
- Ukázky pro Delphi a C++Builder nyní zahrnují dávkový konvertor ConversionWorkbench. Nová ukázka shromažďuje zdroje XLS, XLSX, CSV a ODS ze složky, převádí zaškrtnuté soubory v jednom spuštění na libovolnou kombinaci cílů XLSX, CSV, HTML, RTF, ODS a XLS a směruje každý zdroj přes odpovídající objektový model, včetně mostu
SaveXLSWorkbookAsXLSXpro klasické XLS a dvoustupňové cesty XLS na ODS - Možnosti konverze jsou dostupné pro každý formát. Formulář nabízí volbu oddělovače CSV, možnosti názvu a třídy tabulky HTML a přepínače pro zahrnutí grafů a obrázků ODS; nepodporovaný směr XLSX na XLS je hlášen jako nepodporovaný místo tichého selhání
- Každé spuštění zapisuje sestavu konverze.
ConversionReport.csvaConversionReport.htmlzaznamenávají stav, čas a velikost výstupu pro každý úkol vedle převedených souborů, a ukázkový generátor vytváří vstupy XLS, XLSX, CSV a ODS, takže workbench funguje okamžitě
Verze 2.89.25
Přidáno
- Ukázky pro Delphi a C++Builder nyní zahrnují dávkový nástroj pro audit WorkbookAudit. Nová ukázka prohledá složku sešitů XLS a XLSX a shrne strukturu listů, počty vzorců s používanými názvy funkcí, reference na externí sešity (záznamy externích odkazů, reference vzorců v závorkách a cíle definovaných názvů), hypertextové odkazy, využití stylů, sloučené oblasti, komentáře, tabulky, podmíněné formáty, ověření dat, grafy, rozsahy AutoFilter, ukotvené podokna a stav ochrany
- Výsledky auditu se exportují jako sestavy JSON, CSV a HTML. Jedno kliknutí zapíše
AuditReport.json,AuditReport.csvaAuditReport.htmlvedle auditovaných souborů, pokrývající metadata na úrovni sešitu, skupiny stylů, definované názvy a řádky detailů po listech - Ukázka auditu je samostatná. Ukázkový generátor vytváří klasické sešity XLS a XLSX se vzorci, externími odkazy, skrytými listy, hypertextovými odkazy, komentáři, tabulkami, grafy a chráněnými listy, takže kompletní tok auditu funguje okamžitě
Verze 2.89.24
Opraveno
- Export XLSX do CSV nyní zapisuje vypočítané výsledky vzorců.
TXLSXWorkbook.SaveAsCSVvyhodnocuje buňky vzorců pomocí vzorcového engine sešitu před zápisem textu CSV nebo TSV, takže buňky obsahující pouze vzorce exportují své zobrazené hodnoty místo textu vzorce
Verze 2.89.23
Přidáno
- Export do OpenDocument lze nyní ladit pomocí možností. Nový objekt možností exportu umožňuje uloženému souboru
.odsvyloučit grafy nebo vložené obrázky a přepsat řetězec generátoru zaznamenaný v metadatech dokumentu, prostřednictvím nových přetížení SaveAsODS, která přijímají tyto možnosti - Vyloučený obsah nezanechává žádné stopy. Vypnutí grafů nebo obrázků odstraní jejich složky objektů, rámce kresby a záznamy manifestu dohromady, takže uložený balíček nikdy nenese osiřelý odkaz
Verze 2.89.22
Přidáno
- Soubory OpenDocument se nyní otevírají běžným voláním pro otevření. Předání souboru nebo streamu
.odsobecné metodě otevření automaticky detekuje balíček OpenDocument a načte jej, takže již není nutné předem vědět, zda je soubor.xlsxnebo.ods - Byla přidána zkratka SaveAsODS. Uložení do OpenDocument již nevyžaduje předání hodnoty formátu souboru, čímž odpovídá způsobu ukládání ostatních formátů
- Načtený formát lze dotazovat. Vlastnost SourceFormat oznamuje, zda otevřený sešit pochází ze souboru OpenXML nebo OpenDocument
Verze 2.89.21
Opraveno
- Horní a dolní index jsou zachovány při ukládání formátovaného textu do souboru
.xlsx. Úsek označený jako horní nebo dolní index uvnitř stylizované buňky nyní zapíše svou svislou polohu do sdíleného řetězce a přečte ji zpět, takže zvýšený nebo snížený text přežije přenos přes.xlsxmísto spadnutí na základní linii - Horní a dolní index se přenášejí mezi formáty. Formátovaný text načtený ze souboru
.odszachovává své horní a dolní indexy při opětovném uložení sešitu jako.xlsxa znovuotevření
Verze 2.89.20
Přidáno
- Export a import ODS nyní přenášejí podmíněné formáty barevné škály a datového pruhu. Dvou- nebo tříbarevná škála a datový pruh jsou zapsány s jejich hodnotovými body a barvami a přečteny zpět, čímž rozšiřují existující pravidla porovnání tak, aby tyto grafické formáty přežily přenos přes
.ods - Podmíněné formáty založené na vzorcích jsou podporovány. Pravidlo řízené vzorcem je zapsáno jako podmínka is-true-formula s výrazem přeloženým do syntaxe OpenDocument a přečteno zpět jako pravidlo vzorce, vedle existujících pravidel hodnoty buňky
Verze 2.89.19
Přidáno
- Export a import ODS nyní přenášejí vstupní výzvy ověření dat. Název výzvy a text zobrazený při výběru ověřené buňky jsou zapsány vedle existujícího chybového upozornění a přečteny zpět, takže vstupní zpráva přežije přenos přes
.ods - Barva záložky listu je zachována. Barva záložky listu je zapsána do souboru
.odsa přečtena z něj, přičemž import přijímá jak běžný atribut rozšíření, tak standardní atribut barvy záložky OpenDocument
Verze 2.89.18
Přidáno
- Export a import ODS nyní přenášejí skupiny řádků a sloupců. Skupiny osnovy jsou zapsány jako vnořené prvky skupin řádků a sloupců a přečteny zpět, takže seskupené řádky a sloupce si zachovávají svou úroveň osnovy přes přenos
.ods, včetně několika úrovní vnořování - Sbalené skupiny zůstávají sbalené. Skupina, jejíž řádky nebo sloupce jsou sbaleny, je při ukládání označena jako nezobrazená a při načtení obnovena, a seskupování koexistuje se skrytými řádky, zalomením stránek a velikostí řádků nebo sloupců bez vzájemného rušení
Verze 2.89.17
Přidáno
- Export a import ODS nyní přenášejí oblast tisku. Oblast tisku listu je zapsána do souboru
.odsa přečtena zpět, takže definovaná oblast tisku přežije uložení a znovu načtení - Ruční zalomení stránek jsou zachována. Zalomení stránek řádků a sloupců jsou zapsána jako značky zalomení před dotčenými řádky a sloupci a přečtena zpět při načtení, takže ruční stránkování se přenáší přes
.ods
Verze 2.89.16
Přidáno
- Export a import ODS nyní přenášejí záhlaví a zápatí. Uložení do
.odszapíše záhlaví a zápatí každého listu s jeho levými, středovými a pravými oblastmi, a otevření souboru.odsje přečte zpět, takže pole čísla stránky, počtu stránek, data, času a názvu listu spolu s literálním textem přežijí přenos - Každý list si zachová vlastní záhlaví a zápatí. Sešit, jehož listy nesou různá záhlaví nebo zápatí, nyní zapisuje samostatný styl stránky pro každý list, takže každý list se znovu načte s vlastním záhlavím a zápatím namísto sdílení prvního listu
Verze 2.89.15
Přidáno
- Export a import ODS nyní přenášejí otočení textu. Buňka, jejíž text je otočen, si zachová svůj úhel přes uložení a znovu načtení
.ods, přičemž úhly po a proti směru hodinových ručiček jsou správně mapovány mezi konvencemi tabulkového procesoru a OpenDocument - Odsazení buněk je zachováno. Úroveň odsazení buňky je při ukládání zapsána jako levý okraj a při načtení přečtena zpět, takže odsazené buňky si zachovávají svou hloubku přes přenos
.ods
Verze 2.89.14
Přidáno
- Export ODS nyní zapisuje formátovaný text. Uložení buňky, jejíž text kombinuje několik formátovacích úseků, do
.odsvydá jeden textový span na úsek s vlastním automatickým stylem textové rodiny, takže název písma, velikost, tučné, kurzíva, podtržení, přeškrtnutí, barva a horní nebo dolní index přežijí uložení místo zploštění do jednoho formátu - Identické styly úseků jsou sdíleny. Úseky nesoucí stejné formátování znovu použijí jeden automatický záznam stylu namísto vydávání duplikátu pro každý úsek, a prostá buňka je stále zapsána jako jediný odstavec bez spanu
Verze 2.89.13
Přidáno
- Import ODS nyní zachovává formátování formátovaného textu. Otevření souboru
.ods, jehož buňka kombinuje několik textových spanů s různým formátováním, zachová každý úsek místo zploštění buňky na prostý text, takže název písma, velikost, tučné, kurzíva, podtržení, přeškrtnutí, barva a horní nebo dolní index jsou přenášeny pro každý úsek - Prosté buňky zůstávají prostými. Buňka s jediným neformátovaným úsekem a libovolná číselná, datumová nebo vzorcová buňka jsou ponechány jako běžná hodnota namísto povýšení na formátovaný text
Verze 2.89.12
Přidáno
- Import ODS nyní čte grafy. Otevření souboru
.odsanalyzuje každý vložený objekt grafu odkazovaný z listu, takže sloupcové, pruhové, spojnicové, výsečové, plošné, prstencové, bodové, bublinové a pavučinové grafy jsou obnoveny do listu, který je vlastní, čímž se dokončuje přenos s exportem grafů - Rozsahy série grafů jsou obnoveny. Každá série nese svůj rozsah hodnot a rozsah kategorií, je-li přítomen, převedený zpět ze způsobu zápisu rozsahu buněk OpenDocument, takže graf ukazuje na stejná data listu
- Poškozený nebo chybějící graf je bezpečně přeskočen. Rámec kresby, jehož objekt grafu chybí nebo není grafem, již nezastaví načtení, a jakýkoli záložní obrázek ve stejném rámci je stále importován
Verze 2.89.11
Přidáno
- Export ODS nyní zapisuje vložené obrázky. Uložení do
.odsuloží každý obrázek listu do složkyPictures/balíčku, odkazuje na něj z rámce kresby uvnitř jeho ukotvovací buňky a zaregistruje jej v manifestu, takže obrázky umístěné v sešitu jsou přeneseny do uloženého souboru - Velikost obrázku je zachována. Každý obrázek zapíše svou šířku a výšku v centimetrech, takže obrázek uložený do
.odsa znovu otevřený si zachová stejnou velikost na obrazovce - Obrázky na sloučené buňce zůstávají ukotveny. Obrázek, jehož ukotvení leží uvnitř sloučeného rozsahu, je hostován levou horní buňkou rozsahu, a obrázek ukotvený mimo mřížku listu je přeskočen namísto zapsání jako záznamu bez rámce kresby
Verze 2.89.10
Opraveno
- Úroveň chybového upozornění ověření dat ODS přežije přenos. Uložení ověření, jehož upozornění je varování nebo informace, jej již nevyexportuje bez jeho typu upozornění, takže znovu otevřený soubor
.odszachová původní úroveň namísto tichého snížení na stop upozornění
Verze 2.89.9
Přidáno
- Export ODS nyní zapisuje grafy. Uložení do
.odsserializuje každý graf listu do vlastního vloženého subdokumentu grafu uvnitř balíčku, takže sloupcové, pruhové, spojnicové, výsečové, plošné, prstencové, bodové, bublinové a pavučinové grafy jsou přeneseny do uloženého souboru - Grafy jsou odkazovány ze svého listu. List, který vlastní graf, odkazuje na vložený objekt grafu přes rámec kresby a každý objekt grafu je zaregistrován v manifestu balíčku, takže LibreOffice otevře dokument bez hlášení poškození
- Rozsahy série jsou přeloženy. Každá série grafu nese svůj rozsah hodnot a rozsah kategorií, je-li přítomen, převedený do způsobu zápisu rozsahu buněk OpenDocument, takže graf ukazuje na stejná data listu
Verze 2.89.8
Přidáno
- Import ODS nyní čte vložené obrázky. Otevření souboru
.odsextrahuje obrázky uložené ve složcePictures/balíčku, rozpoznává obrázky PNG, JPEG, GIF a BMP podle jejich obsahu, takže kresba ukotvená v buňce se znovu otevře jako obrázek listu - Umístění obrázku je zachováno. Každý importovaný obrázek si zachová ukotvovací buňku rámce kresby, který jej obsahuje, a jeho šířka a výška jsou převedeny z uložených rozměrů rámce
- Chybějící kresba je bezpečně přeskočena. Rámec kresby, jehož odkazovaný obrázek v balíčku chybí, je přeskočen bez chyby, takže neúplný dokument se stále otevře
Verze 2.89.7
Přidáno
- Export ODS nyní zapisuje ukotvená podokna. Uložení do
.odszaznamenává ukotvené sloupce a řádky každého zmrazeného listu v nastavení zobrazení balíčku, takže list rozdělený do zmrazeného záhlaví se znovu otevře zmrazený v LibreOffice i přesOpenODS - Export ODS nyní zapisuje nastavení stránky. Rozložení stránky v uloženém balíčku nese velikost papíru, orientaci (na výšku nebo na šířku) a horní, dolní, levý a pravý okraj z nastavení stránky listu, přičemž při absenci nastavení stránky se použije výchozí A4 na výšku
Verze 2.89.6
Přidáno
- Import ODS nyní čte ukotvená podokna. Otevření souboru
.odsobnoví ukotvené sloupce a řádky zaznamenané v nastavení zobrazení balíčku, takže list rozdělený do zmrazeného záhlaví se znovu otevře zmrazený - Import ODS nyní čte rozsahy AutoFilter. Filtrovaný rozsah uložený v balíčku jako databázový rozsah je přečten zpět na svůj list, takže rozsahy AutoFilter zapsané přes
SaveAsjsou přečteny zpět přesOpenODS
Verze 2.89.5
Přidáno
- Import ODS nyní čte podmíněné formáty. Otevření souboru
.odsnačte pravidla porovnání hodnot buněk (větší než, menší než, rovno, nerovno, větší nebo rovno, menší nebo rovno, mezi a mimo), každé aplikované na buňky, na které cílí - Pravidla intervalu zachovávají obě meze. Pravidlo „mezi" nebo „mimo" obnoví obě své prahové hodnoty, takže dolní a horní mez přežijí import
- Pravidla porovnání se přenášejí. Podmíněné formáty hodnoty buňky zapsané do
.odsse znovu otevřou s neporušeným operátorem, prahovými hodnotami a cílovým rozsahem, takže pravidla uložená přesSaveAsjsou přečtena zpět přesOpenODS
Verze 2.89.4
Přidáno
- Import ODS nyní čte ověření dat. Otevření souboru
.odsnačte ověření obsahu buněk: číselné rozsahy (mezi a mimo), rozevírací seznamy, kontroly délky textu a skalární porovnání, každé aplikované na buňky, které na ně odkazují - Podrobnosti ověření jsou zachovány. Příznak povolení prázdné buňky a chybové upozornění (jeho styl stop, varování nebo informace a text zprávy) přechází do modelu sešitu
- Členy seznamu přežijí přenos. Rozevírací seznam zapsaný do
.odsse znovu otevře s neporušenými členy, takže ověření uložená přesSaveAsjsou přečtena zpět přesOpenODS
Verze 2.89.3
Přidáno
- Export ODS nyní zapisuje strukturální prvky. Uložení do
.odspřenáší pojmenované rozsahy, hypertextové odkazy buněk, skryté řádky a sloupce, rozsahy AutoFilter, podmíněné formáty a ověření dat do balíčku - Pojmenované rozsahy a hypertextové odkazy se přenášejí. Názvy vymezené na sešit si zachovávají svou adresu, externí a interní odkazy buněk si zachovávají svůj cíl, zobrazovaný text a popis a skryté řádky a sloupce se znovu otevřou skryté
- AutoFilter, podmíněné formáty a ověření jsou vydány. Filtrovaný rozsah je zapsán s tlačítky filtru, podmíněná pravidla porovnání hodnot a ověření obsahu dat buněk jsou zapsána tak, aby je spotřebitelé jako LibreOffice zachovali
Verze 2.89.2
Přidáno
- Import ODS nyní čte úplné styly buněk. Otevření souboru
.odsnačte název písma, velikost písma, tučné, kurzívu, podtržení a přeškrtnutí stylizovaných buněk spolu s již podporovanými uloženými hodnotami a formáty čísel - Barva písma, výplň pozadí a ohraničení jsou importovány. Explicitní barvy písma se mapují na neprůhledné RGB, barva pozadí se stane plnou výplní a čtyři hrany buňky (horní, dolní, levá, pravá) nesou svůj styl a barvu čáry
- Zarovnání je importováno. Vodorovné a svislé zarovnání textu a možnost zalomení textu jsou aplikovány na buňku
- Dědičnost nadřazeného stylu je respektována. Styly čtou své hodnoty přes řetězec nadřazených stylů ODS, takže podřízený styl přepíše atributy nadřazeného jeden po druhém a zdědí vše, co ponechá nenastavené
- Uzavírá smyčku zápisu/čtení. Styly buněk zapsané přes
SaveAsdo.odsjsou přečteny zpět přesOpenODS, přičemž se zachovává písmo, barva, výplň, ohraničení a zarovnání
Verze 2.89.1
Přidáno
- Export ODS nyní zapisuje úplné styly buněk. Uložení do
.odspřenáší název písma, velikost písma, tučné, kurzívu, podtržení, přeškrtnutí a barvu písma do balíčku, takže stylizované buňky si zachovají svůj vzhled při znovu otevření - Výplně pozadí a ohraničení buněk jsou zapsány. Plné barvy pozadí a čtyři hrany buňky (horní, dolní, levá, pravá) jsou vydány s jejich šířkou, stylem čáry a barvou
- Zarovnání a zalomení jsou zachovány. Vodorovné a svislé zarovnání textu spolu s možností zalomení textu přecházejí do stylů buněk ODS
- Styly se kombinují s formáty čísel. Jeden styl buňky může spárovat své písmo, výplň a ohraničení s formátem čísla a identické kombinace stylů jsou sdíleny, takže balíček zůstane kompaktní
Verze 2.89.0
Přidáno
- Export tabulkového procesoru OpenDocument (.ods).
SaveAsnyní přijímáxlsxOpenDocumentSpreadsheeta přímo zapisuje platný balíček ODF bez průchodu přes mezistupeň XLSX - Typizované hodnoty buněk jsou zapisovány. Text, čísla, logické hodnoty a data jsou vydána s jejich typy hodnot ODF, takže hodnoty si zachovávají svůj význam při znovu otevření
- Formáty čísel jsou zachovány. Běžné formáty (desetinná místa, seskupování tisíců, měna, procento, vědecký zápis a data ISO) jsou zapsány jako datové styly ODF a odkazovány buňkami, které je používají
- Struktura listů se přenáší. Listy, šířky sloupců a sloučené oblasti buněk jsou zapsány do balíčku
- Přenos přes HotXLS. Balíček zapsaný přes
SaveAslze přečíst zpět přesOpenODSse zachováním hodnot, formátů čísel, šířek sloupců a sloučení
Verze 2.88.249
Přidáno
- Funkce intervalu spolehlivosti nyní počítají ve vzorcovém engine.
CONFIDENCE.NORMpoužívá normální kvantil aCONFIDENCE.Tkvantil Studentova rozdělení t pro vrácení poloviční šířky intervalu spolehlivosti průměru - Moderní statistické názvy jsou k dispozici.
PERCENTILE.INC,PERCENTILE.EXC,QUARTILE.INC,QUARTILE.EXC,RANK.AVG,COVARIANCE.PaCOVARIANCE.Svyhodnocují inkluzivní a exkluzivní percentily a kvartily, průměrné pořadí při shodách a kovariance populace a výběru - Aliasy pro starší formy.
MODE.SNGLaRANK.EQse mapují na existujícíMODEaRANK
Verze 2.88.248
Přidáno
- Funkce binomického rozdělení nyní počítá ve vzorcovém engine.
BINOM.DISTvyhodnocuje hustotu pravděpodobnosti a kumulativní rozdělení, přičemž pro kumulativní formu používá regularizovanou neúplnou beta funkci - Funkce Poissonova rozdělení nyní počítá ve vzorcovém engine.
POISSON.DISTvyhodnocuje hustotu pravděpodobnosti a kumulativní rozdělení, přičemž pro kumulativní formu používá horní neúplnou gamma funkci - Stabilní výpočet. Obě hustoty používají formu log-gamma faktoriálu pro zachování přesnosti při velkých počtech, a neplatné parametry vrací
#NUM!
Verze 2.88.247
Přidáno
- Funkce beta rozdělení nyní počítají ve vzorcovém engine.
BETA.DISTaBETA.INVvyhodnocují kumulativní rozdělení, hustotu pravděpodobnosti a inverz na volitelném intervalu[A, B] - Funkce Studentova t rozdělení jsou k dispozici.
T.DIST,T.DIST.RT,T.DIST.2T,T.INVaT.INV.2Tpokrývají levý chvost, pravý chvost, dvoustrannou pravděpodobnost a jejich inverzy - Funkce F rozdělení jsou k dispozici.
F.DIST,F.DIST.RT,F.INVaF.INV.RTvyhodnocují kumulativní rozdělení, pravý chvost a inverzy - Sdílené výpočetní jádro. Všechny tři rodiny používají regularizovanou neúplnou beta s výpočtem pomocí řetězových zlomků, inverzy se řeší bisekční metodou a neplatné parametry vrací
#NUM!
Verze 2.88.246
Přidáno
- Funkce gamma a chí-kvadrát rozdělení nyní počítají ve vzorcovém engine.
GAMMA.DIST,GAMMA.INV,CHISQ.DIST,CHISQ.DIST.RT,CHISQ.INVaCHISQ.INV.RTvyhodnocují kumulativní rozdělení, hustotu pravděpodobnosti, pravý chvost a jejich inverzy živě přesCalculate - Vysoce přesný log-gamma je k dispozici.
GAMMALN.PRECISEvrací přirozený logaritmus gama funkce - Přesný a robustní výpočet. Kumulativní hodnoty používají sériové a řetězcové zlomkové rozvoje regularizované neúplné gamma, inverzy se řeší bisekční metodou a neplatné parametry vrací
#NUM!
Verze 2.88.245
Přidáno
- Funkce spojitých rozdělení nyní počítají ve vzorcovém engine.
EXPON.DIST,WEIBULL.DIST,LOGNORM.DISTaLOGNORM.INVvyhodnocují kumulativní rozdělení, hustotu pravděpodobnosti a inverz živě přesCalculate - Výpočet v uzavřené formě. Exponenciální a Weibullovo rozdělení používají své analytické vzorce, zatímco lognormální rozdělení znovu používá normální CDF a jeho inverz; neplatné parametry vrací
#NUM!
Verze 2.88.244
Opraveno
- Inverzní normální rozdělení je nyní přesné v chvostech.
NORMSINV,NORM.S.INVaNORM.INVpoužívaly dekadický logaritmus ve větvích chvostů (pravděpodobnosti pod přibližně 0,024 nebo nad přibližně 0,976), kde algoritmus vyžaduje přirozený logaritmus; výsledky jsou nyní správné v celém rozsahu pravděpodobností
Verze 2.88.243
Přidáno
- Funkce normálního rozdělení s moderními tečkovanými názvy nyní počítají ve vzorcovém engine.
NORM.DIST,NORM.INV,NORM.S.DISTaNORM.S.INVvyhodnocují kumulativní rozdělení, hustotu pravděpodobnosti a jejich inverzy živě přesCalculate - Tečkované statistické aliasy.
STDEV.S,STDEV.P,VAR.SaVAR.Pjsou rozpoznány jako názvy Excel 2010+ pro výběrovou a populační směrodatnou odchylku a rozptyl - Tečkované názvy funkcí jsou správně analyzovány. Analyzátor vzorců nyní zpracovává název jako
NORM.S.DISTjako jednu funkci, takže tyto funkce fungují vCalculatea přenášejí se přes předponu OOXML_xlfn.
Verze 2.88.242
Přidáno
- Inženýrské funkce pro komplexní čísla nyní počítají ve vzorcovém engine.
COMPLEXsestaví komplexní číslo jako text a rodinaIM*jej čte a pracuje s ním, vše vyhodnocováno živě přesCalculate - Části a aritmetika.
IMREAL,IMAGINARY,IMABS,IMARGUMENTaIMCONJUGATEzpřístupňují složky, zatímcoIMSUM,IMSUB,IMPRODUCTaIMDIVprovádějí komplexní aritmetiku - Transcendentní funkce.
IMPOWER,IMSQRT,IMEXPaIMLNjsou vyhodnocovány přes polární formu a imaginární přípona může býtineboj
Verze 2.88.241
Přidáno
- Funkce dynamického pole
XLOOKUPaFILTERnyní počítají ve vzorcovém engine. Obě vyhodnocují živě přesCalculate, čímž přinášejí moderní vyhledávání a filtrování do vzorců listu a ad hoc vyhodnocování XLOOKUPs režimy shody a vyhledávání. Jsou podporovány přesné (výchozí), zástupné znaky a přibližné shody s dalším menším / dalším větším, spolu s prohledáváním od prvního k poslednímu nebo od posledního k prvnímu a volitelným výsledkemif_not_foundFILTERs přelitými výsledky. Řádky, jejichž vektorové podmínky jsou TRUE, jsou zachovány a přelity do cílového rozsahu přesSetArrayFormula, s volitelnou hodnotouif_empty, když nic neodpovídá
Verze 2.88.240
Přidáno
- Matematické funkce
GCD,LCM,MROUND,QUOTIENTaMULTINOMIALnyní počítají ve vzorcovém engine. Vyhodnocují živě přesCalculate, pokrývají největší společný dělitel, nejmenší společný násobek, zaokrouhlení na násobek, celočíselné dělení a multinomiální koeficient - Konverze základu a římské číslice.
BASEzakóduje číslo v libovolném základu od 2 do 36 s volitelným doplněním nulami,DECIMALtakový řetězec zpět převede na číslo aARABICpřevede římskou číslici na její hodnotu
Verze 2.88.239
Přidáno
- Agregační funkce
PRODUCTaSUMSQnyní počítají ve vzorcovém engine.PRODUCTnásobí své číselné argumenty aSUMSQsčítá jejich čtverce, obě vyhodnocovány živě přesCalculate - Varianta A pro rozptyl a směrodatnou odchylku.
VARA,VARPA,STDEVAaSTDEVPApočítají výběrový a populační rozptyl při počítání textu jako 0 a TRUE jako 1, na rozdíl od prostých forem, které ignorují nečíselné hodnoty
Verze 2.88.238
Přidáno
- Statistické agregační funkce nyní počítají ve vzorcovém engine.
VAR,VARP,STDEV,STDEVP,MODE,COUNTBLANKaAVERAGEAvyhodnocují živě přesCalculate - Rozptyl a směrodatná odchylka.
VARaSTDEVpoužívají výběrový vzorec, zatímcoVARPaSTDEVPpoužívají populační vzorec, a to jak pro rozsahy, tak pro argumenty vložené přímo - Nejčastěji se vyskytující hodnota.
MODEvrací nejčastěji se vyskytující číslo a hlásí#N/A, pokud se žádná hodnota neopakuje - Počítání prázdných buněk.
COUNTBLANKpočítá prázdné buňky v rozsahu, včetně buněk obsahujících prázdný textový výsledek - Průměr s ohledem na text.
AVERAGEAprůměruje hodnoty a počítá text jako nulu a logické TRUE jako jednu, takže se liší odAVERAGE, který text ignoruje
Verze 2.88.237
Přidáno
- Bitové funkce nyní počítají ve vzorcovém engine.
BITAND,BITOR,BITXOR,BITLSHIFTaBITRSHIFTvyhodnocují živě přesCalculate - Bitový AND, OR a XOR.
BITAND,BITORaBITXORkombinují dvě nezáporná celá čísla bit po bitu - Bitový posun v obou směrech.
BITLSHIFTposune bity čísla doleva aBITRSHIFTdoprava; záporná hodnota posunu obrátí směr - Limity kompatibilní s Excelem. Operandy musí být celá čísla od 0 do 2^48-1 a hodnota posunu je omezena na 53 míst; hodnoty mimo tyto limity vrací
#NUM! - Přenos s předponou OOXML. Při uložení do XLSX jsou tyto funkce Excelu 2013 zapsány s předponou
_xlfn.a znovu otevřeny čistě, takže správně zobrazují a přepočítávají
Verze 2.88.236
Přidáno
- Inženýrské funkce pro konverzi základu nyní počítají ve vzorcovém engine.
DEC2BIN,DEC2OCT,DEC2HEX,BIN2DEC,OCT2DEC,HEX2DEC,HEX2BIN,BIN2HEX,HEX2OCT,OCT2HEX,BIN2OCTaOCT2BINvyhodnocují živě přesCalculate - Konverze mezi binární, oktalovou, desítkovou a šestnáctkovou soustavou. Čísla se převádějí v obou směrech přes všechny čtyři soustavy, včetně křížových párů jako šestnáctková na binární
- Znaménkové hodnoty přes dvojkový doplněk. Záporná čísla jsou reprezentována ve standardní 10místné formě dvojkového doplňku, takže hodnoty se správně přenášejí přes konverze
- Volitelný výstup s pevnou šířkou. Konverze na textovou číselnou soustavu přijímají volitelný argument počtu míst, který doplní výsledek úvodními nulami na pevnou šířku
- Ověření rozsahu a vstupů. Hodnoty mimo reprezentovatelný rozsah nebo text obsahující číslice neplatné pro zdrojovou soustavu vrací
#NUM!
Verze 2.88.235
Přidáno
- Funkce pracovních dnů nyní počítají ve vzorcovém engine.
WORKDAYaNETWORKDAYSvyhodnocují živě přesCalculate - Posunutí data s ohledem na víkendy.
WORKDAYvrací datum daného počtu pracovních dnů před nebo po počátečním datu, přeskakuje soboty a neděle; záporný počet se posouvá zpět a počet nula vrací počáteční datum - Počítání pracovních dnů.
NETWORKDAYSpočítá celé pracovní dny mezi dvěma daty včetně obou koncových bodů a vrací záporný počet, když je počáteční datum pozdější než koncové - Volitelné seznamy svátků. Obě funkce přijímají volitelný argument svátků zadaný jako jedno datum nebo rozsah buněk a tato data vylučují z výpočtu pracovních dnů
Verze 2.88.234
Přidáno
- Funkce data a času nyní počítají ve vzorcovém engine.
EDATE,EOMONTH,DATEDIF,YEARFRAC,DAYS,WEEKNUMaISOWEEKNUMvyhodnocují živě přesCalculate - Měsíční aritmetika s ořezáváním na konec měsíce.
EDATEposune datum o celý počet měsíců aEOMONTHvrátí poslední den posunutého měsíce; obě funkce ořezávají na kratší měsíc, například 31. posunutý do února - Intervalové jednotky
DATEDIF. Jsou podporovány jednotky plného počtu"Y","M"a"D"spolu s jednotkami zbytku"YM","YD"a"MD" - Základy počítání dnů
YEARFRAC. Všech pět základů je implementováno: US 30/360, skutečné/skutečné, skutečné/360, skutečné/365 a evropské 30/360 - Číslování týdnů.
WEEKNUMpodporuje konvence začátku v neděli, začátku v pondělí a ISO (návratový typ 21) aISOWEEKNUMvrací číslo týdne ISO 8601
Verze 2.88.233
Přidáno
- Databázové funkce nyní počítají ve vzorcovém engine.
DSUM,DCOUNT,DCOUNTA,DAVERAGE,DMIN,DMAX,DPRODUCT,DGET,DVAR,DVARP,DSTDEVaDSTDEVPvyhodnocují živě přesCalculatea přepočítávají při znovu otevření sešitu - Standardní porovnávání dle tabulky kritérií. Podmínky umístěné pod záhlavími polí se v rámci řádku kombinují jako AND a napříč řádky jako OR, podporují operátory porovnávání jako
>,<a>=a umožňují textové porovnávání se zástupnými znaky*/?; prázdné buňky kritérií nepřidávají žádné omezení - Flexibilní selektor polí. Agregované pole lze zadat jako text záhlaví sloupce, 1-indexovaný index sloupce nebo odkaz na buňku záhlaví
- Vyhledávání jednoho záznamu pomocí
DGET.DGETvrátí hodnotu pole odpovídajícího záznamu včetně textu a hlásí#NUM!při shodě více záznamů nebo#VALUE!při žádné shodě
Verze 2.88.232
Přidáno
OpenODSnyní importuje ochranu listů ODS. Tabulky ODS stable:protected="true"se nyní otevírají jako chráněné listy pomocí existujícího stavu ochrany listu bez hesla; ochranné klíče ODS nejsou zpracovány jako starší hash hesel XLSX
Verze 2.88.231
Přidáno
OpenODSnyní importuje pojmenované rozsahy ODS. Záznamytable:named-rangestable:cell-range-addressnyní naplňujíDefinedNamessešitu a převádějí reference na listy/buňky ODS jako$Sheet.$A$1:$Sheet.$B$2na vzorce definovaných názvů XLSX
Verze 2.88.230
Přidáno
OpenODSnyní importuje styly ochrany buněk ODS. Styly buněk tabulky používajícístyle:cell-protectnyní mapujínone,formula-hidden,protectedahidden-and-protectedna importovaný stav buněkLockedaFormulaHidden, včetně hodnot zděděných přesstyle:parent-style-name
Verze 2.88.229
Přidáno
OpenODSnyní importuje základní vzorce ODS. Buňky vzorců používajícíof:=nebooooc:=nyní zachovávají své uložené skalární hodnoty a importují normalizovaný vzorec XLSX s lokálními odkazovanými referencemi jako[.A1:.B1]a oddělovači argumentů středníkem převedenými na syntaxi Excelu
Verze 2.88.228
Přidáno
OpenODSnyní rozlišuje zděděné styly řádků a sloupců ODS. Styly řádků a sloupců tabulky používajícístyle:parent-style-namenyní dědí výšku řádku, šířku sloupce a nastavení viditelnosti nadřazeného stylu, když balíčky ODS odkazují na podřízené styly zcontent.xml
Verze 2.88.227
Přidáno
OpenODSnyní rozlišuje zděděné styly buněk tabulky ODS. Styly buněk tabulky používajícístyle:parent-style-namenyní dědí mapování datových stylů nadřazeného stylu při importu ODS, takže podřízené styly zachovávají importované hodnotyNumberFormatXLSX i tehdy, když je datový styl deklarován na nadřazeném stylu
Verze 2.88.226
Přidáno
OpenODSnyní předem načítá styly řádků a sloupců ODS uložené v souborustyles.xml. Vlastnosti stylů řádků a sloupců tabulky ze souborustyles.xmlnyní ovlivňují import skrytých řádků/sloupců a výšky řádků/šířky sloupců, když na tyto názvy stylů odkazujecontent.xml
Verze 2.88.225
Přidáno
OpenODSnyní používá datové styly ODS uložené v souborustyles.xml. Pojmenované styly buněk tabulky a datové styly čísel/datumů/časů ze souborustyles.xmlnyní participují na rozlišováníNumberFormatXLSX při importu, zatímco automatické stylycontent.xmlje mohou stále přepisovat
Verze 2.88.224
Přidáno
OpenODSnyní importuje formáty zlomkových čísel ODS. Komponentynumber:fractionODS se nyní mapují na zlomkové formáty XLSX jako0 ?/??a zachovávají nastavení zobrazení zlomků při importu
Verze 2.88.223
Přidáno
OpenODSnyní importuje formáty vědeckých čísel ODS. Komponentynumber:scientific-numberODS se nyní mapují na formáty čísel XLSX jako0.000E+00a zachovávají nastavení zobrazení vědeckého zápisu při importu
Verze 2.88.222
Přidáno
OpenODSnyní zachovává literálynumber:textv číselných datových stylech ODS. Styly čísel, procent a měn, které umísťujínumber:textpřed nebo zanumber:number, nyní importují tyto literály do formátu čísla XLSX a zachovávají popisky a jednotkové přípony jakokg
Verze 2.88.221
Opraveno
OpenODSnyní importuje záporné časové trvání ODS. Hodnotyoffice:time-valuejako-PT02H03M04Sse nyní importují jako záporné sériové hodnoty času namísto přeskočení
Verze 2.88.220
Opraveno
OpenODSnyní rozlišuje výchozí styly buněk pro každý opakovaný sloupec. Opakovaná buňka ODS, která překračuje hranice výchozích stylů sloupců, nyní aplikuje formát čísla výchozího sloupce nebo tabulky každého cílového sloupce namísto opakovaného použití formátu prvního opakovaného sloupce
Verze 2.88.219
Přidáno
OpenODSnyní zachovává zlomky sekund v hodnotách dat ODS. Časová razítkaoffice:date-valuejako2026-06-04T12:30:00.250nyní zachovávají svou milisekundovou složku namísto zkrácení na celé sekundy
Verze 2.88.218
Přidáno
OpenODSnyní importuje viditelnost listů ODS. Tabulky ODS se skrytými hodnotamitable:visibilityjakocollapsese nyní importují jako skryté listy XLSX namísto vždy viditelných záložek
Verze 2.88.217
Přidáno
OpenODSnyní aplikuje výchozí styly buněk ODS.table:default-cell-style-namena tabulkách, sloupcích a řádcích nyní participuje na rozlišování formátů čísel pro buňky bez příméhotable:style-name, s prioritou buňka, řádek, sloupec, tabulka
Verze 2.88.216
Přidáno
OpenODSnyní importuje komponenty stylů data a času ODS. Datové styly data a času nyní čtou běžné uzlynumber:year,number:month,number:day,number:hours,number:minutes,number:seconds,number:am-pmanumber:text, takže importované buňky zachovávají pořadí komponent a oddělovače jakodd/mm/yyyynebohh:mm
Verze 2.88.215
Přidáno
OpenODSnyní importuje formáty čísel ODS s minimálním počtem číslic. Datové styly čísel, procent a měn snumber:min-integer-digitsanumber:min-decimal-placesse nyní mapují na řetězceNumberFormatXLSX s úvodními nulami a volitelnými koncovými desetinnými zástupnými symboly
Verze 2.88.214
Přidáno
OpenODSnyní importuje seskupené formáty čísel ODS. Datové styly čísel, procent a měn snumber:grouping="true"se nyní mapují na řetězceNumberFormatXLSX se seskupovacími oddělovači stylu#,##0
Verze 2.88.213
Přidáno
OpenODSnyní zachovává symboly měn ODS v importovaných formátech čísel. Datové styly měn snumber:currency-symbolnyní používají tento symbol jako předponuNumberFormatXLSX, takže formáty jakoEUR#,##0.00se již neskladují na$#,##0.00
Verze 2.88.212
Přidáno
OpenODSnyní respektuje nastavení desetinných míst ODS v základních formátech čísel. Datové styly čísel, procent a měn snumber:decimal-placesse nyní mapují na odpovídající řetězceNumberFormatXLSX jako0,0.0%nebo$#,##0
Verze 2.88.211
Přidáno
OpenODSnyní importuje netypizované uložené skalární hodnoty ODS. Buňky bezoffice:value-typenyní používají dostupné atributyoffice:value,office:boolean-value,office:date-value,office:time-valueaoffice:string-valuepřed přechodem na textový obsah
Verze 2.88.210
Přidáno
OpenODSnyní zachovává hranice odstavců textu ODS. Více odstavcůtext:pse importuje s konci řádků, zatímco ovládací prvky prázdných znakůtext:s,text:tabatext:line-breakzůstávají v textu buňky namísto sloučení dohromady
Verze 2.88.209
Přidáno
OpenODSnyní importuje rozměry řádků a sloupců ODS. Styly sloupců a řádků tabulky ODS sstyle:column-width/style:row-heightjsou mapovány naColWidth/RowHeight, včetně opakovaných řádků a sloupců
Verze 2.88.208
Přidáno
- Ovládací prvky okna a geometrie sešitu XLSX.
TXLSXWorkbooknyní zpřístupňujeMinimized,WindowHidden,ShowHorizontalScroll,ShowVerticalScroll,XWindow,YWindow,WindowWidthaWindowHeightpro fasádu XLSX;SaveAszapisuje odpovídající atributy<workbookView>,Openje přenáší a hodnoty geometrie se ořezávají na rozsah kompatibilní s OOXML 0..65535
Verze 2.88.207
Přidáno
- Ovládací prvky zobrazení sešitu XLSX.
TXLSXWorkbooknyní zpřístupňujeShowSheetTabs,TabRatio,FirstSheetaAutoFilterDateGrouping, takže volající mohou ovládat panel záložek sešitu a seskupení dat AutoFilter přes fasádu XLSX;SaveAszapisuje odpovídající atributy<workbookView>,Openje přenáší,TabRatiose ořezává na 0..1000 aFirstSheetse ořezává na existující 0-indexovaný index listu
Verze 2.88.206
Přidáno
- Pomocné funkce AutoFit XLSX s mezemi.
TXLSXWorksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRowsa obálkyAutoFitColumns/AutoFitRowsproTXLSXRangenyní přijímají volitelné minimální a maximální limity šířky/výšky, takže volající mohou přizpůsobit obsah a zároveň udržet rozložení sestav v rámci designových hranic
Opraveno
- Názvy písem formátovaného textu XLSX v HTML. Export HTML nyní vydává CSS
font-familyformátovaného textu s dvojitě uvozovanými názvy před HTML escapováním, čímž odpovídá zdokumentovanému výstupu"..."pro stylizované úseky
Verze 2.88.205
Přidáno
- Tvary obdélníku, oválu a čáry (XLS). Rozhraní API kresby .xls získává
Shapes.AddRectangle,Shapes.AddOvalaShapes.AddLine(plus obecnýAddAutoShape), takže typizované automatické tvary lze vytvářet a ukotvovat k rozsahu buněk bez ručního sestavování záznamů OfficeArt; každý vrací tvar, jehož formátováníFillaLinelze nastavit; dříve bylo možné přidávat pouze obrázky, textová pole a komentáře
Verze 2.88.204
Přidáno
- Bodové, bublinové a pavučinové grafy (XLSX).
AddChartnyní přijímáxlsxChartScatter(XY bodový),xlsxChartBubble(s rozsahem velikosti bubliny pro každou sérii) axlsxChartRadarvedle existujících typů sloupcový / pruhový / spojnicový / výsečový / plošný / prstencový; bodové a bublinové série vykreslují rozsah kategorií jako X a rozsah hodnot jako Y; bublinový přidáváBubbleSizeRange
Verze 2.88.203
Přidáno
- Typizovaná pravidla ověření dat s výzvami a upozorněními (XLS). Klasický engine .xls získává
AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidationaAddCustomValidation(dříve bylo dostupné pouze ověření seznamem); každé vrací pravidlo, které může nést vstupní výzvu, chybové upozornění s ikonou stop / varování / informace a přepínač povolení prázdné hodnoty přesSetPrompt/SetError/AllowBlank
Verze 2.88.202
Přidáno
- Vstupní výzvy a chybová upozornění pro ověření dat (XLSX). Pravidlo ověření dat nyní může nést vstupní výzvu (název a zpráva zobrazená při výběru buňky) a chybové upozornění (název, zpráva a ikona stop / varování / informace zobrazená při neplatném vstupu), plus ovládání šipky rozevíracího seznamu; nastavují se přes
SetPrompt,SetErrora nové vlastnostiPromptTitle/Prompt/ErrorTitle/ErrorMessage/ErrorStyle/ShowDropDown; přenášejí se při načtení
Verze 2.88.201
Přidáno
- Více typů pravidel podmíněného formátování (XLSX). Engine XLSX získává textová pravidla (obsahuje, neobsahuje, začíná na, končí na), horních/dolních N (s volitelným procentem), nad průměrem a pod průměrem, duplicitní a jedinečné hodnoty, prázdné / neprázdné / chyby / bez chyb — každé přes vyhrazenou metodu
AddCondFormat*a každé schopné nést zvýraznění přes svůjStyle; tato pravidla se také přenášejí při načtení
Verze 2.88.200
Přidáno
- Podmíněné formátování řízené vzorcem (XLSX). Nové pravidlo podmíněného formátování zvýrazňuje buňky libovolným vzorcem přes
AddCondFormatExpression: vzorec se vyhodnocuje pro každou buňku a buňky, kde je pravdivý, přijmou zvýraznění pravidla
Změněno
- Podmíněné formáty nyní zvýrazňují buňky v souboru .xlsx. Pravidla podmíněného formátování hodnoty buňky a vzorce nyní nesou diferenciální styl — barvu výplně, barvu písma a tučné / kurzívu / podtržení — zapsaný do tabulky stylů sešitu, takže Excel obarví odpovídající buňky; dříve byly podmíněné formáty XLSX ukládány bez jakéhokoli zvýraznění
Verze 2.88.199
Přidáno
- Vzorcové funkce TEXTJOIN a CONCAT. Vestavěný výpočetní engine nyní vyhodnocuje
TEXTJOIN(spojení textových hodnot s oddělovačem, volitelně přeskakuje prázdné buňky) aCONCAT(spojení textových hodnot bez oddělovače), přičemž obě expandují argumenty rozsahu buňku po buňce — na rozdíl od staršíhoCONCATENATE; uložené soubory.xlsxzapisují tyto funkce Excelu 2016 s předponou_xlfn., takže Excel je otevírá jako skutečné funkce
Verze 2.88.198
Přidáno
- Vzorcové funkce SUMIFS, COUNTIFS, AVERAGEIFS, MAXIFS a MINIFS. Vestavěný výpočetní engine nyní vyhodnocuje tyto vícepoložkové agregace, které sčítají, počítají, průměrují nebo berou největší či nejmenší hodnoty buněk splňujících každé kritérium napříč jedním nebo více paralelními rozsahy; kritéria přijímají operátory porovnání jako
">=30"a textové zástupné znaky; AVERAGEIFS bez odpovídajících buněk vrátí #DIV/0! a MAXIFS/MINIFS vrátí 0 jako Excel; novější MAXIFS a MINIFS jsou zapisovány do.xlsxs předponou_xlfn.
Verze 2.88.197
Přidáno
- Vzorcové funkce IFS, SWITCH a IFNA. Vestavěný výpočetní engine nyní vyhodnocuje moderní logické funkce
IFS(hodnota první pravdivé podmínky),SWITCH(porovnání výrazu se seznamem případů s volitelnou výchozí hodnotou) aIFNA(náhrada hodnoty pouze když je výsledek chybou #N/A); protože tyto funkce byly zavedeny po původní sadě funkcí .xls, ukládání do.xlsxje zapisuje s předponou_xlfn.
Verze 2.88.196
Přidáno
- Vzorcové funkce INDEX a OFFSET. Vestavěný výpočetní engine nyní vyhodnocuje
INDEX(čtení hodnoty podle pozice řádku a sloupce uvnitř rozsahu) aOFFSET(čtení hodnoty daný počet řádků a sloupců od ukotvovací buňky), obě přesCalculate; dvoucestné vyhledáváníINDEX/MATCHa reference ukotvené přesOFFSETnyní počítají správně a pozice mimo rozsah vrátí chybu #REF!
Verze 2.88.195
Opraveno
- Exportovaný HTML zachovává ohraničení a stínování řádku záhlaví. Pokud buňka používala pojmenované písmo, export XLSX do HTML zapsal název písma v dvojitých uvozovkách uvnitř atributu stylu v dvojitých uvozovkách, čímž styl zkrátil, takže buňka ztratila ohraničení, výplň a velikost; názvy písem jsou nyní v jednoduchých uvozovkách, takže stylizovaný řádek záhlaví se exportuje s neporušenými mřížkovými čarami včetně čáry uzavírající horní část tabulky a barvou pozadí
- Export RTF nyní odpovídá rozložení HTML a Excelu. Export XLSX do RTF získal ohraničení buněk, překlenutí sloučených buněk a plné stínování výplně a nyní zmenšuje šířky sloupců tak, aby se vešly na tisknutelnou stránku, takže široký sloupec s automatickým přizpůsobením již nevytlačí tabulku ze stránky; dříve tabulka RTF neměla ohraničení, vynechávala sloučené nadpisy a mohla být mnohem širší než stránka
Verze 2.88.194
Opraveno
- Opětovné uložení sešitu .xls obsahujícího textové pole jej již neporuší. Otevření souboru XLS s textovým polem a jeho opětovné uložení dříve zduplikovalo interní záznam kresby, čímž vznikl sešit, který způsobil pád Excelu při znovu otevření; data kresby textového pole se nyní správně přenášejí, takže znovu uložený sešit se otevírá normálně
Verze 2.88.193
Opraveno
- Soubory .xlsx chráněné heslem se nyní otevírají v Excelu. Uložení sešitu s heslem přes
SaveAsEncrypteddříve vytvořilo balíček Standard Encryption ECMA-376, jehož šifrovaný text AES byl generován nesprávně, takže Excel soubor odmítl i se správným heslem; šifrování AES-128 nyní produkuje standardně konformní výstup a šifrovaný sešit se otevírá v Excelu 2007 a novějším s heslem použitým při uložení
Změněno
- Hardwarově akcelerovaný AES pro šifrování XLSX. Šifra AES-128 za Standard Encryption XLSX nyní používá instrukce CPU AES-NI na 32bitovém i 64bitovém Windows, pokud procesor tyto instrukce podporuje, čímž se urychluje ukládání s ochranou heslem; procesory bez AES-NI automaticky přejdou na přenosnou softwarovou implementaci, takže výstup je identický na každém stroji
Verze 2.88.192
Přidáno
- Maticové vzorce přežívají uložení a znovu otevření v XLSX. Vícebuněčný maticový (CSE) vzorec nastavený přes
SetArrayFormulaje nyní uložen do souborů.xlsxa znovu načten jako skutečný maticový vzorec, takže uložení sešitu a jeho znovu otevření zachová ukotvený přelitý rozsah a každá buňka stále vyhodnocuje svůj vlastní prvek výsledku matice; dříve uložený maticový vzorec ztratil svůj přelitý rozsah při znovu otevření souboru
Verze 2.88.191
Přidáno
- Maticové vzorce se přelévají přes rozsah buněk (XLSX). Rozsah engine XLSX získává stejný
SetArrayFormulajako engine XLS: vícebuněčný maticový (CSE) vzorec jako{=MMULT(A1:B2;D1:E2)}nastavený přes blok buněk přeleje svůj výsledek matice tak, aby každá buňka vyhodnotila svůj vlastní prvek; tím se dokončuje podpora vícebuněčných maticových vzorců v obou enginech XLS a XLSX
Verze 2.88.190
Přidáno
- Maticové vzorce se přelévají přes rozsah buněk (XLS). Nová metoda
SetArrayFormulana rozsahu nastaví vícebuněčný maticový (CSE) vzorec jako{=MMULT(A1:B2;D1:E2)}přes blok buněk a výpočetní engine vzorce nyní přeleje výsledek matice do tohoto bloku, takže každá buňka čte svůj vlastní prvek; matice se počítá jednou za přepočet a sdílí se přes celý rozsah
Verze 2.88.189
Přidáno
- Vzorcové funkce MINVERSE a MMULT. Vestavěný výpočetní engine nyní vyhodnocuje
MINVERSE(inverzní matice) aMMULT(součin matic); volaná přesCalculate, každá vrátí výslednou matici jako dvourozměrné pole čitelné prvek po prvku;MINVERSEvyžaduje čtvercový rozsah a vrátí chybu #NUM! pro singulární matici;MMULTvyžaduje shodu vnitřních rozměrů a jinak vrátí chybu #VALUE!
Verze 2.88.188
Přidáno
- Vzorcová funkce MDETERM. Vestavěný výpočetní engine nyní vyhodnocuje
MDETERMa vrací determinant matice čtvercového rozsahu přesCalculate; nečtvercový rozsah nebo rozsah obsahující prázdnou nebo nečíselnou buňku vrátí chybu #VALUE!
Verze 2.88.187
Přidáno
- Statistické vzorcové funkce. Vestavěný výpočetní engine nyní vyhodnocuje
MEDIAN,LARGE,SMALLaRANK, takže vzorce shrnující rozsah čísel se přepočítávají správně přesCalculate.MEDIANpřijímá kombinaci přímých čísel a rozsahů;LARGEaSMALLvrací k-tou největší a k-tou nejmenší hodnotu;RANKhlásí pozici čísla a řadí sestupně ve výchozím nastavení nebo vzestupně při zadání nenulového argumentu pořadí
Verze 2.88.186
Přidáno
- Vyhledávací vzorcové funkce. Vestavěný výpočetní engine nyní vyhodnocuje
CHOOSEaMATCH, takže vzorce vybírající argument podle indexu nebo hledající pozici hodnoty v řádku či sloupci se přepočítávají správně přesCalculate.MATCHpodporuje všechny tři typy shody — přesná (0), největší hodnota nepřesahující hledanou v vzestupném rozsahu (1, výchozí) a nejmenší hodnota ne menší než hledaná v sestupném rozsahu (-1) — a porovnává text bez ohledu na velikost písmen
Verze 2.88.185
Přidáno
- Finanční vzorcové funkce. Vestavěný výpočetní engine nyní vyhodnocuje
PV,FV,PMT,NPERaRATE, takže vzorce současné hodnoty, budoucí hodnoty, platby, doby trvání a úrokové sazby se správně přepočítávají přesCalculate; volitelné argumenty budoucí/současné hodnoty a časování platby (type) jsou respektovány aRATEje řešena iterativně
Opraveno
- Desetinné tečky ve vzorcových řetězcích. Opravena chyba, kdy vzorcový řetězec předaný do
Calculateobsahující desetinnou tečku (například=PV(0.05;10;100)) mohl selhat při analýze; číselné literály s desetinnou částí se nyní vyhodnocují správně
Verze 2.88.184
Přidáno
- Informační vzorcové funkce. Vestavěný výpočetní engine nyní vyhodnocuje
ISERROR,ISERR,ISNA,ISNUMBER,ISLOGICAL,ISNONTEXTaISREF, takže vzorce testující chyby a typy se přepočítávají správně přesCalculate.ISERRvylučuje #N/A, zatímcoISNAodpovídá pouze #N/A
Verze 2.88.183
Přidáno
- Textové vzorcové funkce. Vestavěný výpočetní engine nyní vyhodnocuje
FIND,SEARCH,SUBSTITUTE,REPLACE,TRIM,PROPER,CLEAN,CHAR,CODE,T,EXACTaREPT, takže listy používající tyto textové funkce se přepočítávají správně přesCalculate.FINDrozlišuje velikost písmen, zatímcoSEARCHnikoli
Opraveno
- Funkce CHAR byla rozpoznána. Opravena chyba při vyhledávání názvu, kdy funkce
CHARbyla zaregistrována pod nesprávnou velikostí písmen a nemohla být rozpoznána ve vzorcích
Verze 2.88.182
Změněno
- Vzorcová funkce IFERROR. Vzorcový engine nyní rozpoznává a vyhodnocuje
IFERROR(value, value_if_error)— vrátí záložní hodnotu, pokud první argument nabývá jakoukoli chybu Excelu (#NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A), jinak vrátí hodnotu samotnou. Funkce se zachovává na obou enginech — v .xls (BIFF8) je kódována jako token funkce, v .xlsx (OOXML) jako řetězec vzorce<f>— takže sešity se v Excelu správně otevírají a přepočítávají
Opraveno
- NA() nyní vrací #N/A. Funkce
NA()vrátí chybovou hodnotu #N/A místo toho, aby byla hlášena jako nepodporovaná, takže vzorce pro ošetření chyb postavené kolem ní (napříkladIFERROR(NA(), 0)) fungují podle očekávání
Verze 2.88.181
Přidáno
- Textová pole (XLSX). Nová metoda
TXLSXWorksheet.AddTextBoxpřidá samostatné textové pole ukotvené na obdélník buněk a emituje ho do kresby listu jako tvar s tělem textu. Tím se XLSX engine srovná s existující podporou textových polí XLS enginu
Verze 2.88.180
Přidáno
- Pojmenované konstanty velikosti papíru (XLSX). XLSX engine přidává konstanty
xlsxPaperLetter,xlsxPaperA4,xlsxPaperA3a ostatní konstantyxlsxPaper*pro vlastnostTXLSXWorksheet.PaperSize, čímž zrcadlí konstantyxlPaper*XLS enginu — velikost papíru tak lze nastavit jménem místo surovým kódem papíru Excelu
Verze 2.88.179
Přidáno
- Vlastnosti dokumentu XLS. XLS engine získává vlastnosti
IXLSWorkBook:Title,Subject,Author,Keywords,Comments,CompanyaManager, které se při ukládání zapisují do proudů OLE SummaryInformation / DocumentSummaryInformation souboru .xls (jako Unicode), takže panel Soubor > Informace v Excelu je zobrazuje. Tím se XLS engine srovná s existující sadou vlastností dokumentu XLSX enginu
Verze 2.88.178
Přidáno
- Plošné a prstencové grafy (XLSX).
TXLSXChartTypepřidáváxlsxChartAreaaxlsxChartDoughnutvedle stávajících typů sloupcových, pruhových, spojnicových a výsečových grafů, takžeTXLSXWorksheet.AddChartmůže emitovat plošné a prstencové grafy. XLS (BIFF8) chart engine si ponechává sadu sloupcový / pruhový / spojnicový / výsečový
Verze 2.88.177
Přidáno
- Sjednocení API operací s oblastmi napříč enginy. XLSX engine získává metody oblastí ve stylu Excelu
TXLSXRange.CopyTo,MoveTo,InsertRows,DeleteRows,InsertColsaDeleteCols; XLS engine získává souřadnicové metody listuIXLSWorksheet.CopyRange,MoveRange,InsertRows,DeleteRows,InsertColsaDeleteCols. Oba enginy nyní nabízejí kopírování/přesun oblasti a vkládání/mazání celých řádků a sloupců pod shodnými názvy
Verze 2.88.176
Přidáno
- Vestavěné styly buněk. Nové metody
TXLSXRange.ApplyBuiltinStyle(XLSX) aIXLSRange.ApplyBuiltinStyle(XLS) reprodukují vzhled standardních pojmenovaných stylů buněk Excelu — Dobrý, Špatný, Neutrální, Výpočet, Kontrolní buňka, Vysvětlující text, Vstup, Propojená buňka, Poznámka, Výstup, Varovný text, Nadpis 1–4, Název, Celkem a Zvýraznění 1–6 — jedním voláním aplikováním odpovídající výplně a písma
Verze 2.88.175
Přidáno
- Řazení oblasti. Nové metody
TXLSXRange.Sort/TXLSXWorksheet.SortRange(XLSX) aIXLSWorksheet.SortRange(XLS) přeuspořádají řádky obdélníku podle jednoho nebo více klíčových sloupců vzestupně nebo sestupně. Celé řádky se přesunou i s hodnotami a formátováním buněk; stejné klíče si zachovají původní pořadí (stabilní řazení) a prázdné buňky se vždy řadí na konec
Verze 2.88.174
Přidáno
OpenCSVimportuje soubory CSV a TSV do listu. Nová přetíženíTXLSWorkbook.OpenCSVaTXLSXWorkbook.OpenCSVčtou oddělený text s automatickým rozpoznáváním oddělovače (čárka, středník, tabulátor nebo svislítko), rozpoznáváním kódování podle BOM (UTF-8 a UTF-16) a zpracováním uvozovek dle RFC 4180. MetodaOpennyní automaticky směruje soubory.csva.tsvdo importéru
Změněno
- Volitelné rozpoznávání typu hodnoty. Číselná, ISO-8601 datumová a booleovská pole jsou ve výchozím nastavení povýšena na typované hodnoty buněk; rozpoznávání lze vypnout, aby každé pole zůstalo textem — zachovají se tak úvodní nuly, dlouhé číselné řetězce a text s předponou
=
Verze 2.88.173
Změněno
OpenODSnyní importuje viditelnost skrytých řádků a sloupců. Styly ODStable-rowatable-columns hodnotamitable:visibilityjakocollapsenebofilterse nyní mapují naRowHidden/ColHidden, včetně opakovaných řádků a sloupců
Verze 2.88.172
Změněno
- Export XLSX do HTML nyní zachovává svislé zarovnání.
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLemitují pravidla CSSvertical-alignpro zarovnání buněk nahoru, na střed, do bloku a distribuované, pokud je povolenoIncludeStyles
Verze 2.88.171
Změněno
- Export XLSX do HTML nyní přeskakuje skryté řádky a sloupce.
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLvynechávají řádky označenéRowHidden, sloupce označenéColHiddena explicitní sloupce s nulovou šířkou z generované tabulky a<colgroup>
Verze 2.88.170
Změněno
- Export XLSX do HTML nyní zachovává ohraničení buněk. Pokud jsou zahrnuty styly,
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLemitují okraje buněk jako styly CSSborder-left,border-right,border-topaborder-bottom
Verze 2.88.169
Změněno
- Export XLSX do HTML nyní zachovává formátované textové úseky. Pokud jsou zahrnuty styly,
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLemitují úsekyTXLSXRichTextjako escapované elementy<span>s vloženými styly písma, barvy, zdůraznění a podtržení
Verze 2.88.168
Změněno
- Export XLSX do HTML nyní zachovává explicitní výšky řádků a šířky sloupců. Pokud jsou zahrnuty styly,
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLzapisují explicitní hodnotyColWidthpřes<colgroup>a explicitní hodnotyRowHeightjako styly výšky<tr>
Verze 2.88.167
Změněno
- Export XLSX do HTML nyní přenáší komentáře buněk jako tipy.
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLzapisují komentáře XLSX do escapovaných atributůtitleelementu<td>a export na úrovni sešitu rozšiřuje hranice tabulky tak, aby zahrnovala ukotvení pouze s komentáři
Verze 2.88.166
Změněno
- Export XLSX do HTML nyní zachovává hypertextové odkazy a ukotvené obrázky.
TXLSXWorkbook.SaveAsHTMLaTXLSXRange.SaveAsHTMLobalují propojené buňky do escapovaných kotev<a>a emitují ukotvené obrázky jako vložená URI obrázkudata:. Export na úrovni sešitu také rozšiřuje hranice tabulky, aby zahrnoval ukotvení hypertextových odkazů a obrázků mimo obsazené buňky
Verze 2.88.165
Přidáno
TXLSXTablenyní zachovává viditelnost řádku součtů. Nová vlastnostTotalsRowShownzapisuje a čte příznak OOXMLtotalsRowShown, takže tabulky XLSX mohou zachovat povolený řádek součtů přes cykly SaveAs/Open
Verze 2.88.164
Přidáno
TXLSXWorksheetnyní nabízí typované pomocné metody pro ověření dat. MetodyAddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidationaAddCustomValidationpřidávají běžná pravidla XLSX bez nutnosti ručně předávat hodnotyTXLSXDataValidationType
Verze 2.88.163
Změněno
OpenODSnyní importuje hypertextové odkazy v textu ODS. Odkazy ODStext:asxlink:hrefnyní vytvářejí záznamyTXLSXHyperlinks, zachovávají text kotvy v importované hodnotě buňky a mapují cíle fragmentů jako#Sheet.A1na interní odkazy v sešitu
Verze 2.88.162
Změněno
OpenODSnyní importuje základní komentáře buněk. Buňky ODS soffice:annotationnyní vytvářejí záznamyTXLSXCommentss textem komentáře adc:creatorjako autorem, přičemž text anotace zůstane mimo hodnotu buňky
Verze 2.88.161
Změněno
- Ukázky
ApiTournyní pokrývají aktuální pomocné metody pracovního postupu XLSX. Ukázky Delphi a C++Builder proApiTournyní demonstrujíWriteRows,ForEachRow,PreviewAutoFilterRows,AutoFilterRowVisible,TXLSXHtmlExportOptionsaOnUserFunctionExvedle pracovních postupů pro vytváření sešitu, export a kontrolu po opětovném otevření
Verze 2.88.160
Přidáno
OnUserFunctionExpřidává kontextově závislé zpětné volání pro vlastní vzorce.TXLSWorkbook,IXLSWorkbookaTXLSXWorkbooknyní mohou přijmoutTXLSUserFunctionContexts indexem listu, řádkem a sloupcem, kdyžCalculatedeleguje vlastní nebo nepodporovanou funkci listu do kódu aplikace
Verze 2.88.159
Přidáno
TXLSXHtmlExportOptionspřidává konfigurovatelný export XLSX do HTML. PřetíženíSaveAsHTMLpro sešit i oblast mohou přepsat název dokumentu, použít třídu CSS tabulky, vynechat vložené/výchozí styly, potlačit UTF-8 BOM nebo emitovat fragment tabulky bez obklopujícího HTML dokumentu
Verze 2.88.158
Přidáno
TXLSXWorksheet.AutoFilterRowVisibleaPreviewAutoFilterRowspřidávají náhledové vyhodnocení AutoFilter. Aplikace mohou testovat, zda řádek odpovídá uloženým kritériím XLSX AutoFilter na listu, nebo procházet filtrovanými řádky dat pomocí zpětného volání viditelnosti, aniž by měnily příznaky skrytých řádků
Verze 2.88.157
Přidáno
TXLSXWorksheet.WriteRowspřidává dávkový výstup řádků XLSX. Volající mohou plnit numerický nebo A1-stylový rozsah po jednom řádku vrácením poleVariant, s podporou přeskočení celého řádku, zrušení a počtu zapsaných řádků
Verze 2.88.156
Přidáno
TXLSXWorksheet.ForEachRowpřidává skenování XLSX po řádcích. Zpětné volání se spustí jednou pro každý načtený řádek, hlásí řádek a první a poslední načtený sloupec, vrátí počet navštívených řádků a podporuje zrušení
Verze 2.88.155
Změněno
OpenODSnyní importuje uložené skalární výsledky ze vzorcových buněk ODS. Pokud vzorcová buňka uchovává numerické, booleovské, datumové nebo časové hodnoty v mezipaměti bezoffice:value-type, importér zachová hodnotu buňky z mezipaměti a nechá syntaxi vzorce ODS nepřevedenou
Verze 2.88.154
Změněno
OpenODSnyní zachovává základní formáty čísel a datumů ODS. Styly buněk ODS propojené s datovými styly pro datum, čas, číslo, procento nebo měnu se nyní mapují na řetězceNumberFormatXLSX jakoyyyy-mm-dda0.00, takže importované hodnoty si zachovají základní zobrazovací formátování
Verze 2.88.153
Změněno
- Sloučené buňky ODS se nyní importují jako sloučené oblasti XLSX.
OpenODSmapujetable:number-columns-spannedatable:number-rows-spannedna buňkách ODS naTXLSXMergedCells, zachovává hodnotu v buňce vlevo nahoře a pokryté buňky ponechá prázdné
Verze 2.88.152
Změněno
- Názvy listů ODS lze nyní číst bez načtení listů.
TXLSXWorkbook.GetODSSheetNames(FileName, AList)aGetODSSheetNames(Stream, AList)prohledají názvy tabulek vcontent.xmlz balíčků.ods, dekódují XML escapování, syntetizují výchozí názvy pro nepojmenované tabulky a ponechají instanci sešitu nezměněnou
Verze 2.88.151
Změněno
- Klasické záznamy XLS DIMENSION nyní informují o prázdných použitých oblastech. Pokud list .xls vytvořený Excelem deklaruje použitou oblast v záznamu
DIMENSION, ale neobsahuje žádné záznamy buněk, HotXLS nyní tuto oblast zpřístupní přesUsedRangea při otevření/uložení ji zachová místo návratu naA1
Verze 2.88.150
Opraveno
- Odkazy na vzorce externích listů z éry BIFF5 se nyní načítají správně. Klasický parser XLS nyní rozpoznává kladné indexy externích listů Excel5 v tokenech
tRef3d/tArea3datNameX, takže vzorce ve starších souborech .xls si při otevření/uložení zachovají 3D oblasti kvalifikované listem a reference na externí názvy
Verze 2.88.149
Odebráno
- Záznamy BIFF8 pro výpočty a rozšíření stylů se nyní zachovávají při round-trip. HotXLS zachovává záznamy
MTRSettings,ForceFullCalculation,CrErr,Uncalcedlistu,XFCRC, samostatnéDXF,StyleExta záznamy rodinyTableStylesvytvořené Excelem při cyklech otevření/uložení klasického XLS, takže metadata přepočítávání a rozšíření stylů se již neztratí
Verze 2.88.148
Přidáno
- Ukázky C++Builder nyní odpovídají pokrytí ukázek Delphi. Přidány projekty C++Builder pro
XlsTables,XlsCondFormat12aXlsCreateCharts odpovídajícími stránkami README a pokrytím sestavení Win32/Win64
Verze 2.88.147
Odebráno
- Vlastní zobrazení BIFF8 nyní přežijí klasické XLS round-tripy. HotXLS zachovává bloky
USERSVIEWBEGIN/USERSVIEWENDvytvořené Excelem v globálních datech sešitu a podproudech listů, včetně nemodelovaných záznamů uvnitř bloku, takže uložená vlastní zobrazení se při otevření/uložení neztratí
Verze 2.88.146
Odebráno
- Globální záznamy BIFF8 pro zobrazení sešitu a rozšíření se nyní zachovávají při round-trip. HotXLS zachovává záznamy
HIDEOBJ, nulovéTEMPLATE,TABIDaBOOKEXTvytvořené Excelem při otevření/uložení, takže zásady zobrazení skrytých objektů, značky šablony, identifikátory karet listů a metadata rozšíření sešitu se neztratí
Verze 2.88.145
Změněno
- TXLSXWorkbook nyní může importovat základní soubory OpenDocument Spreadsheet. Metody
OpenODS(FileName)aOpenODS(Stream)čtou tabulkycontent.xmlz balíčků.odsdo listů a zachovávají názvy listů, skalární hodnoty, opakované řádky a opakované sloupce. Styly, vzorce, kresby, grafy a pokročilé funkce ODS se nepřevádějí
Verze 2.88.144
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují kritéria sloupců AutoFilter.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní přemapovávají posunyColIdvAutoFilterColumns, když se oblast filtru přesune, a odstraňují kritéria, která zasahují do smazaných sloupců
Verze 2.88.143
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují ruční konce stránek.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní přesouvají konce stránek řádků a sloupců spolu s upravenou mřížkou a odstraňují konce, které zasahují do smazaných řádků nebo sloupců
Verze 2.88.142
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují reference nastavení tisku.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní upravujíPrintArea,PrintTitleRowsaPrintTitleCols, takže tiskové oblasti a opakované nadpisy sledují upravenou mřížku
Verze 2.88.141
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují cíle interních hypertextových odkazů.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní upravují interní kotvyTXLSXHyperlink.Locationna upraveném listu a cíle interních odkazů kvalifikovaných listem jinde v sešitu
Verze 2.88.140
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují vzorce pravidel.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní upravují reference A1 uvnitřTXLSXConditionalFormat.Formula1/Formula2aTXLSXDataValidation.Formula1/Formula2, zatímco číselné prahové hodnoty a literální seznamy zůstávají nezměněny
Verze 2.88.139
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují oblasti řad grafů.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní upravujíTXLSXChartSeries.CategoriesRangeaValuesRangepro grafy na upraveném listu i grafy jinde, které používají reference kvalifikované listem, takže datové vazby grafů zůstávají zarovnány po cyklech uložení/otevření
Verze 2.88.138
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují vzorce buněk.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní upravují reference A1 v přežívajících vzorcích buněk na upraveném listu a vzorce kvalifikované listem jinde v sešitu, zatímco řetězce a nesouvisející listy zůstávají nezměněny
Verze 2.88.137
Změněno
- Úpravy řádků a sloupců XLSX nyní přesouvají ukotvení kreseb.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní přesouvají ukotvení obrázků na jednu buňku a mění velikost nebo přesouvají ukotvení grafů na dvě buňky spolu s upravenou mřížkou, včetně round-tripů uložení/otevření
Verze 2.88.136
Změněno
- Úpravy řádků a sloupců XLSX nyní aktualizují definované názvy.
TXLSXWorksheet.InsertRows,DeleteRows,InsertColsaDeleteColsnyní upravují vzorceTXLSXDefinedNamev rozsahu sešitu i v rozsahu listu, které odkazují na upravený list, přičemž absolutní značky A1 se zachovávají přes cykly uložení/otevření
Verze 2.88.135
Přidáno
- Klasická textová pole XLS nyní podporují posuny ukotvení uvnitř buněk.
TXLSTextBoxzpřístupňujeRow1Offs,Col1Offs,Row2OffsaCol2Offsa přetíženíSetAreazohledňující posuny zachovává posuny BIFF client-anchor přes cykly uložení/otevření
Verze 2.88.134
Změněno
- Kontroly datové části makra XLSX nyní mají alias vlastnosti pouze pro čtení.
TXLSXWorkbook.VbaProjectDefinedzrcadlíHasVbaProjecta nabízí volajícím orientovaným na vlastnosti přímý způsob, jak otestovat přítomnost datové částivbaProject.bin
Verze 2.88.133
Změněno
- Listy XLSX nyní přímo zpřístupňují mazání hodnot oblasti.
TXLSXWorksheet.ClearRangeValuespřijímá reference A1 nebo meze řádků/sloupců a maže hodnoty/vzorce, přičemž zachovává styly — volající tak nemusí nejprve vytvářet obalTXLSXRange
Verze 2.88.132
Odebráno
- Oblasti XLSX nyní mohou mazat obsah buněk pomocí explicitního pomocníka zaměřeného na hodnoty.
TXLSXRange.ClearValuesodstraní hodnoty a vzorce v oblasti a zachová indexy stylů — odpovídá metoděClear, ale usnadňuje objevení čištění pouze obsahu
Verze 2.88.131
Změněno
- Literály ověřování dat XLSX ze seznamu nyní escapují vložené dvojité uvozovky.
TXLSXDataValidations.AddListaTXLSXWorksheet.AddListValidationzdvojují znaky uvozovek uvnitř textu položek oddělených čárkami před zabalením jako řetězec vzorce Excelu, takže rozevírací hodnoty obsahující uvozovky se správně zachovají při round-trip
Verze 2.88.130
Odebráno
- Kritéria AutoFilter XLSX lze nyní přímo mazat z kolekce kritérií.
TXLSXAutoFilterColumns.ClearCriteriaodstraní všechna uložená kritéria filtru pro jednotlivé sloupce a zachová přitomAutoFilterRangelistu
Verze 2.88.129
Přidáno
- Sloučené oblasti XLSX nyní při přidání normalizují obrácené souřadnice.
TXLSXMergedCells.Addukládá oblasti v pořadí vlevo nahoře / vpravo dole, i když volající předá nejprve koncovou buňku, čímž vznikají stabilní reference jakoA2:E6
Verze 2.88.128
Přidáno
- Kolekce listů XLSX nyní podporují přímé mazání podle názvu.
TXLSXSheetspřidáváDeleteByName, který aplikacím umožňuje odstranit list podle názvu bez ohledu na velikost písmen a přitom zachovat konzistentní výběr aktivního listu
Verze 2.88.127
Přidáno
- Kolekce grafů XLSX nyní podporují přímé vyhledávání a mazání podle názvu.
TXLSXChartspřidáváIndexOfName,FindByName,DeleteByNameaDelete, takže aplikace mohou vyhledat nebo odebrat grafy podle názvu bez ručního procházení kolekcí
Verze 2.88.126
Přidáno
- Kolekce externích odkazů XLSX nyní podporují přímé vyhledávání a mazání cílů.
TXLSXExternalLinkspřidáváIndexOfTarget,FindByTarget,DeleteByTargetaDelete, takže aplikace mohou prohlížet nebo odebírat metadata propojených sešitů bez ručního procházení kolekcí
Verze 2.88.125
Přidáno
- Kolekce sloučených buněk XLSX nyní podporují přímé vyhledávání a mazání oblastí.
TXLSXMergedCellspřidáváIndexOfCell,FindAt,DeleteAtaDeleteInRange, takže aplikace mohou prohlížet nebo odebírat sloučené oblasti bez ručního procházení kolekcí
Verze 2.88.124
Přidáno
- Kolekce podmíněného formátování a ověřování dat XLSX nyní podporují vyhledávání a mazání s ohledem na oblast.
TXLSXConditionalFormatsaTXLSXDataValidationspřidávajíIndexOfCell,FindAt,DeleteAtaDeleteInRange, takže aplikace mohou vyhledat nebo odebrat pravidla pokrývající buňku nebo protínající oblast bez ručního prohledávánísqref
Verze 2.88.123
Přidáno
- Kolekce obrázků XLSX nyní podporují přímé vyhledávání a mazání kotev.
TXLSXImagespřidáváIndexOfCell,FindAt,DeleteAt,DeleteInRangeaDelete, takže aplikace mohou prohlížet nebo odebírat vložené obrázky bez ručního procházení kolekcí
Verze 2.88.122
Přidáno
- Kolekce sloupců AutoFilter XLSX nyní podporují přímé vyhledávání a mazání.
TXLSXAutoFilterColumnspřidáváFindByColIdaDeleteByColId, takže aplikace mohou prohlížet nebo odebírat kritéria pro jednotlivé sloupce bez ručního procházení kolekcí
Verze 2.88.121
Přidáno
- Kolekce tabulek XLSX nyní podporují přímé vyhledávání a mazání tabulek.
TXLSXTablespřidáváIndexOfName,FindByNameaDeleteByName, takže aplikace mohou vyhledat nebo odebrat pojmenované tabulky listů bez ručního procházení kolekcí
Verze 2.88.120
Přidáno
- Kolekce definovaných názvů XLSX nyní podporují přímé vyhledávání a mazání objektů.
TXLSXDefinedNamespřidává přetíženíIndexOfName(Name, SheetIndex),FindByNameaDeleteByName, takže aplikace mohou pracovat s názvy v rozsahu sešitu i listu bez ručního procházení kolekcí
Verze 2.88.119
Přidáno
- Kolekce komentářů a hypertextových odkazů XLSX nyní podporují vyhledávání a mazání podle buněk.
TXLSXCommentsaTXLSXHyperlinkszpřístupňujíIndexOfCell,FindAt,DeleteAtaDeleteInRange, takže kód aplikace může vyhledat nebo odebrat komentáře a odkazy v listu bez ručního procházení kolekcí
Verze 2.88.118
Změněno
- Ukázky ApiTour nyní kontrolují objekty znovu otevřeného sešitu XLSX. Příklady Delphi a C++Builder pro ApiTour znovu otevřou vygenerovaný sešit XLSX a zapíší řádky
reopen-inspectpro definované názvy, komentáře, hypertextové odkazy, oblasti AutoFilter a kritéria AutoFilter doApiTour-XLSX-Modified.xlsx
Verze 2.88.117
Odebráno
- Záznamy BIFF8 pro sdílení souborů a ochranu revizí se nyní zachovávají při round-trip. HotXLS zachovává těla záznamů
FILESHARING,FILESHARING2,PROT4REVaPROT4REVPASSvytvořených Excelem při otevření/uložení, takže metadata doporučení pouze pro čtení, sdílení a ochrany revizí se neztratí
Verze 2.88.116
Změněno
- Ukázky ApiTour nyní pokrývají pomocné metody objektů sešitu XLSX. Příklady Delphi a C++Builder pro ApiTour vytvářejí definovaný název, komentář listu, hypertextový odkaz, oblast AutoFilter a kritéria AutoFilter a přitom zachovávají stávající pracovní postupy zpětného volání, nahrazení textu a exportu
Verze 2.88.115
Změněno
- Ukázky InteractiveFeatures nyní mohou znovu otevírat klasické kontingenční sešity XLS. Záložky Pivot v Delphi a C++Builder umožňují otevřít existující klasický kontingenční sešit XLS, výčet uložených kontingenčních tabulek na každém listu a zaznamenat počet polí, datových polí a zdrojovou oblast mezipaměti každé tabulky
Verze 2.88.114
Změněno
- Ukázky InteractiveFeatures nyní mohou znovu otevírat klasické sešity XLS pro pracovní postupy s textovými poli. Formuláře Delphi a C++Builder umožňují otevřít existující klasický sešit XLS, vyhledat uložená samostatná textová pole kresby, vypsat je a pokračovat v operacích úprav, mazání, mazání oblasti a uložení na otevřeném souboru
Verze 2.88.113
Změněno
- Ukázky C++Builder nyní zahrnují vzorek InteractiveFeatures pro pokročilé pracovní postupy se sešity. Formulář VCL poskytuje stejnou interaktivní cestu Pivot / TextBox / Macro s typovaným vytvářením klasických XLS kontingenčních tabulek, úpravou samostatných textových polí kresby a načtením/exportem/vymazáním datové části XLSM
vbaProject.binplus kontrolou analyzovaných modulů
Verze 2.88.112
Změněno
- Ukázky Delphi nyní zahrnují vzorek InteractiveFeatures pro pokročilé pracovní postupy se sešity. Formulář VCL vytváří typované klasické XLS kontingenční tabulky, upravuje samostatná textová pole kresby a zpracovává načtení/export/vymazání datové části XLSM
vbaProject.binplus kontrolu analyzovaných modulů
Verze 2.88.111
Přidáno
- Klasické listy XLS nyní podporují samostatná textová pole kresby. Pomocí
TXLSShapes.AddTextBoxlze vytvořitTXLSTextBoxs vlastním ukotvením na řádek/sloupec, textem, textovými úseky, formátováním čáry/výplně a běžným mazáním tvaru bez vytváření komentáře buňky
Verze 2.88.110
Změněno
- Ukázky ApiTour nyní pokrývají více vzorů automatizace sešitů. Ukázky Delphi a C++Builder pro ApiTour demonstrují zápis oblasti pomocí zpětného volání s
WriteCells, skenování načtených buněk pomocíForEachCell, aktualizace šablon pomocíFindTextaReplaceText, export vybrané oblasti do HTML doApiTour-Range.htmla vlastní zpětná volání vzorců v Delphi přesOnUserFunction
Verze 2.88.109
Změněno
- Ukázky QuickStart nyní zobrazují komplexnější první sešit. Ukázky Delphi a C++Builder pro QuickStart vytvoří stylizovanou násobilku s vzorci součtů řádků a sloupců, zmrazenými podokny a odpovídajícími akcemi XLS/XLSX; strom ukázek nyní obsahuje také upravené HTML stránky readme pro každý příklad
Verze 2.88.108
Změněno
- Oblasti XLSX nyní mají přímé pomocné metody pro export do HTML.
TXLSXRange.SaveAsHTML(FileName)aTXLSXRange.SaveAsHTML(Stream)exportují pouze vybranou oblast XLSX jako HTML tabulku UTF-8, s escapováním rendereru HTML sešitu, základním výstupem stylů a zpracováním rozsahů sloučených buněk
Verze 2.88.107
Přidáno
- Listy XLSX nyní zahrnují pomocné metody pro vyhledávání a nahrazování textu.
TXLSXWorksheet.FindTextaTXLSXWorksheet.ReplaceTextprohledávají načtené textové buňky v pořadí řádků, přeskakují vzorce a netextové hodnoty a podporují volitelné porovnávání s ohledem na velikost písmen pro pracovní postupy se šablonami
Verze 2.88.106
Změněno
- Příznaky zobrazení BIFF8 Window2 nyní zachovávají vlastní barvu mřížky a stav zmrazených podoken. HotXLS nyní vypíná
fDefaultHdr, pokudWindow2.icvHdrukládá vlastní barvu mřížky, zachováváfFrozenNoSplitvytvořený Excelem při otevření/uložení a zapisujefFrozenNoSplitpro výstupFreezePanes
Verze 2.88.105
Změněno
- Prahové hodnoty vzorců CF12 se nyní zachovávají při round-trip přes pravidla BIFF8 Data Bar, Color Scale a Icon Set. Prahové hodnoty vzorců se při uložení kompilují do bajtů tokenů vzorce CF12 a při opětovném otevření sešitu se obnovují do
TXLSCfValue.Value
Verze 2.88.104
Změněno
- Klasické XLS vzorce a prahové hodnoty sad ikon nyní vydávají kompaktnější záznamy BIFF8. Celočíselné konstanty ve vzorcích používají kompaktní token
tInt, pokud se vejdou do rozsahu BIFF unsigned integer, aTXLSIconSetSpec.ThresholdEqualsInclude[Index]nyní řídí bajt rovnosti prahové hodnoty sady ikon CF12, takže volající mohou zvolit sémantiku porovnání zahrnout nebo vyloučit
Verze 2.88.103
Změněno
- Klasické listy XLS nyní zahrnují pomocnou metodu pro vyhledávání textu.
IXLSWorksheet.FindText(SearchText, Row, Col[, MatchCase])vyhledá první odpovídající načtenou textovou buňku, přeskočí vzorce a netextové buňky a při nenalezení shody vymaže vrácené souřadnice
Verze 2.88.102
Změněno
- Klasické listy XLS nyní zahrnují pomocnou metodu pro nahrazování textu.
IXLSWorksheet.ReplaceText(SearchText, ReplacementText[, MatchCase])nahradí shody v načtených textových buňkách, přeskočí vzorce a netextové buňky a vrátí počet změněných buněk pro pracovní postupy vyplňování šablon
Verze 2.88.101
Změněno
- Oblasti nyní mají přímé pomocné metody pro export do HTML.
IXLSRange.SaveAsHTML(FileName)aIXLSRange.SaveAsHTML(Stream)exportují vybranou oblast přes stávající renderer HTML, takže volající již nemusí vytvářet instanciTXLSHTMLExportani explicitně předávatxlHTMLpro běžné fragmenty oblasti
Verze 2.88.100
Změněno
TXLSWorkbook.GetSheetNames(Stream, AList)nyní čte proudy balíčků XLSX i klasické proudy XLS. Aplikace mohou předat paměťové proudy, proudy BLOB z databáze nebo stažené proudy XLSX do klasického rozhraní a obdrží seřazené názvy listů bez nutnosti nejprve ukládat do souboru
Verze 2.88.99
Přidáno
- API pro vyhledávání listů, vytváření hypertextových odkazů a výběr více oblastí jsou nyní jednodušší na použití. Kolekce listů klasického XLS a XLSX přidávají
TryGetSheetByName, klasické listy XLS přidávají praktická přetíženíAddHyperlinkaIXLSWorksheet.SelectAreasumožňuje zapsat aktivní výběry více oblastí
Verze 2.88.98
Změněno
- Klasické XLS sešity nyní zpřístupňují alias
UserNamepro pole uloženého autora.IXLSWorkbook.UserNamese mapuje na stejnou hodnotu WRITEACCESS jakoLastSavedBy, takže kód používající konvenci pojmenováníUserNamemůže přímo číst a aktualizovat auditní jméno sešitu
Verze 2.88.97
Změněno
- Listy XLSX nyní sdílejí pomocné metody pro skenování buněk pomocí zpětného volání a zápis oblasti.
TXLSXWorksheet.ForEachCellvýčtuje načtené buňky v pořadí řádků s hodnotou a textem vzorce, zatímcoTXLSXWorksheet.WriteCellsplní numerické nebo A1-stylové oblasti ze zpětného volání s přeskočením buněk a zrušením
Verze 2.88.96
Přidáno
- Klasické listy XLS nyní podporují zápis oblasti pomocí zpětného volání.
IXLSWorksheet.WriteCellsplní číselnou oblast na bázi 1 nebo A1-stylovou oblast v pořadí řádků, nechá zpětné volání poskytnout hodnotu každé buňky, podporuje přeskočení buněk a umožňuje předčasné zrušení dlouhých zápisových smyček
Verze 2.88.95
Změněno
- Klasické listy XLS nyní mohou výčtovat načtené buňky přes zpětné volání.
IXLSWorksheet.ForEachCellprochází existující buňky listu v pořadí řádků, předává souřadnice listu, řádku a sloupce na bázi 1 s hodnotou a textem vzorce a umožňuje zpětnému volání předčasně zrušit dlouhá prohledávání
Verze 2.88.94
Změněno
- Výpočet vzorců nyní může volat funkce definované aplikací.
TXLSWorkbook.OnUserFunctionaTXLSXWorkbook.OnUserFunctionumožňujíCalculatedelegovat vlastní nebo nepodporované funkce listu do kódu aplikace, předat vyhodnocené argumenty a použít vrácený výsledekVariantpři zpracování
Verze 2.88.93
Přidáno
- Ochrana klasického listu XLS nyní zpřístupňuje příznaky oprávnění pro jednotlivé akce.
IXLSWorksheetpřidáváAllowDeleteRows,AllowInsertRows,AllowFormatCells,AllowSort,AllowAutoFiltera ostatní vlastnosti oprávnění SheetProtect, přičemž volby BIFF8 se při ochraně zapisují a zpětně čtou
Verze 2.88.92
Změněno
- Klasické XLS datové části VBA nyní mají explicitní pomocné metody pro načtení/uložení/vymazání.
IXLSWorkbook.LoadVBAProjectFromFile,SaveVBAProjectToFile,HasVBAProjectaClearVBAProjectzpřístupňují zachovanou datovou část OLE VBA, zatímcoVBAProjectzůstává analyzovaným pohledem modulů pouze pro čtení
Verze 2.88.91
Změněno
- Kritéria AutoFilter klasického XLS nyní lze kontrolovat přes kolekci polí.
IXLSWorksheet.AutoFilterColumnszpřístupňuje aktuální počet polí BIFF8 AutoFilter a položky polí na bázi 1, včetně aktivního stavu, operátoru a uložených hodnot DOPERCriteria1/Criteria2
Verze 2.88.90
Změněno
- Klasické listy XLS nyní mají jednorázové nastavení kritérií AutoFilter.
IXLSWorksheet.ApplyAutoFilternastaví oblast AutoFilter listu a zapíše kritérium pole v jednom volání, s přetíženími A1-style a číselné oblasti na bázi 1 a volitelných dvou-kritériových operátorů
Verze 2.88.89
Odebráno
- Klasické XLS tvary nyní lze odebrat podle oblasti buněk.
TXLSShapes.DeleteInRangesmaže ukotvené obrázky nebo tvary, jejichž klientská ukotvení OfficeArt zasahují do oblasti listu na bázi 1, a vrátí počet odebraných tvarů
Verze 2.88.88
Změněno
- Atributy rozvržení tabulky klasického HTML exportu jsou nyní konfigurovatelné.
TXLSHTMLExport.TableBorderWidth,CellPaddingaCellSpacingřídí generované atributy<table>pro stylizovaný i jednoduchý HTML výstup a jako výchozí hodnoty používají původní nulové hodnoty
Verze 2.88.87
Přidáno
- Klasický HTML export nyní podporuje minimální výstup tabulky.
TXLSHTMLExport.SimpleExportzapíše prostou HTML tabulku bez generovaných tříd CSS, kotev hypertextových odkazů ani atributů title komentářů, přičemž zachovává escapovaný zobrazovací text a rozsahy sloučených buněk
Verze 2.88.86
Změněno
- Klasický HTML export nyní může zapisovat název dokumentu.
TXLSHTMLExport.Titlezapíše escapovaný element HTML<title>před generovaný blok stylů, přičemž výchozí prázdná hodnota ponechá stávající výstup nezměněný
Verze 2.88.85
Změněno
- Klasický HTML export nyní přenáší komentáře buněk jako tipy.
TXLSHTMLExport.Optionsnyní ve výchozím nastavení zahrnujexhCommentsa zapisuje text komentáře buňky jako escapované atributytitle, přičemž stále umožňuje volajícím tuto volbu odebrat pro prostý výstup buněk
Verze 2.88.84
Změněno
- Výstup hypertextových odkazů klasického HTML exportu je nyní konfigurovatelný.
TXLSHTMLExport.Optionsjako výchozí nastavení obsahuje[xhHyperlinks]pro stávající chování a volající mohou odebratxhHyperlinks, aby propojené buňky exportovaly jako prostý escapovaný text
Verze 2.88.83
Změněno
- Klasický HTML export nyní zachovává hypertextové odkazy buněk.
SaveAsHTMLobaluje propojené buňky do HTML kotev, emituje adresy hypertextových odkazů jako escapované hodnotyhref, přenáší text ScreenTip jako escapované atributytitlea zachovává escapovaný zobrazovací text buňky uvnitř odkazu
Verze 2.88.82
Změněno
- Klasické XLS sešity nyní mohou řídit uložené jméno uživatele.
IXLSWorkbook.LastSavedByzpřístupňuje pole WRITEACCESS uloženého autora, takže generované nebo upravené sešity mohou uchovávat explicitní auditní jméno, zatímco needitované zdrojové sešity nadále zachovávají svá původní metadata
Verze 2.88.81
Změněno
- Klasické listy XLS nyní mohou řídit zobrazený index barvy mřížky.
IXLSWorksheet.GridlineColorIndexzpřístupňuje poleicvHdrWindow2, takže uložené listy mohou být znovu otevřeny se zvolenou barvou mřížky, aniž by se změnilo zobrazení mřížky nebo nastavení tisku mřížky
Verze 2.88.80
Změněno
- Klasické XLS sešity nyní mohou nastavit aktivní list podle indexu.
IXLSWorkbook.ActiveSheetIndexzpřístupňuje vlastnost aktivní záložky na bázi 1 podloženou polem aktivního listu WINDOW1, což umožňuje uloženým sešitům znovu se otevřít na zvoleném listu bez změny první viditelné záložky
Verze 2.88.79
Změněno
- Klasické XLS osnovy listů nyní mohou řídit automatické styly osnovy.
TXLSOutline.ApplyStyleszpřístupňuje příznak stylu osnovy WSBool, což umožňuje uloženým listům zachovat nebo explicitně povolit aplikaci stylu osnovy Excelu bez změny úrovní osnovy nebo umístění souhrnů
Verze 2.88.78
Změněno
- Klasické nastavení stránky XLS nyní může řídit automatické konce stránek.
IXLSPageSetup.AutoPageBreakszpřístupňuje příznak automatického konce stránky WSBool listu, což umožňuje uloženým listům zachovat povolené automatické konce stránek nebo je explicitně zakázat, přičemž ruční konce stránek zůstanou zachovány
Verze 2.88.77
Změněno
- Klasické XLS sešity nyní mohou řídit seskupování dat AutoFilter podle data.
IXLSWorkbook.AutoFilterDateGroupingzpřístupňuje příznak seskupování dat Window1 s kladným booleovským API, což umožňuje uloženým sešitům zachovat povolené seskupování datových filtrů Excelu nebo je explicitně zakázat
Verze 2.88.76
Změněno
- Klasické XLS sešity nyní mohou přímo nastavit polohu a velikost okna sešitu.
IXLSWorkbook.XWindow,YWindow,WindowWidthaWindowHeightzpřístupňují pole geometrie Window1, takže uložené sešity se mohou znovu otevřít se zvoleným obdélníkem okna
Verze 2.88.75
Změněno
- Klasické XLS sešity nyní mohou přímo ukládat skrytý stav okna sešitu.
IXLSWorkbook.WindowHiddense mapuje na příznak skrytí Window1, což umožňuje uloženým sešitům znovu se otevřít se skrytým oknem sešitu bez změny viditelnosti listů
Verze 2.88.74
Změněno
- Klasické XLS sešity nyní mohou přímo ukládat minimalizovaný stav okna sešitu.
IXLSWorkbook.Minimizedse mapuje na příznak minimalizace Window1, což umožňuje uloženým sešitům znovu se otevřít s minimalizovaným oknem sešitu
Verze 2.88.73
Změněno
- Klasické XLS sešity nyní mohou přímo skrýt nebo zobrazit svislý posuvník.
IXLSWorkbook.ShowVerticalScrollse mapuje na příznakfDspVScrollWindow1, což umožňuje uloženým sešitům otevřít se skrytým nebo viditelným svislým posuvníkem
Verze 2.88.72
Změněno
- Klasické XLS sešity nyní mohou přímo skrýt nebo zobrazit vodorovný posuvník.
IXLSWorkbook.ShowHorizontalScrollse mapuje na příznakfDspHScrollWindow1, což umožňuje uloženým sešitům otevřít se skrytým nebo viditelným vodorovným posuvníkem
Verze 2.88.71
Změněno
- Klasické XLS sešity nyní mohou přímo skrýt nebo zobrazit lištu záložek listů.
IXLSWorkbook.ShowSheetTabsse mapuje na příznakfDspTabsWindow1, což umožňuje uloženým sešitům otevřít se skrytými nebo viditelnými záložkami listů bez změny viditelnosti listů
Verze 2.88.70
Změněno
- Klasické XLS sešity nyní mohou přímo nastavit poměr lišty záložek sešitu.
IXLSWorkbook.TabRatiozpřístupňuje hodnotuwTabRatioWindow1, takže volající mohou upravit prostor vyhrazený pro záložky listů oproti vodorovnému posuvníku
Verze 2.88.69
Změněno
- Klasické XLS sešity nyní mohou přímo nastavit první viditelnou záložku listu.
IXLSWorkbook.FirstSheetzpřístupňuje hodnotuitabFirstWindow1 jako vlastnost na bázi 1, takže volající mohou zvolit, která záložka listu se zobrazí na levém okraji při otevření sešitu Excelem
Verze 2.88.68
Změněno
- Klasické listy XLS nyní mohou zachovávat a nastavovat viditelnost symbolů osnovy.
IXLSWorksheet.DisplayOutlineSymbolsse mapuje na příznakfDspGutsBIFF WINDOW2, což umožňuje uloženým listům skrýt symboly osnovy a seskupování v zobrazení okna
Verze 2.88.67
Změněno
- Klasické listy XLS nyní mohou zachovávat a nastavovat viditelnost záhlaví řádků a sloupců.
IXLSWorksheet.DisplayHeadingsse mapuje na příznakfDspRwColBIFF WINDOW2, což umožňuje uloženým listům skrýt čísla řádků a písmena sloupců v zobrazení okna
Verze 2.88.66
Změněno
- Klasické listy XLS nyní mohou zachovávat a nastavovat zobrazení vzorců.
IXLSWorksheet.DisplayFormulasse mapuje na příznakfDspFmlaBIFF WINDOW2, takže Excel může otevřít list zobrazující text vzorců místo vypočtených výsledků
Verze 2.88.65
Změněno
- Klasické listy XLS nyní mohou nezávisle nastavit přiblížení v normálním zobrazení.
IXLSWorksheet.NormalViewZoomzpřístupňuje uložené přiblížení Normal v WINDOW2, takže volající mohou uložit různé úrovně přiblížení, dokud je list v náhledu konce stránky
Verze 2.88.64
Změněno
- Klasické listy XLS nyní mohou přímo nastavit přiblížení v náhledu konce stránky.
IXLSWorksheet.PageBreakPreviewZoomzpřístupňuje uložené přiblížení náhledu v WINDOW2, takže volající mohou uložit různé úrovně přiblížení pro normální zobrazení a náhled konce stránky
Verze 2.88.63
Změněno
- Klasické listy XLS nyní zpřístupňují pomocné metody pro rozdělená podokna.
IXLSWorksheet.SplitPanes(Width, Height)vytvoří pohyblivé rozdělení podoken pomocí stávajícího zapisovače BIFF podoken aUnsplitPanessmaže záznam podoken před uložením
Verze 2.88.62
Odebráno
- Klasické listy XLS nyní mají jednodušší pomocné metody pro zmrazená podokna.
IXLSWorksheet.FreezePanes(Cols, Rows)zmrazí požadované levé sloupce a horní řádky, zatímcoUnfreezePanesodstraní záznam podoken před uložením
Verze 2.88.61
Změněno
- Zjišťování názvů listů klasického XLS nyní přijímá proudy.
TXLSWorkbook.GetSheetNames(Stream, List)čte názvy listů BIFF z volajícím poskytnutého proudu XLS bez načtení obsahu listů, čímž odpovídá pomocné metodě pro název souboru pro data sešitu v paměti
Verze 2.88.60
Opraveno
- Kolekce listů nyní zpřístupňují přímé pomocné metody vyhledávání podle názvu.
IXLSWorkSheets.SheetByName(Name)aTXLSXSheets.SheetByName(Name)vrátí odpovídající objekt listu nebonil, takže volající již nemusí nejprve rozpoznávat index pro přístup k listu
Verze 2.88.59
Změněno
- Rozhraní XLSX nyní čte názvy listů přímo z proudů.
TXLSXWorkbook.GetSheetNames(Stream, List)čte seřazené názvy zxl/workbook.xmlbez načtení XML listů, čímž odpovídá přetížení pro název souboru pro sešity v paměti a s BLOB backing
Verze 2.88.58
Změněno
- Rozhraní XLSX nyní zpřístupňuje rychlé zjišťování názvů listů.
TXLSXWorkbook.GetSheetNames(FileName, List)čte seřazené názvy zxl/workbook.xmlbez načtení XML listů
Verze 2.88.57
Přidáno
TXLSWorkbook.GetSheetNamesnyní podporuje balíčky XLSX. Metoda čtexl/workbook.xmlze souborů.xlsx,.xlsm,.xltxa.xltma vrátí seřazené názvy listů bez načtení XML listů
Verze 2.88.56
Změněno
- Klasické XLS sešity nyní mohou číst názvy listů bez načtení listů.
TXLSWorkbook.GetSheetNames(FileName, List)prohledá globální proud sešitu a vrátí seřazené názvy listů ze souborů Excel 97-2003.xls
Verze 2.88.55
Změněno
- Kritéria AutoFilter oblasti klasického XLS nyní zapisují záznamy filtru BIFF8.
TXLSRange.Autofilter(Field, Criteria)podle potřeby vytvoří oblast filtru a emituje podmínkyAUTOFILTERpro jednoduchá textová, číselná, booleovská kritéria, kritéria prázdných/neprázdných buněk a kritéria s prefixem porovnání
Verze 2.88.54
Změněno
- Klasické listy XLS nyní mají pomocné metody AutoFilter na úrovni listu.
IXLSWorksheet.SetAutoFilter,ClearAutoFilteraAutoFilterRangespravují oblasti rozevíracích filtrů BIFF8 přímo a přitom znovu využívají stávající zapisovačAUTOFILTERINFOa název databáze filtru
Verze 2.88.53
Přidáno
- Klasické listy XLS nyní zpřístupňují vytváření ověřování dat ze seznamu.
IXLSWorksheet.AddListValidation(Range, Items)zapisuje záznamy BIFF8DVALaDV, ve výchozím nastavení ponechá rozevírací seznam viditelný, podporuje čárkami oddělené vložené seznamy a zachovává pravidla přes round-tripyOpen/SaveAs
Verze 2.88.52
Přidáno
- Výpočet vzorců nyní funguje konzistentně napříč vstupními body XLS a XLSX.
TXLSWorkbook.Calculatenyní přijímá vzorce s úvodním znaménkem rovná se ve stylu Excelu, jako je=SUM(A1:B1)+C1, a rozhraní XLSX přidáváTXLSXWorkbook.CalculateaTXLSXWorksheet.Calculate. Cesta XLSX sdílí parser a vyhodnocovač tokenů vzorce HotXLS pro reference buněk a oblastí, odkazované vzorcové buňky, mezilistové reference a oblasti pojmenovaných názvů v rozsahu sešitu nebo listu
Verze 2.88.51
Přidáno
- Oblasti XLSX nyní podporují sloučení napříč řádky ve stylu Excelu.
TXLSXRange.Merge(True)zapíše jeden záznam<mergeCell>na řádek, čímž odpovídá chování klasického XLSRange.Merge(True), zatímcoMergebez argumentu aMerge(False)nadále vytvářejí jeden plný sloučený obdélník
Verze 2.88.50
Změněno
- Umístění záznamů BIFF8 HeaderFooter a HFPicture nyní odpovídá aktuálním pravidlům MS-XLS. HotXLS zachovává záznamy
HeaderFooter($089C) vytvořené Excelem pro text záhlaví a zápatí sudých/prvních stránek a přehrává záznamyHFPicture($0866) po rozměrech listu a kreslicích objektech podle ABNF listu, takže podrobnosti rozvržení stránky přežijí round-tripy otevření/uložení .xls
Verze 2.88.49
Změněno
- Úseky formátovaného textu komentářů nyní mají typované API.
TXLSComment.TextRunszpřístupňuje záznamyFormatRunBIFF8TXO, takže volající mohou kontrolovat nebo nastavovat hranice písma pro jednotlivé znaky v komentářích .xls, zatímco HotXLS stále zachovává podkladové bajty úseků pro bezpečné round-tripy
Verze 2.88.48
Změněno
- Doplňkové záznamy SX kontingenčních tabulek jsou nyní zpřístupněny přes typované API. HotXLS nyní připojuje načtené záznamy BIFF8 kontingenčních tabulek, jako jsou
SXIVD,SXLI,SXFormat,SXEx,SXVDEx,SXRule,SXFiltaSXAddl, kTXLSPivotTable.SupplementalRecordspro kontrolu, přičemž stále zachovává původní surové bajty pro round-tripy uložení
Verze 2.88.47
Odebráno
- Uložené hodnoty externího sešitu nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává záznamy BIFF8
XCTaCRNpřipojené k načteným záznamůmSUPBOOK, takže uložené hodnoty buněk pro odkaz na externí sešit se již při uložení neztratí
Verze 2.88.46
Změněno
- Úrovně osnovy vestavěných stylů nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní čte a zachovává bajt
iLevelzáznamu BIFF8STYLEpro vestavěné styly, takže metadata stylů RowLevel_1..7 a ColLevel_1..7 Excelu se již při uložení neobnoví na výchozí hodnoty
Verze 2.88.45
Změněno
- Metadata definovaných názvů nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává načtené bity voleb záznamu BIFF8
NAMEa bajty klávesových zkratek, pokud definovaný název není upraven, takže metadata funkcí, objektů, procedur, vypočtených výrazů a binárních názvů vytvořená Excelem se již při uložení nevymažou
Verze 2.88.44
Odebráno
- Značky sešitu ObProj nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává načtené záznamy BIFF8
ObProji tehdy, kdy není přes objektový model zpřístupněno žádné úložiště VBA, takže značky projektu VBA na úrovni sešitu a metadata třetích stran se při uložení již neztratí
Verze 2.88.43
Změněno
- Příznaky voleb listů nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává nemodelované bity BIFF8
WSBOOL, jako jsou příznaky dialogového listu, automatického konce stránky, aplikace stylu a zobrazení úchytů osnovy, a přitom stále aktualizuje stávající nastavení přizpůsobit na stránku a souhrny osnovy přes veřejné API
Verze 2.88.42
Změněno
- Další záznamy metadat sešitu nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává načtená těla záznamů BIFF8
COUNTRY,BOOKBOOL,BACKUP,FNGROUPCOUNT,USESELFSaRECALCIDmísto jejich přepsání výchozími hodnotami, čímž udržuje metadata kompatibility a výpočtů na úrovni sešitu stabilní
Verze 2.88.41
Změněno
- Výběry více oblastí a fokus aktivního podokna nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává načtené záznamy BIFF8
SELECTIONa hodnotu aktivního podoknaPANES, pokud není výběr listu nebo podokna změněn přes API, takže fokus podoken rozděleného/zmrazeného zobrazení Excelu a výběry více oblastí se při uložení již nekomprimují
Verze 2.88.40
Odebráno
- Názvy externího sešitu nyní přežijí round-tripy otevření/uložení .xls. HotXLS nyní zachovává načtené záznamy BIFF8
EXTERNALNAMEpřipojené k externím záznamůmSUPBOOK, včetně metadat DDE/OLE/odkazu a koncových vzorců, takže externí názvy a definice odkazů se při uložení již neztratí
Verze 2.88.39
Změněno
- Soubory .xls BIFF8 chráněné heslem nyní používají a čtou záznamy FILEPASS RC4 CryptoAPI. HotXLS nyní zapisuje metadata
FILEPASSvMajor=2 ve stylu Excel 2007/2010 pro šifrované sešity .xls a čte soubory starší verze RC4 vMajor=1 i RC4 CryptoAPI vMajor=2/3/4, takže sešity chráněné heslem již neselhávají ani nepřecházejí na starší šifrovací hlavičku
Verze 2.88.38
Změněno
- Metadata hypertextových odkazů .xls vytvořených Excelem nyní přežijí round-tripy otevření/uložení. HotXLS nyní zachovává tělo záznamu BIFF8
HLinkpro načtené hypertextové odkazy, pokud hypertextový odkaz není upraven, čímž udržujestreamVersionzdroje, bity volebhlstmfjakofIcon, data monikeru a související metadata cíle stabilní při ukládání
Verze 2.88.37
Změněno
- Stav okna sešitu nyní přežije round-tripy otevření/uložení .xls. HotXLS nyní čte a zachovává polohu okna, velikost, příznaky viditelnosti/ikonickosti záznamu BIFF8
WINDOW1, první zobrazené záložce listu, počet vybraných záložek a poměr posuvníku záložek místo jejich přepisu výchozími hodnotami při každém uložení
Verze 2.88.36
Změněno
- Uložení autorů BIFF8 WriteAccess nyní přežije round-tripy otevření/uložení .xls. HotXLS nyní čte a zachovává tělo záznamu
$005C WRITEACCESSmísto nahrazování autora uloženého Excelem zaHotXLS, takže auditní metadata sešitu zůstávají po uložení stabilní
Verze 2.88.35
Opraveno
- Autoři komentářů Excelu nyní přežijí round-tripy otevření/uložení .xls. Pole
stAuthorzáznamu BIFF8Noteje nyní analyzováno a předáno do modelu poznámky kresby místo nahrazení prázdným řetězcem, takže autor komentáře „Vytvořil" zapsaný Excelem se zachová při opětovném uložení sešitu HotXLS
Verze 2.88.34
Změněno
- Volby OfficeArt FOPT jsou nyní zpřístupněny přes sáček voleb nízké úrovně.
TXLSShape.OfficeArtOptionsumožňuje pokročilým volajícím kontrolovat, nastavovat a mazat jakoukoli uloženou hodnotu FOPT PID jakoLongWordneboWideString, zatímco stávající API proLine,Fill, barvy a viditelnost na vysoké úrovni zůstávají nezměněna
Verze 2.88.33
Změněno
- Další záznamy pravidel OfficeArt solver-container nyní provádějí round-trip. Kromě typovaného
msofbtConnectorRule($F012) HotXLS nyní zachovává podřízené prvky řešitele, které nejsou složkami, jako jsouOfficeArtFArcRule($F014) aOfficeArtFCalloutRule($F017), jako surové záznamy OfficeArt uvnitřmsofbtSolverContainer($F005), takže pokročilé kresby Excelu při uložení již neztrácejí vztahy řešitele nesouvisející s konektorem
Verze 2.88.32
Změněno
- Značky OfficeArt ClientData se již po zachování neznámých záznamů neduplikují. MS-XLS definuje
OfficeArtClientData($F011) jako nulovou délkovou značku, jejíž následující záznamObjzůstává samostatným záznamem BIFF. Verze 2.88.32 tuto značku rozpoznává místo jejího zachycení jako neznámý list SpContainer, takže analyzované tvary při uložení emitují přesně jednu značku $F011
Verze 2.88.31
Změněno
- Pravidla konektoru OfficeArt nyní provádějí round-trip. Kresby .xls vytvořené Excelem uchovávají vazby čar konektoru v
msofbtSolverContainer($F005) s podřízenými záznamymsofbtConnectorRule($F012). Verze 2.88.31 analyzuje a emituje tento pár $F005/$F012 přesTMsoConnectorRules, přičemž zachovává počáteční tvar, koncový tvar, tvar konektoru a místa připojení při cyklech uložení/opětovného načtení. Dřívější poznámka auditu uváděla $F121, ale MS-ODRAW definujeOfficeArtFConnectorRulejako $F012
Verze 2.88.30
Změněno
- Nerozpoznané listové záznamy SpContainer OfficeArt nyní provádějí round-trip. Soubory .xls vytvořené Excelem běžně vkládají listové Fbts jako
msofbtClientTextbox($F00D),OfficeArtFPSPL($F11D) aOfficeArtUDefProp($F122) do SpContainer každého tvaru. Verze 2.88.30 zachycuje neznámé listy na úrovni tvaru jakoTMsoFbtUnknowna re-emituje je v pořadí analýzy meziClientAnchortvaru a koncovou nulovou značkoumsofbtClientData - Rozsah a navazující práce. Ostatní neznámé listy na úrovni kresby zůstávají odloženy; případ konektoru-pravidla solver-containeru řeší verze 2.88.31. Neznámé ve formě kontejneru, jako je
msofbtClientData($F011) použitý jako kontejner místo sourozenecké značky, zůstávají na auditním kole
Verze 2.88.29
Přidáno
- Chování FtLbsData pohlcující vše omezuje rozsah. Stávající případ
$0013přepíšeRecLen := Len - offs, aby pohltil všechny bajty po hlavičce FtLbsData do blobuFObjRec_LBSData, takže podřízené záznamy po FtLbsData (obvykle jen FtEnd) jsou stále zachovány přes tento mechanismus beze změny. Nová integrace FObjTailRaw specificky cílí na mezeru před FtLbsData, kde obvykle leží FtMacro a ObjLinkFmla. Nově vytvořené rozevírací / listové boxy přes Drawing API mají prázdnýFObjTailRaw→ výstup je bajtově identický s verzí 2.88.28
Odebráno
- Neznámé podřízenné záznamy OBJ ComboBox a ListBox nyní provádějí round-trip. TMSOShapeComboBox.ParseObj a TMSOShapeListBox.ParseObj již typovaně analyzovaly FtSbs ($000C), FtSbsFmla ($000E) a FtLbsData ($0013) do vyhrazených polí, ale jakýkoli jiný podřízený záznam zdrojového souboru (FtMacro $0004, ObjLinkFmla, FtNts $000D atd.) vystupující mezi CMO a FtLbsData byl při přechodu case tiše zahozen. Verze 2.88.29 přidává stejnou větev else jako verze 2.88.28 pro Picture, zachycuje 4bajtovou hlavičku + tělo neznámého podřízeného záznamu do
FObjTailRaw
Verze 2.88.28
Přidáno
- Vzor typované + surové koexistence. Na rozdíl od PictureFrame (v2.88.27), který používal přepínání if/else mezi typovaným a surovým emitem, Picture kombinuje obojí: typovaná pole zachovávají povrch API (volající stále mohou upravovat
ftCfValueatd.), zatímco surový konec zachovává pouze neznámé bajty. Nově vytvořené obrázky přes Drawing API mají prázdnýFObjTailRaw, takže výstup je bajtově identický s verzí 2.88.27
Odebráno
- Neznámé podřízené záznamy OBJ tvaru obrázku nyní provádějí round-trip. TMSOShapePicture.ParseObj již typovaně analyzovalo FtCf ($0007), FtPioGrbit ($0008) a FtPictFmla ($0009) do vyhrazených polí, ale jakýkoli jiný podřízený záznam zdrojového souboru (FtMacro $0004, FtNts $000D atd.) byl při přechodu case tiše zahozen. Verze 2.88.28 přidává větev else, která připojuje celou 4bajtovou hlavičku + tělo nerozpoznaných podřízených záznamů do
FObjTailRaw; TMSOShapePicture.AddObj pak tyto bajty emituje doslova po typovaném výstupu podřízených záznamů a před značkou FtEnd. Zdrojové objekty obrázků s makro-háky přežijí opětovné uložení
Verze 2.88.27
Přidáno
- Round-trip zachování bajtu OBJ za podřízenými záznamy rozšířen na tvary PictureFrame. TMSOShapePictureFrame.AddObj dříve emitoval pouze starší pevně zakódované podřízené záznamy FtCf ($0007, tělo $FFFF) a FtPioGrbit ($0008, tělo $0000) mezi CMO a FtEnd. Pro nově vytvořené rámečky obrázků nový kód stále emituje tyto výchozí hodnoty; pro rámečky obrázků analyzované ze zdrojového .xls se zachycené bajty
FObjTailRawemitují doslova, čímž se zachovává obsah FtPictFmla / nestandardní FtCf / nestandardní FtPioGrbit ze zdrojového souboru
Opraveno
- Poznámka z analýzy — Flush automaticky opravuje sz.
TMsoShapeContainer.Flushpřepisuje hlavičku velikosti záznamu Obj při potvrzení přesData.SetWord(Data.DataLength - 4, 2), což znamená, že pevně zakódované hodnotysz := $1Av implementacích AddObj HotXLS nebyly chybami specifikace — Flush je opraví automaticky. Verze 2.88.27 stále přesně vypočítává sz pro přehlednost zdrojového kódu, ale chování za běhu je z tohoto hlediska nezměněno
Verze 2.88.26
Přidáno
- Round-trip zachování bajtu OBJ za podřízenými záznamy rozšířen na tvary Chart a CheckBox. Verze 2.88.25 zavedla zachování surových bajtů pro bajty mezi CMO ($0015) záznamu Obj a jeho značkou FtEnd ($0000), ale pouze TMSOShapeTextBox.AddObj emitoval zachycený konec. Tato verze aplikuje stejný vzor na TMSOShapeChart.AddObj a TMSOShapeCheckBox.AddObj — oba sdílejí jednoduchou strukturu emitu „CMO + FtEnd" TextBoxu, takže změna spočívá v jednořádkové substituci proměnné (
sz := $1A + Word(Length(FObjTailRaw))) plus doslovné bajtové smyčce před značkou FtEnd
Změněno
- Podřízené záznamy za grafem (např. FtMacro pro makra vložených objektů grafů) a podřízené záznamy stavu zaškrtávacího políčka (FtCbls + FtCblsData + ObjLinkFmla) nyní přežijí uložení/opětovné načtení HotXLS. Nově vytvořené grafy a zaškrtávací políčka přes Drawing API stále emitují výchozí 26bajtový CMO+FtEnd, takže stávající volající nezaznamenají žádnou změnu chování. Tvary Picture / ComboBox / ListBox / PictureFrame mají vlastní dynamický emit typovaných podřízených záznamů, který je v konfliktu s FObjTailRaw — jejich integrace je odložena na budoucí commity
Verze 2.88.25
Přidáno
- Obecné základní zachycení, emit pouze pro TextBox (první plátek R5-3). TMsoShapeContainer.ParseObj nyní zachycuje rozsah bajtů mezi koncem těla CMO a značkou FtEnd do nového interního pole
FObjTailRaw: TBytes; TMSOShapeTextBox.AddObj vkládá tyto bajty mezi emit CMO a značku FtEnd, přičemž odpovídajícím způsobem upraví velikost hlavičky záznamu Obj. Nově vytvořené komentáře (bez zdrojových bajtů) zachovávají bajtově identický výstup s verzí 2.88.24. Ostatní třídy tvarů (Picture / CheckBox / ComboBox / ListBox / Chart) zdědí zachycení, ale jejich typované přepsání AddObj zachovávají starší chování „syntetizovat od nuly" — emit surových bajtů pro tyto typy tvarů je odložen
Změněno
- Podřízené záznamy za záznamy OBJ jsou nyní zachovány přes cyklus uložení pro komentáře. Záznam BIFF8 Obj ($005D) řetězí sekvenci typovaných podřízených záznamů za povinným CMO ($0015), zakončenou značkou FtEnd ($0000), podle MS-XLS §2.4.181. Pro tvary Note (komentář) je blok za typovanými záznamy obvykle 26bajtový FtNts (§2.5.149) nesoucí GUID a příznak fSharedNote — obojí nezbytné, když Excel později sloučí komentáře napříč uživateli ve sdílených sešitech. HotXLS dříve zahazoval každý bajt za CMO při čtení a emitoval pouze prázdný FtEnd při zápisu, takže jakýkoli zdrojový FtNts byl při každém opětovném uložení HotXLS ztracen
Verze 2.88.24
Přidáno
- Zachování surových bajtů v TMSOShapeTextBox. ParseTXO zachycuje bajty Continue po textu doslova do nového interního pole
FFormatRunsRaw: TBytes; Store je emituje zpět jako Continue formátovacích úseků a upravuje hlavičkucbRunszákladního záznamu tak, aby odpovídala. Nově vytvořené komentáře (přesAddComment) zachovávají starší výstup jednoho výchozího úseku beze změny, takže bajtově identický výstup je zachován pro výchozí sešity
Změněno
- Komentáře buněk s více fonty a barvami nyní provádějí round-trip. Blok formátovacích úseků záznamu BIFF8 TXO (
rgTxoRuns+TxOLastRunpodle MS-XLS §2.5.272) nese přepsání fontu a barvy pro jednotlivé úseky, která dávají komentáři jeho formátování ve stylu rich-text. HotXLS dříve zahazoval celý blok při čtení a emitoval jeden prázdný výchozí úsek + LastRun při zápisu — čímž srovnával například slovo „Důležité!" zvýrazněné červeně nebo tučné slovo v textu komentáře na uniformní výchozí formátování při každém opětovném uložení HotXLS
Verze 2.88.23
Přidáno
- Tři nové vlastnosti TXLSPageSetup.
PrintResolution: LongWord,PrintVResolution: LongWordaCopies: LongWord— výchozí hodnoty jsou hodnoty, které zapisovač dříve pevně zakódoval (600 / 600 / 1), takže sešity, které se jich nedotknou, produkují bajtově identický výstup s verzí 2.88.22. Settery upínají naHigh(Word), takže příliš velká hodnota volajícího nemůže při emitu přetéct
Odebráno
- Rozlišení tisku a počet kopií nyní provádějí round-trip — záznam Setup je nyní plně pokryt. Tři pole Word záznamu Setup (
iResna offsetu 12,iVResna offsetu 14,iCopiesna offsetu 32, podle MS-XLS §2.4.257) nesou volby „Kvalita tisku" a „Počet kopií" nastavení stránky Excelu. HotXLS dříve při čtení zahazoval všechny tři a emitoval pevně zakódované hodnoty (600 DPI / 600 DPI / 1 kopie), takže jakékoli uživatelem upravené rozlišení nebo počet kopií se při každém opětovném uložení HotXLS tiše vrátily k výchozím hodnotám
Opraveno
- Round-trip práce záznamu Setup dokončena. S touto opravou každé uživatelem viditelné pole záznamu BIFF8 Setup ($00A1) provádí round-trip end-to-end — velikost papíru / měřítko / číslo první stránky / přizpůsobit šířku a výšku / orientace / pořadí tisku / černobílý / návrh / tisk komentářů / chyby buněk / rozlišení / kopie. Zůstávají nezveřejněny pouze dva bity grbit spec-hint (
fNoPls,fNoOrient), přičemž HotXLS oba zapisuje jako nulu, což odpovídá výchozímu chování Excelu
Verze 2.88.22
Přidáno
- Dvě nové vlastnosti TXLSPageSetup.
UseFirstPageNumber: Booleanzrcadlí bit (False = „Automaticky", výchozí);FirstPageNumber: Integernese hodnotu iPageStart (výchozí 1, oříznutá na rozsah znaménkového slova spec -32768..32767 setterem). HotXLS provádí round-tripiPageStartdoslova i tehdy, kdy jeUseFirstPageNumberFalse, takže přepínání mezi Automaticky a vlastním číslem v Excelu zachovává poslední uživatelem zadanou hodnotu
Odebráno
- Vlastní číslo první stránky nastavení stránky nyní provádí round-trip. Záznam BIFF8 Setup nese volbu nastavení stránky „Číslo první stránky" jako dvě související pole: bit 7 grbit (
fUsePage) volí mezi výchozím „Automaticky" Excelu a explicitním číslem počáteční stránky, a znaménkové slovo na offsetu 4 (iPageStart) tuto vlastní hodnotu drží, podle MS-XLS §2.4.257. HotXLS dříve při čtení zahazoval obojí a emitovaliPageStart = 1s bitem nastaveným na nulu, takže uživatelem zadané „Číslo první stránky: 100" se tiše přepnulo zpět na „Automaticky" při každém opětovném uložení HotXLS
Verze 2.88.21
Přidáno
- Nová booleovská vlastnost TXLSPageSetup.PrintNotesAtEnd. Výchozí hodnota je
False, odpovídající výchozímu nastavení uživatelského rozhraní Excelu. Čtečka a zapisovač provádějí round-trip bitu doslova (i tehdy, kdy jePrintNotes = False), takže sešit s dočasně zakázanými komentáři si zachová předvolbu „na konci listu" pro případ, kdy je uživatel znovu povolí — zrcadlí vlastní chování Excelu
Odebráno
- Volba „Tisknout komentáře na konci listu" nyní přežívá cyklus uložení. Bit 9 grbit záznamu BIFF8 Setup (
fEndNotespodle MS-XLS §2.4.257) nese rozlišení rozevíracího seznamu Komentáře nastavení stránky → List: mezi „Jak je zobrazeno na listu" (výchozí) a „Na konci listu". HotXLS již prováděl round-trip PrintNotes (bit 5) pro řízení toho, zda se komentáře tisknou, ale bit 9 byl při čtení zahozen a při zápisu emitován jako nula — takže uživatelem zvolené „Na konci listu" se tiše vrátilo na „Jak je zobrazeno na listu" při každém opětovném uložení HotXLS
Verze 2.88.20
Změněno
- Volba sešitu „Nastavit přesnost jako zobrazenou" nyní provádí round-trip. Záznam BIFF8 CalcPrecision ($000E) nese zaškrtávací políčko celého sešitu Soubor → Možnosti → Upřesnit → „Nastavit přesnost jako zobrazenou" podle MS-XLS §2.4.35. HotXLS dříve neměl případ dispečeru pro $000E a TXLSWorkbook.StorePrecision emitoval pevně zakódovanou hodnotu
1(= plná přesnost zachována). Uživatelem zaškrtnutá možnost „Nastavit přesnost jako zobrazenou" se tiše vrátila na „plnou přesnost" při každém opětovném uložení HotXLS
Opraveno
- Nová booleovská vlastnost TXLSWorkbook.UseFullPrecision. Výchozí hodnota je
True(odpovídá výchozímu nastavení BIFF8 a výchozímu nastavení uživatelského rozhraní Excelu nezaškrtnuto). Nastavení naFalsezrcadlí zaškrtnutí destruktivní možnosti „přesnost jako zobrazená" — HotXLS sám netřídí žádnou hodnotu buňky při round-tripu, ale příznak je nyní věrně zapsán zpět, takže příští přepočet Excelu ho bude respektovat. S touto opravou každý záznam výpočtu BIFF8 (CalcCount / CalcMode / CalcPrecision / CalcDelta / CalcIter / CalcSaveRecalc) provádí round-trip end-to-end
Verze 2.88.19
Přidáno
- Nová booleovská vlastnost TXLSWorkbook.RecalcOnSave. Výchozí hodnota je
True(odpovídá výchozímu nastavení uživatelského rozhraní Excelu i starší pevně zakódované hodnotě), takže sešity, které se vlastnosti nedotknou, zachovávají bajtově identický výstup s verzí 2.88.18. Setter přijímá jakoukoliv booleovskou hodnotu; čtečka normalizuje libovolné nenulové zdrojové bajty naTrue
Změněno
- Zaškrtávací políčko „Přepočítat sešit před uložením" nyní provádí round-trip. Záznam BIFF8 CalcSaveRecalc ($005F) nese booleovskou hodnotu sešitu Soubor → Možnosti → Uložit → „Přepočítat sešit před uložením" podle MS-XLS §2.4.37. HotXLS dříve neměl případ dispečeru pro $005F a StoreCalculationSettings emitoval pevně zakódovanou hodnotu
1— takže uživatelem deaktivovaný „přepočet při uložení" se tiše znovu aktivoval při každém opětovném uložení HotXLS
Verze 2.88.18
Přidáno
- Tři nové vlastnosti TXLSWorkbook.
EnableIteration: Booleanzrcadlí zaškrtávací políčko;MaxIterations: LongWordje maximální počet iterací (oříznutý na rozsah 1..32767 povoleným specifikací setterem);MaxIterationChange: Doubleje konvergenční delta (záporný vstup přijme výchozí hodnotu spec 0.001). Výchozí hodnoty odpovídají hodnotám, které zapisovač dříve pevně zakódoval, takže sešity, které se nových vlastností nedotknou, produkují bajtově identický výstup s verzí 2.88.17
Změněno
- Nastavení iterativních výpočtů (zapnutí + maximální počet iterací + maximální změna) nyní provádějí round-trip. Záznamy BIFF8 CalcIter ($0011), CalcCount ($000C) a CalcDelta ($0010) dohromady nesou trio voleb „Povolit iterativní výpočty" v Excelu (Soubor → Možnosti → Vzorce), podle MS-XLS §2.4.33 / §2.4.31 / §2.4.32. Žádný ze tří neměl dříve případ dispečeru a StoreCalculationSettings je emitoval s pevně zakódovanými hodnotami (iterace vypnuta / 100 / 0.001). Uživatelem nakonfigurovaná 1000iterační smyčka s konvergenční deltou 0.0001 se tiše resetovala na „iterace vypnuta, 100, 0.001" při každém opětovném uložení HotXLS — čímž rozbíjela vzorce s cirkulárními referencemi a citlivé finanční modely závislé na konvergenci
Verze 2.88.17
Přidáno
- Režim výpočtu sešitu (Ruční / Automatický / Automatický kromě tabulek) nyní provádí round-trip. Záznam BIFF8 CalcMode ($000D) nese volbu „Vzorce → Možnosti výpočtu" na úrovni sešitu podle MS-XLS §2.4.36. HotXLS dříve neměl pro $000D žádný případ dispečeru, takže hodnota zdrojového souboru byla při načtení zahazována a zapisovač vždy emitoval pevně zakódovanou hodnotu
$0001(Automaticky). Uživatelem vybraný Ruční režim se tiše vracel na Automaticky při každém opětovném uložení HotXLS — nevhodné pro velké sešity, kde je Ruční režim záměrně nastaven kvůli výkonu. Nový handler ParseCalcMode ukládá zdrojovou hodnotu na sešitu a StoreCalculationSettings nyní emituje uloženou hodnotu namísto konstanty - Nová vlastnost TXLSWorkbook.CalculationMode. Vlastnost
LongWordpro čtení i zápis přijímajícíxlCalcManual(0),xlCalcAutomatic(1, výchozí) neboxlCalcAutomaticExceptTables(0xFFFF) — tři nové konstanty exportované zlxTNC.inc. Setter ořezává neznámé hodnoty na výchozí hodnotu spec, aby poškozený zdrojový soubor nemohl zanechat sešit v nedefinovaném stavu. Stávající kód, který vlastnost nikdy nenastaví, si zachovává výchozí hodnotu „Automaticky", takže předchozí výstup je pro výchozí sešity bajtově identický
Verze 2.88.16
Přidáno
- Nová vlastnost TXLSPageSetup.PrintCellErrors. Vlastnost
LongWordpro čtení i zápis přijímajícíxlPrintErrorsDisplayed(0, výchozí),xlPrintErrorsBlank(1),xlPrintErrorsDash(2) neboxlPrintErrorsNA(3) — čtyři nové konstanty exportované zlxTNC.inc. Stávající volající PageSetup, kteří vlastnosti nikdy nesáhnou, si zachovávají výchozí hodnotu („zobrazeno"), takže starší výstup tisku se nemění
Odebráno
- Volba nastavení stránky „Chyby buněk jako" nyní přežívá cyklus uložení. Záznam BIFF8 Setup ($00A1) zabaluje rozevírací seznam Nastavení stránky → List „Chyby buněk jako: zobrazeno / <prázdno> / <pomlčka> / <N/A>" do bitů 10–11 svého slova grbit jako
iErrors, podle MS-XLS §2.4.257. HotXLS dříve při čtení tyto bity zahazoval a při zápisu je emitoval jako nulu, takže sešit, který uživatel nakonfiguroval k tisku#DIV/0!jako#N/A, se tiše vracel na „zobrazeno" po každém opětovném uložení HotXLS. Čtečka nyní dekódujeiErrorsdo nové vlastnostiTXLSPageSetup.PrintCellErrorsa zapisovač pole z ní rekonstruuje
Verze 2.88.15
Přidáno
- Šest nových vlastností TMSOShapeTextBox pro explicitní stylování komentářů.
HAlignment,VAlignment,Rotation,LockText,JustLastLineaSecretEditjsou zpřístupněny jako vlastnosti pro čtení i zápis na každém tvaru komentáře;AddCommentvýchozně nastavuje vlevo+nahoře+vodorovně+odemknuto, takže volající, kteří se jich nedotknou, zachovají předchozí vzhled
Odebráno
- Zarovnání a orientace komentářů buněk nyní provádějí round-trip. Základní záznam BIFF8 TXO ($01B6) nese pět typovaných příznaků ve svém slově
grbit(hAlignment, vAlignment, fLockText, fJustLast, fSecretEdit) a samostatné slovorotpro orientaci textu, podle MS-XLS §2.4.329. Čtečka dříve všechny zahazovala a zapisovač fixovalgrbitna pevně zakódovanou hodnotu0x0012(vlevo + nahoře) s rotací vždy 0, takže každé uložení resetovalo vycentrovaný nebo otočený komentář zpět na vlevo+nahoře+vodorovně bez ohledu na zdroj. Čtečka nyní při načtení dekóduje typovaná pole a zapisovač z nichgrbitskládá, takže rozvržení přežije cyklus uložení/načtení
Opraveno
- Zapisovač TXO nyní rozkládá reserved4 / reserved5 podle hranic polí spec. Předchozí kód emitoval offsety 2–9 základního záznamu jako dva dlouhé zápisy (rot + reserved4 a poté reserved5); zapisovač nyní je rozděluje na
Wordrot,Wordreserved4,Longreserved5 — bajtový obsah se nemění (stále samé nuly pro tvary Note), ale zdrojová struktura nyní odpovídá offsetům polí MS-XLS §2.4.329, což ztěžuje budoucí chybné zarovnání oprav TXO
Verze 2.88.14
Opraveno
- Opraven offset cchText záznamu TXO — oprava délky komentáře z v2.88.13 nyní skutečně funguje. Předchozí vydání zavedlo kontrolu základního záznamu TXO čtením
cchTextna offsetu 8, ale MS-XLS §2.4.329 umísťujecchTextna offset 10 (za grbit, rot a 6 bajtů reserved / controlInfo). Offset 8 spadá do long reserved5, který je u objektů ve tvaru Note vždy nula, takže každý komentář tiše sklouzl do obranné záložní větve, která jednoduše obnovila chování před v2.88.13. Oprava koriguje offset na 10 — dlouhé komentáře nyní skutečně přecházejí přes záznamy Continue a krátké komentáře již nezachytávají koncové vyplnění. Žádná další změna chování oproti tomu, co bylo v2.88.13 vždy zamýšleno dodat
Verze 2.88.13
Změněno
- Dlouhé komentáře buněk jsou nyní načítány v plné délce. Záznam BIFF8 TXO ($01B6) rozděluje tělo textu přes základní záznam a jeden nebo více záznamů Continue, přičemž počet znaků je zveřejněn v základním záznamu na offsetu 8 jako
cchText. Předchozí čtečka komentářů základní záznam úplně přeskakovala, považovala DataList[1] za celý text a tam se zastavila — takže komentář delší než přibližně 4100 znaků UCS-2 byl tiše zkrácen a kratší komentář, jehož záznam Continue nesl koncové vyplnění, na konci obsahoval nesmyslné znaky. Čtečka nyní používácchTextjako autoritativní počet znaků, prochází každý segment Continue podle MS-XLS §2.4.329 (zalomení rgb leží na hranici znaků, takže není potřeba žádná správa částečných znaků) a zastaví se, jakmile je rozpočet splněn, takže blok formátovacích úseků, který následuje za textem, nikdy nezapadne do řetězce. Komentáře s poškozenými / chybějícími základními záznamy stále záložně přejdou na starší cestu „všechny zbývající bajty"
Verze 2.88.12
Změněno
- Mezipaměťové řetězce delší než přibližně 4100 znaků pocházející ze vzorců vracejících řetězce nyní provádějí round-trip přes záznamy Continue. Verze 2.88.11 zapojila stranu čtení záznamu BIFF8 String ($0207), ale zpracovávala pouze tělo prvního záznamu, takže mezipaměťový řetězec, jehož bajty UCS-2 přetekly 8224bajtový limit BIFF a rozlily se do jednoho nebo více záznamů Continue ($003C), byl tiše zkrácen. Handler nyní prochází celý DataList na úrovni dispečeru: čte cch a fHighByte ze základního záznamu, kopíruje tělo, které se vejde, a pak zřetězuje každý následující segment Continue jako surové bajty podle záruky hranic znaků MS-XLS §2.5.293 — XLUnicodeString nikdy znovu neemituje fHighByte uprostřed řetězce. Každý segment je ohraničen zbývajícím znakovým rozpočtem, takže nadbytečně velký záznam Continue nemůže prodloužit výsledek nad cch. Jednozáznamové řetězce (běžný případ) používají přesně stejnou rychlou cestu jako dříve
Verze 2.88.11
Opraveno
- Vzorce vracející řetězce nyní provádějí round-trip mezipaměťového textu vypočítaného Excelem. Předchozí vydání pokrylo varianty číslo, boolean, chyba a prázdno mezipaměti FormulaValue BIFF8 (MS-XLS §2.5.133), ale stringovou variantu ponechalo na seznamu úkolů, protože její mezipaměťová hodnota se nachází v samostatném záznamu String ($0207) bezprostředně za záznamem Formula. ParseFormula si nyní pamatuje souřadnice buňky, když narazí na vzorec s variantou řetězce, a nový handler ParseString dekóduje navazující záznam $0207 podle MS-XLS §2.4.268 a směruje WideString do
FCachedFormulaValue.GetCellValuenyní může záložně přejít na text vypočítaný Excelem vždy, když ho evaluátor HotXLS nedokáže reprodukovat. Defenzivní reset na vrcholu ParseFormula zahazuje případnou nevyřízenou kotvu, takže poškozený zdrojový soubor s chybějícím záznamem String nemůže špatně nasměrovat pozdější. Záznamy delší než 8224 bajtů přetékající do bloků Continue stále záložně přejdou na výstup evaluátoru jako známé omezení
Verze 2.88.10
Přidáno
- Záznamy BIFF8 Formula nyní provádějí round-trip mezipaměťové hodnoty vypočítané Excelem. ParseFormula dříve 8bajtový payload FormulaValue na offsetu 6 zcela přeskakoval, takže mezipaměťový výsledek každého vzorce v načteném .xls (čísla, booleany, chyby, prázdno) byl zahozen a HotXLS musel každou buňku přepočítat přes vlastní engine vzorců. Pokud engine nedokázal Excelu odpovídat (nepodporované funkce XLM, přerušené externí odkazy, vzorce, které engine zatím neimplementoval), buňka se tiše stala prázdnou nebo nulovou. Čtečka nyní dekóduje čtyři varianty číselná / boolean / chyba / prázdno podle MS-XLS §2.5.133 a ukládá je do nového pole
TXLSCellRef.FCachedFormulaValue;GetCellValuepřechází záložně na tuto mezipaměť pouze tehdy, když evaluátor selže, takže nově vytvořené vzorce stále procházejí vyhodnocením jako dříve. Stringová varianta nadále odkládá na evaluátor, protože parser navazujícího záznamu String ($0207) zatím není zapojen
Verze 2.88.9
Opraveno
- Záznamy BIFF8 Formula s neřešitelnými hodnotami nyní nastavují fAlwaysCalc místo bitu reserved1. Když evaluátor HotXLS nedokázal vzorec při ukládání vypočítat, zapisovač nastavoval
grbit = 0x0002— bit 1, který MS-XLS §2.4.127 rezervuje a říká čtečkám, aby ho ignorovaly. Excel ho duly ignoroval, zacházel s zástupnou mezipaměťovou hodnotou 0 jako autoritativní a tiše zobrazoval 0 namísto přepočtu. Zapisovač nyní nastavujegrbit = 0x0001(fAlwaysCalc, bit 0), takže Excel vzorec znovu spustí při příštím přepočtu a buňka zobrazí správný výsledek
Verze 2.88.8
Opraveno
- PageSetup.PrintTitleColumns / PrintTitleRows nyní vyvolají výjimku při špatném vstupu. Nastavení kterékoli vlastnosti na špatně formátovaný řetězec rozsahu (cokoli, co
ColDiapasonToValues/RowDiapasonToValuesnedokázalo analyzovat) dříve tiše přiřazení zahazovalo — sešit si zachoval jakýkoli rozsah Print_Titles, který byl již nastaven, nebo žádný rozsah, a volající neměl jak zjistit, že se něco pokazilo. Settery nyní vyvolávajíException.Creates popisnou zprávou pojmenovávající porušující hodnotu, čímž odpovídají stávajícímu stylu výjimek na cestách neplatného indexuTXLSRange
Verze 2.88.7
Přidáno
- Přidána poznámka errata k auditu spec BIFF8 — kolo 2. Opětovná kontrola hranic polí [MS-XLS] objasnila, že dvě zjištění označená jako P2 v původní zprávě (
dev-notes/XLS-BIFF8-Spec-Audit-Round2.md) nejsou skutečné chyby: bit-15 nastavený v příznaku history záznamu BOF $000080C9 patří do pole verXLHigh (bity 14–17, hodnota 2 = „Excel 2002"), nikoliv do konce reserved1 (bity 19–31); a použití vedoucího tokenu PtgExp v ParseFormula k detekci sdílených / maticových vzorců odpovídá tomu, co spec naznačuje, a správně rozlišuje prostřednictvím navazujícího záznamu ShrFmla / Array. Obě položky jsou nyní opatřeny poznámkou jako odvolané
Odebráno
- Pole miyRw záznamu Row nyní zůstává v rozsahu povoleném spec MS-XLS. Starší verze Excelu před BIFF8 kódovaly „použít výchozí výšku řádku sešitu" OR-ováním bitu 15 do miyRw, a HotXLS tuto idiom přenášel do zapisovače BIFF8 i přes to, že MS-XLS §2.4.221 omezuje miyRw na 8192 twips. Moderní Excel emituje v tomtéž případě prostých 255 (výchozích 12,75 pt) a k signalizaci ručních přepsání používá bit grbit fUnsynced, takže hack s bitem 15 způsoboval odchylku výstupu HotXLS od autoritativních .xls souborů (hodnota 32 959 = 0x80FF pro „výchozí" byla technicky mimo spec). Zapisovač nyní OR vynechává a zapisuje přímo 255; čtečka na cestě dovnitř stále odstraňuje bit 15 pro zpětnou kompatibilitu se soubory HotXLS v2.88.6 a staršími a s vzácnými generátory třetích stran, které zkopírovaly idiom BIFF5
Verze 2.88.6
Opraveno
- Makro listy a VBA moduly nyní zachovávají svůj ordinální slot v BoundSheet8. Čtečka dříve zahazovala záznamy BoundSheet8, jejichž pole
dtbylo 1 (makro list) nebo 6 (VBA modul), takže kolekce listů HotXLS měla o tyto záznamy méně. Jakákoli křížová reference XTI v ExternSheet, která odkazovala na pozici listu za makro listem v pořadí souboru, pak po SaveAs vedla k nesprávnému listu HotXLS. Čtečka nyní přidává zástupný list pro každý záznam BoundSheet8 a ukládá surový bajtdtdo nové vlastnostiSheet.SheetTypeRaw; zapisovač původní bajt emituje zpět. Záznamy BOF ($0040) substreamu makra jsou při analýze také zpracovávány jako substreamy listu, takže buňky uvnitř makro listů jsou zachovány namísto tichého pohlcení do předchozího listu
Verze 2.88.5
Odebráno
- Záznam BIFF8 Row nyní provádí round-trip polí fCollapsed, fExAsc, fExDes a fPhonetic. Dříve čtečka zahazovala fCollapsed (bit 4 grbit) — zapisovač ho odvozoval z přechodů obrysové úrovně u sousedních řádků, čímž chybně klasifikoval řádky, které zdrojový soubor explicitně sbalil nebo označil jako hranice. Vysoké tři bity (fExAsc na 28, fExDes na 29, fPhonetic na 30) také nebyly nikdy čteny a vždy se emitovaly jako nula, protože zapisovač 4bajtový grbit zkracoval na jeden 16bitový slot ixfe. Čtečka nyní zpracovává všechny čtyři bity podle MS-XLS §2.4.221 a fixuje fCollapsed jako explicitní, takže odvozování na straně zapisovače již nepřepisuje hodnoty zadané Excelem. Zapisovač zabalí ExAsc / ExDes / Phonetic do bitů 12–14 slova ixfe a maskuje ixfe na rozsah 12 bitů povolený spec, aby index XF nikdy nekolidoval s novými příznaky. Vedlejší efekty round-tripu: silné horní / střední dolní ohraničení řízené nápovědami ExAsc / ExDes přežijí SaveAs HotXLS a viditelnost fonetických informací na japonských listech se přestane resetovat při každém uložení
Verze 2.88.4
Opraveno
- Bit fPaged záznamu BIFF8 Window2 nyní označuje pouze aktivní list. Předchozí vydání nastavovala
fPaged(MS-XLS §2.4.346 bit 10) na každém viditelném listu, což způsobovalo odchylku výstupu HotXLS od toho, co sám Excel zapisuje (podle spec bit znamená „tento list je aktuálně zobrazen v okně sešitu", takže ho nese pouze substream aktivního listu). Čtečky Excelu záložně přecházely naWindow1.itabCurk identifikaci skutečného aktivního listu tak jako tak, takže zneužití bylo tolerováno, ale striktní režim Apache POI a jiné nástroje, které důvěřujífPagedjako primárnímu signálu, nyní vidí správně označený list
Verze 2.88.3
Odebráno
- Zoom a barva mřížky záznamu BIFF8 Window2 nyní provádějí round-trip. Předchozí vydání při čtení zahazovala pole záznamu WINDOW2 za offsetem 6 a při zápisu emitovala pevně zakódované nuly, takže jakýkoli zoom listu uloženého Excelem (75 %, 125 % atd.) a přizpůsobení barvy mřížky se po SaveAs HotXLS vracely na výchozí hodnoty. Čtečka nyní zpracovává
icvHdr,wScaleSLVawScaleNormalpodle MS-XLS §2.4.346: zoom aktivního zobrazení se ukládá doSheet.Zooma hodnota opačného zobrazení přistává v mezipaměťovém slotu, aby přepínání mezi Normálním a Náhledem konce stránky v Excelu obnovilo předchozí zoom. Zapisovač emituje aktivníSheet.Zoomv odpovídajícím slotu zobrazení a mezipaměťovou hodnotu ve druhém slotu, spolu se zachovaným indexem barvy mřížky
Verze 2.88.2
Opraveno
- Opraven operační kód záznamu BIFF8 HFPicture. Uložené soubory .xls nyní emitují záznamy obrázků na pozadí záhlaví / zápatí se správným
rt = 0x0866podle MS-XLS §2.4.138. Předchozí vydání používala0x086C— operační kód pro CellWatch — takže Excel se pokoušel analyzovat vložený OfficeArt BLIP jako odkaz na sledovanou buňku a obrázek tiše zahodil (někdy odmítl sešit otevřít, pokud bajty vloženého obrázku náhodou porušovaly očekávanou 16bajtovou strukturu CellWatch). Sešity, které provádějí round-trip obrázku záhlaví / zápatí přes HotXLS, nyní obrázek zachovají
Verze 2.88.1
Opraveno
- Opraven operační kód záznamu BIFF8 Theme. Uložené soubory .xls nyní emitují záznam Theme se správným
frtHeader.rt = 0x0896podle MS-XLS §2.4.326. Předchozí vydání používala0x0892— operační kód pro StyleExt — takže Excel interpretoval vložený payload tématu OOXML jako rozšíření stylu buňky a tiše záložně přešel na vestavěné téma Office, čímž ztrácel jakékoli přizpůsobené barvy tématu při round-tripu sešitu přes HotXLS
Verze 2.88.0
Přidáno
- Uložené balíčky .xlsx nyní obsahují část
xl/theme/theme1.xml. Soubor styles.xml vždy emitoval reference<color theme="N"/>pro jakoukoliv barvu písma / výplně / ohraničení / záložky nastavenou přes cestu indexu tématu (a pro barvy tématu přenesené z analyzovaného vstupního .xlsx), ale část tématu nebyla zapisována, takže reference zůstávaly visět. Excel absenci tiše toleroval záložním přechodem na vestavěné téma „Office", ale Office File Validation označoval každou referenci jako „část tématu chybí" a striktní režim Apache POI sešit odmítl při prvním vyhledávání.SaveAsnyní emituje kanonické téma Office (2007+): 12slotové barevné schéma (systémováwindowText/window, čtyři výchozí barvy Excelu, šest akcentů, dvě barvy hypertextových odkazů), schéma písem Calibri Light / Calibri, minimálně platné schéma formátů (tři záznamy výplně / čáry / efektu / výplně pozadí každý podleCT_StyleMatrix). Soubor[Content_Types].xmlzískává odpovídajícíOverride;xl/_rels/workbook.xml.relszískává vztahtheme/theme1.xml, který spadá na konec rozsahu rid, takže stávající offsetyXlsxFirstExternalLinkRidpro listy / sst / styles / vba / externalLinks zůstávají nezměněny - Přímé přiřazení
Sheet.Name := '...'nyní také dezinfikuje a deduplikuje. Kolo 3 (v2.54.1) přidalo vynucení pravidel pojmenování Excelu vTXLSXSheets.Add(AName), ale setter vlastnostiTXLSXWorksheet.Namebyl prostýwrite FName, takže nejběžnější cesta mutace, kterou toto kolo nepokrylo —lxXlsxExport.pas:122 Target.Name := Source.Namev round-tripu XLS → XLSX — propouštěla jakýkoli název, který zdrojový BIFF8 náhodou nesl (zakázané znaky: \ / ? * [ ], délka > 31, obklopující jednoduché uvozovky, rezervovaný názevHistory, duplikáty existujícího listu bez ohledu na velikost písmen). Setter vlastnosti nyní směruje přes novou metoduSetName, která přehrává stejnou logikuXlsxSanitizeSheetName+ deduplikace suffixem' (N)'(bez ohledu na velikost písmen, bez zahrnutí sebe sama) vůči kolekci listů nadřazeného sešitu. Odpojené listy (zatím bez zpětného ukazateleFWorkbook) přeskočí krok deduplikace a pouze dezinfikují —TXLSXSheets.Addvynutí jedinečnost při připojení listu. Idempotentní na již platných názvech, takžeFSheets.Add(names[i])na straně čtečky zůstává čistým round-tripem
Opraveno
- [MS-XLSX] křížový audit kolo 4 — část tématu + setter názvu listu. Dvě navazující opravy zaměřené na problémy ponechané po kolech 1–3 (v2.51.0 / v2.52.0 / v2.54.1). Ani jedna neruší stávající místo volání; jedna rozšiřuje chování u setteru, druhá přidává novou vždy emitovanou část
Verze 2.87.4
Změněno
- Sdílené vzorce XLS nyní zapisují platné tělo
ShrFmla. Výstup sdílených vzorců BIFF8 nyní obsahuje požadovaný bajtcUsepřed sdíleným analyzovaným vzorcem, takže sešity uložené sUseSharedFormulasjiž neposouvají tok tokenů vzorce o jeden bajt - Styl tabulky XLS a metadata filtrů nyní odpovídají nejnovějšímu rozvržení MS-XLS.
AddTablenyní zapisujeLIST12jakoList12TableStyleClientInfo, nastavuje příznaky AutoFilter tabulky a pole veFeature11a emituje prázdné blokyFeat11FdaAutoFilterna sloupec, které Excel očekává - Pravidla BIFF8 CF12 Data Bar / Color Scale / Icon Set nyní vynechávají zakázané payloady DXF. HotXLS dodržuje pravidlo MS-XLS, že tyto typy CF12 musí nést prázdný blok DXF, a přitom zachovává jejich skutečná nastavení pravidel v tail specifickém pro druh CF12
Verze 2.87.3
Odebráno
- Metadata tabulky listu XLS nyní dodržují rozvržení tabulky
Feature11podle MS-XLS. VýstupAddTablepro soubory .xls nyní zapisuje hlavičku tabulkyFeatHdr11a payloadyFeature11TableFeatureType/Feat11FieldDataItem, odstraňuje starší značku tabulky$0867 FeatHdra ukládá názvy tabulek a sloupců jako hodnotyXLUnicodeString
Opraveno
- Zpětné načítání tabulek XLS nyní rozumí správnému rozvržení polí podle spec. HotXLS analyzuje názvy tabulek
TableFeatureType, rozsahy, stav řádku součtů a záhlaví polí, přičemž zachovává záložní cestu pro starší záznamy tabulek generované HotXLS
Verze 2.87.2
Opraveno
- Záznamy pokračování BIFF8 XLS nyní nesou správné základní délky. Nadměrné záznamy XLS rozdělené zapisovačem nyní aktualizují délku prvního záznamu na 8224 bajtů namísto ponechání původní nadměrné délky v hlavičce BIFF
- Velké tabulky listů XLS nyní používají spec-správné bloky
ContinueFrt11. VýstupyAddTables velkými payloadyFeature11nyní ukládají s záznamy pokračování$0875 ContinueFrt11a znovu se otevírají se zachovanými metadaty tabulky, odpovídající rozvržení [MS-XLS]Feature11/ContinueFrt11
Verze 2.87.1
Změněno
- Limit mřížky listu XLSX nyní zahrnuje poslední řádek a sloupec Excelu.
TXLSXRange,RCRange,EntireRowaEntireColumnnyní povolují řádek 1048576 a sloupec 16384 (XFD), odpovídající hranicím čísla řádku a sloupce [MS-XLSX]. Dříve interní omezení používalo nulou indexovaná maxima, takžeXFD1048576a rozsahy dotýkající se posledního řádku nebo posledního sloupce byly tiše oříznuty na předchozí řádek / sloupec
Opraveno
- Dokumentace a testy šifrování XLSX nyní odpovídají implementované cestě zápisu. Stránky nápovědy a regresní sada nyní uvádějí, že
SaveAsEncryptedzapisuje výstup ECMA-376 Standard Encryption pro neprázdná hesla, zatímcoOpenEncryptedstále vyvolává výjimku pro šifrované balíčky a záložně přechází pro běžné soubory .xlsx
Verze 2.87.0
Opraveno
- Ukládání XLSX chráněného heslem nyní funguje (wave J fáze 2, backlog #29).
TXLSXWorkbook.SaveAsEncrypted(FileName, Password)nyní zapisuje skutečný soubor .xlsx chráněný šifrováním ECMA-376 Standard Encryption (formát Office 2007+). Kompletní pipeline [MS-OFFCRYPTO] §2.3.4 je na místě: derivace hesla SHA-1 s 50 000 iteracemi + bloky AES-128 ověřovatele + šifrování těla balíčku AES-CBC + binární serializátorEncryptionInfoz fáze 1 se nyní spojuje se čtyřmi metadatovými streamy\005DataSpacesz fáze 2 (Version / DataSpaceMap / DataSpaceInfo / TransformInfo) a zapisovačem OLE Compound File Binary, který vše vloží do kontejneru CFB, který Excel otevírá s uživatelským heslem. Workflow: volající vyvoláSaveAsEncrypteds neprázdným heslem → HotXLS serializuje sešit do plaintext .xlsx zip v paměti → šifruje přes AES-128 CBC s čerstvou náhodnou 16bajtovou solí a ověřovatelem → zapisuje výstup CFB přesStgCreateDocfile. Otevření v Excelu 2007+: zadá heslo → obsah se otevře. Špatné heslo: odmítnuto.OpenEncrypted(strana dešifrování) je stále samostatná položka backlogu a nadále vyvoláváEXlsxEncryptionNotImplementedpři obdržení šifrovaného souboru
Verze 2.86.1
Přidáno
- XLSX Standard Encryption — kryptografický základ (wave J fáze 1, backlog #29). Dvě nové interní jednotky přinášejí šifrovací a odvozovací část klíče cesty zápisu ECMA-376 Standard Encryption.
lxAES.pasobaluje AES Briana Gladmana (odkazovaný zthirdparty/Win32/aes*.obj+thirdparty/Win64/aes*.obj) a zpřístupňuje vstupní body šifrování AES-128 ECB pro jeden blok a AES-128 CBC.lxXlsxStdEncrypt.pasimplementuje SHA-1 v čistém Pascalu (FIPS-180-4), derivaci hesla [MS-OFFCRYPTO] §2.3.4.10 s 50 000 iteracemi, bloky ověřovatele §2.3.4.7 (EncryptedVerifier+EncryptedVerifierHash), šifrování těla balíčku AES-CBC (8bajtový prefix velikosti LE + nulové doplnění na hranici 16 bajtů + IV-of-zeros) a binární serializátorEncryptionInfo§2.3.4.6.TXLSXWorkbook.SaveAsEncryptedstále vyvoláváEXlsxEncryptionNotImplemented— wave J fáze 2 přidá zapisovač OLE Compound File Binary (kontejnerové streamy\005DataSpaces) a zapojí pipeline doSaveAsEncrypted. Do té doby jsou nové jednotky interním scaffoldingem knihovny, na kterém by volající neměli záviset
Verze 2.86.0
Odebráno
- Round-trip QueryTable a externího datového připojení (wave I, backlog #28). QueryTables vytvořené Excelem a externí datová připojení (Data → Načíst externí data z webu / SQL / OLEDB) nyní přežijí cyklus uložení / otevření HotXLS. Dříve čtečka BIFF8 tiše přeskakovala
QsiSXTag($0802),QsiSXTagExt($0810) aDConn($0876), takže metadata popisující nadřazený dotaz byla při uložení zahozena a tabulka degradovala na prosté hodnoty buněk. Čtečka nyní zachytává tyto záznamy jako neprůhledné bajty a zapisovač je emituje zpět do substreamu listu (spolu s blokem PIVOTVIEW podle [MS-XLS] §2.1.7.20.5) a do globálních dat sešitu (spolu s blokem pozdních globálů před EOF podle §2.1.7.20.3). HotXLS stále programově nemodeluje typovanou strukturu QSI / DConn — vytváření nových QueryTables z kódu volajícího je odloženo na pozdější wave — ale sešity, které je již obsahují, již neztrácejí metadata obnovení. Pouze BIFF8 (.xls); BIFF5 není ovlivněn
Verze 2.85.1
Změněno
- Obnovení sestavení knihovny Win32 / Win64. Dvě pomocné proměnné SXLI pro položky řádků kontingenční tabulky v emitoru SXLI pro více datových polí wave H5.3 byly deklarovány jako samostatné anonymní typy
array of array of Word, které Delphi kompilátor považuje za odlišné nepojmenované typy a odmítá přímé přiřazení s chybouE2008 Incompatible types. Knihovna HotXLS se od v2.84.1 nesestavila na RAD Studio 12.0 až 37.0. Obě proměnné jsou nyní deklarovány společně, takže sdílejí jeden anonymní typ, opravují přiřazení a obnovují výstup .dcu / .bpl pro cíle Win32 i Win64. Žádná změna chování za běhu — emitované bajty SXLI jsou identické s v2.85.0
Verze 2.85.0
Změněno
- Typované API mezisoučtů kontingenční tabulky (wave H5.4). Typovaná
TXLSPivotFieldnyní zpřístupňuje vlastnost sadySubtotals: TXLSPivotSubtotalsvedle stávajícího surovéhoSubtotalMask: Word. Volající mohou přiřadit např.Field.Subtotals := [xlpsSum, xlpsAverage];namísto ručního bitového balení pole SXVDgrbitSub. Dvanáct typů mezisoučtů je zpřístupněno (xlpsDefault, xlpsSum, xlpsCount/CountA, xlpsAverage, xlpsMax, xlpsMin, xlpsProduct, xlpsCountNums, xlpsStdDev, xlpsStdDevP, xlpsVar, xlpsVarP), každý mapující na jeden bit podle [MS-XLS] §2.4.279. SurováSubtotalMaskzůstává zdrojem pravdy pro round-trip — rezervované bity 12–15 jsou zachovány při čtení / zápisu. Uzavírá známý limit wave H4.3 „konfigurace SXVD.grbitSub mezisoučtu pole řádku nedostupná z API" a dokončuje follow-up pivot wave H5
Verze 2.84.1
Přidáno
- Rozšíření SXLI pro více datových polí (wave H5.3). Pokud má kontingenční tabulka více než jedno datové pole A osa datového pole odpovídá dané ose SXLI (
DataFieldAxisIsRow = True&& osa řádků, neboDataFieldAxisIsRow = False&& osa sloupců), zapisovač nyní replikuje každou kombinaci kartézského součinuDataFieldCountkrát siData = 0 .. DataFieldCount - 1, plusDataFieldCountřádků celkového součtu, takže každé datové pole získá vlastní součet. Osa, která neposkytuje hosting, zůstává nezměněna. Excel a jiné čtečky nyní vykreslují kontingenční tabulky s více datovými poli v rozvržení, které volající zamýšlel, namísto záložního přechodu na předchozí aproximaci „jedinéiData = 0na kombinaci". Kontingenční tabulky s jedním datovým polem emitují bajtově identický výstup s v2.84.0. Deltová komprese (H5.1) skládá opakované kombinace na přibližně 8 bajtů na repliku, takže rozšíření přidává minimální bajtovou zátěž. Uzavírá známý limit wave H4.3 „SXLI pro více datových polí není správně rozšířeno"
Verze 2.84.0
Změněno
- API předvolby stránkové osy kontingenční tabulky (wave H5.2). Typovaná
TXLSPivotFieldnyní nese vlastnostPageItemIndex, kterou programově sestavené kontingenční tabulky mohou nastavit pro předvolbu konkrétní položky mezipaměti ve filtru stránkové osy. VýchozíxlPageItemAll(= $7FFD) ponechá filtr na „(Vše)", takže volající, kteříPageItemIndexnikdy nepřiřadí, se chovají bajtově identicky s v2.83.2. Zapisovač SXPI ($00B6) čteField.PageItemIndexnamísto pevného zakódování $7FFD a typovaná čtečka nyní při otevření naplňujePageItemIndexz SXPI, takže volající mohou zkontrolovat uloženou volbu stránky. Uzavírá známý limit wave H4.3 „předvolba stránkového filtru volajícím nedostupná z API"
Verze 2.83.2
Změněno
- Menší záznamy SXLI kontingenční tabulky pomocí deltové komprese (wave H5.1). Zapisovač kontingenční tabulky nyní deltově komprimuje položky řádků SXLI pomocí pole spec cSic — vedoucí indexy položek mezipaměti každého řádku, které odpovídají předchozímu řádku ve stejném záznamu SXLI, se skládají do počtu sdíleného prefixu a emitují se pouze koncové indexy. Typické záznamy SXLI osy řádků (několik polí řádků × desítky položek) se zmenší o 30–60 % bez změny sémantiky. Výstup je stále rozdělován na bloky tak, aby nepřekročil 8224bajtový limit záznamu BIFF. První řádek každého záznamu SXLI vždy emituje cSic = 0 (lokální pro záznam, bez křížové reference mezi záznamy) a řádek celkového součtu není nikdy deltově komprimován
Verze 2.83.1
Opraveno
- Barvy výplně, písma a ohraničení buněk nastavené přes RGB nyní provádějí round-trip při ukládání / otevírání .xls. Zapisovač BIFF8 XFExt ($087D) emitoval pole ixfe každého záznamu pomocí pozice pole XF v paměti, ale odpovídající záznamy buněk na disku zapisují ixfe pomocí pořadí SaveIndex po prořezání. Kdykoliv bylo jakékoli XF dříve v tabulce prořezáno při ukládání (typické, když jedna buňka přejde z přechodného XF na konečné XF), každé ixfe záznamu XFExt skončilo posunuté o počet prořezaných slotů a bohatá barva spojená s každou buňkou se při načtení přesunula na sousední buňku. Zapisovač nyní rezolvuje SaveIndex pro každé XF bohatého slotu a emituje odpovídající diskové ixfe, takže barvy buněk RGB uložené HotXLS — výplň interiéru, barva písma, barvy ohraničení — přežijí cyklus uložení / načtení čistě. Záznamy XFExt pro XF, která byla zcela prořezána, jsou nyní přeskočeny namísto emitování s visícím ixfe
Verze 2.83.0
Změněno
- Položky řádků kontingenční tabulky + stav položek stránky (wave H4.3). Programově sestavené kontingenční tabulky nyní emitují SXLI ([MS-XLS] §2.4.275, $00B5) pro obě osy (řádky i sloupce), plus SXPI ($00B6) pro stránkovou osu. Tím získá zobrazení kontingenční tabulky přesnost rozvržení: nečtenáři Excelu vidí přesné pořadí zobrazení, které zapisovač zamýšlel, velké kontingenční tabulky se otevírají rychleji (Excel nemusí přepočítávat rozvržení řádků od nuly) a stránkové filtry přetrvávají s výchozím výběrem „(Vše)" na každé stránkové pole
- Výčet SXLI řádků + sloupců. Zapisovač enumeruje kartézský součin položek mezipaměti polí osy (nejvnitřnější pole se mění nejrychleji, odpovídající vnořenému rozvržení řádků Excelu) a emituje jeden řádek na kombinaci plus koncový řádek celkového součtu označený bitem fGrandTotal v poli nTypes SXLI. Každý řádek používá cSic = 0 (bez deltové komprese — jednodušší za cenu několika extra bajtů na řádek). Výstup je rozdělen do více záznamů SXLI, když počet řádků přeteče 8224bajtový limit BIFF; bezpečnostní limit 16 384 řádků zabraňuje nekontrolovanému rozšiřování na patologických vstupech
- Stav stránkové osy SXPI. Emituje se pouze tehdy, když alespoň jedno pole má Axis = xlpfaPageField. Každá položka je 10 bajtů (isxvd + iCache + ipos + objId) s iCache = $7FFD signalizujícím „(Vše)" — povrch API pro předvolbu konkrétních stránkových položek je odložen na wave H5. Kontingenční tabulky bez stránkových polí nevyemitují žádné SXPI (ABNF listu ho uvádí jako volitelné)
- Uzavírá známý limit wave H3 „SXLI / SXPI není emitováno". V kombinaci s H4.1 (formáty čísel datových polí) a H4.2 (stream SXDBB na záznam) wave H4 uzavírá všechna tři známá omezení v zapisovači kontingenční tabulky H3. Kontingenční tabulky sestavené přes
IXLSWorksheet.AddPivotTablenyní dodávají mezipaměti, které jsou soběstačné, s úplnými metadaty rozvržení