HotXLS Versionshinweise
Versionsverlauf für benutzerrelevante HotXLS-Funktionen, Korrekturen, XLS/XLSX-Erweiterungen, Exportaktualisierungen, Kompatibilitätsänderungen und Dokumentation
Letzte Veröffentlichung
- Neueste Version: 2.384.120; Veröffentlichungsdatum: 2026-10-09
Version 2.384.120
Hinzugefügt
- Das portable Classic-XLS-Erfassen unterstützt gewöhnliche Säulen-, Balken-, Linien-, Punkt-, Kreis-, Ring- und Flächendiagramme mit einer Datenreihe — mit validierten lokal gespeicherten Werten, Kern-Erscheinungsbild und vom Aufrufer deklarierten Plot-, Titel- und Legendengrenzen
- Schreibgeschützte Diagramm-Erscheinungsdeklarationen behalten Arbeitsblatt- und Diagrammidentitäten, explizite Rahmenabmessungen, effektive Legendengrößen in Punkten und native Schriftgeometrie für entkoppelte PDF-, SVG- und PNG-Ausgaben bei
- Begrenzte Helfer untersuchen einfache gespeicherte Formelreferenzen und zwischengespeicherte Diagrammzellen, ohne Formeln auszuwerten oder Sparse-Zellen zu expandieren
Behoben
- Das Classic-Diagramm-Erfassen bewahrt gebrochene gespeicherte Schrift- und Markergrößen, Quellzugehörigkeit und Lese-Leases und weist fehlerhafte Datensätze, unaufgelöste Darstellungen und erschöpfte Ressourcenbudgets vor der Ausgabe zurück
- Aktualisierungen double-typierter Diagrammeigenschaften verwerfen nicht endliche Werte, bevor verglichen oder geändert wird
- Wiederholte Initialisierung nativer portabler Zellen gibt zuvor verwaltete Strings während der Erfassung frei
Version 2.384.119
Behoben
- Die Classic-Diagramm-Inspektion prüft gespeicherten Reihentext, Trendlinien-Namen und Datenbeschriftungs-Trennzeichen, bevor typisierte Zustände übernommen werden, und gibt Teilmodelle frei, wenn fehlerhafter Text einen Fehler auslöst
- Komprimierte Unicode-Datenbeschriftungs-Trennzeichen behalten ihre vollständig gespeicherten Zeichen
Version 2.384.118
Hinzugefügt
- Die Classic-Diagramm-Inspektion legt Marker-Durchmesser in Punkten offen, einschließlich gebrochener Größen, und bewahrt dabei die ursprünglich gespeicherten Einheiten
Behoben
- Unterstützte native Classic-Diagramm-Fülltabellen dekodieren Eigenschaften auch nach komplexen Einträgen, und fehlerhafte Tabellen bewahren die zuvor gelesene typisierte Füllung
Version 2.384.117
Hinzugefügt
- Explizite Byte-Kodierungshelfer bewahren eingebettete Nullen und weisen Text zurück, den die gewählte Codepage nicht darstellen kann
Geändert
- Classic-BIFF5-Text, -Formeln und -Arbeitsmappen-Metadaten verwenden ihre deklarierte Kodierung unter Windows, Linux und macOS, mit kodierten Bytelängen und Grenzen an vollständigen Zeichen
- Unterstützter Legacy-Diagrammtext behält seine ursprüngliche Dekodierung nach Codepage-Änderungen und Kopien und wird vor dem Speichern unter einer anderen Kodierung explizit transkodiert
Behoben
- Komprimiertes BIFF8-Unicode bewahrt exakte Code-Einheiten, und Legacy-benutzerdefinierte Stile, Diagrammtexte sowie Fortsetzungen von Formel-Caches mit Doppelbyte verwenden ihre tatsächlichen Datensatz-Layouts
- Native Unicode-Textberechnung, Kriterien, Suchschlüssel, lokale Formelbindungen sowie Classic-Suche und -Ersetzung bewahren die unterstützte Unterscheidung von Groß- und Kleinschreibung
- Die Suche nach benannten Stilen löst den ersten gespeicherten Eintrag auf, ohne ihn als fehlenden Namen zu behandeln
- Wiederholtes Lesen von ZIP-Einträgen gibt zuvor gelesene Header-Metadaten frei und behält dabei das Verhalten für gleichzeitige gespeicherte und deflatierte Streams bei
Version 2.384.116
Hinzugefügt
- Lokale berechnete Pivot-Felder mit SUM werten Formeln aus Kontextsummen auf Blatt-, Zwischensummen- und Gesamtergebnisebene aus, einschließlich Abhängigkeiten, die in den angezeigten Measures nicht auftauchen
- Cache-eigene berechnete Elemente behalten native Elementidentitäten, verborgene Abhängigkeiten und die globale Lösungsreihenfolge über unterstützte ungruppierte Felder mit String-Elementen hinweg
- Unterstützte Anzeigeberechnungen für berechnete Elemente und Aggregatfilter behalten die sichtbare Elementreihenfolge, die ursprüngliche Filterreihenfolge und eindeutige Identitäten der angezeigten Measures
Behoben
- Die native Datumsprojektion in Pivot-Formeln bewahrt das Datumssystem der Arbeitsmappe über Cache-Import, Klonen und Berechnung hinweg
- Das Aufräumen fehlender Elemente im Cache bewahrt die geprüfte Zuordnung materialisierter Berichte über beide Datumssysteme der Arbeitsmappe hinweg und bei legacy-gespeicherten Berichten
- Nicht unterstützte berechnete Pivot-Metadaten und bearbeitete native Ausgaben werden abgelehnt, bevor Arbeitsblattergebnisse verändert werden
Version 2.384.115
Hinzugefügt
- Die native portable PDF-, SVG- und PNG-Ausgabe unterstützt Rich-Text, modellierte Formen, gewöhnliche Bilder, Zellbilder, boolesche Kontrollkästchen und sieben unterstützte zwischengespeicherte XLSX-Diagrammfamilien
- Unveränderliche Arbeitsmappen-Druckpläne wenden unter Linux und macOS vollständige Druckbereiche, wiederholte Zeilen- und Spaltentitel, Seitenumbrüche, Papiereinstellungen, Ränder, Ausrichtung, Zentrierung, Skalierung und Seitenreihenfolge an
- Explizite native Schriftgeometrie unterstützt Erfassung mit Generierungsprüfung, ohne den Geometrie-Provider der Arbeitsmappe zu ändern
Behoben
- Der Fit-to-page-Modus übersteht Arbeitsmappen-Roundtrips und ignoriert veraltete prozentuale Skalierung, einschließlich unbegrenzter Anpassungsmaße
- Unterstützte Diagrammtitel-Schriftarten, Linien-Darstellung sowie Marker-Füllungen und -Rahmen behalten explizite importierte und gesetzte Werte, einschließlich Schwarz
- Rich-Text bewahrt explizite false-Überschreibungen und unterscheidet bei String-Wiederverwendung und semantischen Vergleichen das effektive Run-Erscheinungsbild
Version 2.384.114
Hinzugefügt
- Native Linux-x64- und macOS-ARM64-Anwendungen laden, bearbeiten, berechnen und speichern Classic-BIFF8-Arbeitsmappen, einschließlich unterstützter Dokumenteigenschaften und RC4-Verschlüsselung
- Portabler Verbundspeicher unterstützt verschachtelte Scopes, große verkettete DIFAT-Container, Metadaten und explizite Besitzerschaft nativer Speicher-Interfaces
Behoben
- Arbeitsmappen mit 128-Bit-CryptoAPI kündigen einen kompatiblen Kryptografie-Provider an und behalten lesbare Klartext-Dokumenteigenschaften
- Native Dokumentzeitstempel verwenden die korrekte FILETIME-Epoche und bewahren UTC-Werte plattformübergreifend
- Classic-definierte Namen teilen sich eine kanonische Unicode-Identität über Scope-Suche, Formeln und erneutes Öffnen der Arbeitsmappe hinweg
- Escaped Trennzeichen in Datumsformaten und eingebettete Literale in Anführungszeichen bewahren das ausgewählte vollständige Datumsformat
Version 2.384.113
Hinzugefügt
- Bereiche leeren und Unicode-Text einfügen unterstützen begrenztes atomares Rückgängig und Wiederholen mit Schutz- und Struktur-Preflight
- Typisierte lokale Zellbilder und Checkbox-Formate unterstützen XLSX-Roundtrips, Accessibility-Metadaten und besitzerbewusste Inhaltsänderungen
- Sparse Checkbox-Formate für Zeilen und Spalten bewahren Vorrang, explizites Leeren und fehlende Zellen über Änderungen und XLSX-Roundtrips hinweg
- Erweiterte XLSB-Unterstützung umfasst Formeln und Caches, Namen, verbundene Zellen, Hyperlinks, Fensterbereiche, Tabellen und Filter
- Native Arbeitsmappen-APIs unter Linux x64 und macOS ARM64 laden, bearbeiten, berechnen und speichern unterstützte XLSX-, XLSB- und ODS-Dateien
- Die native Pivot-Ausgabe unterstützt numerische, Datums- und manuelle Gruppierung sowie alle elf benutzerdefinierten Zwischensummenfunktionen
Behoben
- Namen mit Gültigkeitsbereich verwenden durchgängige Unicode-Normalisierung und Groß-/Klein-Übereinstimmung unter Windows, Linux und macOS, ohne Akzente oder Symbole zu verwerfen
- Moderne Aggregationsformeln kompilieren mit Free Pascal unter Windows konsistent
- Das Öffnen einer anderen Arbeitsmappe ersetzt benannte Stile, statt Stildefinitionen aus der vorherigen Datei beizubehalten
- Moderne Bild- und Steuerelementinhalte überstehen Bereichs-Rückgängig und Speichern, ohne fehlende Zellen zu materialisieren
- Importierte Formel-Caches behalten die ursprünglichen Wert-Metadaten, und gewöhnliche Metadaten werden von Zellbild-Inhalten unterschieden
- Der semantische Vergleich unterscheidet lokale Bildinhalte, Accessibility-Metadaten und effektive geerbte Steuerelementformate mit begrenzter Sparse-Traversierung
Version 2.384.112
Hinzugefügt
- Testen, Extraktion und Ersetzung mit regulären Ausdrücken unterstützen UTF-16-Text, Captures, Array-Broadcasting und begrenzte Auswertung unter Windows, Linux x64 und macOS ARM64
- GROUPBY und PIVOTBY unterstützen bereichsbezogene Aggregat-Callbacks, mehrere Measures, Überschriften, Filter, hierarchische Summen, Sortierung und relative Prozentwerte
Behoben
- Skalare SUM-Argumente behalten die Umwandlung von Boolean und numerischem Text, während Bereichs- und Array-Aggregation ihre bisherigen Ignorierregeln beibehalten
- Bereichsbezogene Boolean-Literale und Aggregat-Callback-Formeln überstehen die Speicherung als Future-Function und das erneute Öffnen der Arbeitsmappe
Version 2.384.111
Hinzugefügt
- Die native lokale Pivot-Ausgabe unterstützt Basis-Element-Differenzen und -Prozentsätze, laufende Summen, Zeilen- und Spaltenprozentsätze, Index, Prozentsätze des Elternelements, kumulierte Prozentsätze und dichte Rangfolge
Behoben
- Anzeigeberechnungen behalten die native Semantik für Summen, fehlende Werte, Nulldivisoren und sortierte Elemente, einschließlich nicht additiver Durchschnitte
- Erweiterte Anzeigemodi und Basisfeld-Identitäten überstehen Speichern, erneutes Öffnen und explizite Excel-Aktualisierung
Version 2.384.110
Hinzugefügt
- Die native lokale Pivot-Ausgabe unterstützt kompakte, tabellarische und Gliederungs-Layouts, wiederholte übergeordnete Bezeichnungen, Standardplatzierung von Zwischensummen und mehrere Measures auf jeder der beiden Datenachsen
Behoben
- Einstellungen für wiederholte Bezeichnungen überstehen importierte Namespace-Aliase sowie Speichern und erneutes Öffnen, und die native Ausgabe unterscheidet fehlende Schnittpunkte von numerischer Null
- Gestaffelt geschriebene Layout-Metadaten halten Feld- und Datenbeschriftungen konsistent, wenn Excel generierte Berichte explizit aktualisiert
Version 2.384.109
Hinzugefügt
- Der Arbeitsmappenvergleich unterscheidet typisierte Werte und exakte große Ganzzahlen, unterstützt endliche numerische Toleranzen sowie optional den Vergleich gespeicherter Formel-Caches, Stile und Geometrie
- Der begrenzte semantische Vergleich deckt unterstützte Namen, Regeln, Tabellen, Zeichnungsreihenfolge, Bereiche mit Leerformat, effektive Rich-Text-Runs, lokale Pivot-Modelle, Slicer-Auswahlen und Timeline-Zustände ab
Geändert
- Der Vergleich bewahrt gepackte und fehlende Zellen, löst Ressourcenidentitäten zu effektiven Werten auf und behält das vorherige erfolgreiche Ergebnis bei, wenn Modelle nicht unterstützt werden oder Ressourcen erschöpft sind
Behoben
- Die Genauigkeitsvalidierung typisierter Datenbank-REAL-Parameter kompiliert mit Delphi XE5 und behält dabei die Prüfung auf exakte Werte, Overflow und Null bei
Version 2.384.108
Hinzugefügt
- ODS-Roundtrips bewahren gewöhnlichen Notiztext und Autoren, darstellbare Wert- und benutzerdefinierte Filter, expliziten Zellschutz und äquivalenten passwortlosen Arbeitsblattschutz
- Konvertierungsberichte behalten präzise Metadatenverluste über Arbeitsblattkopien und spätere Speicherungen hinweg, einschließlich nicht unterstützter Filterausdrücke und nicht äquivalenter Schutzmechanismen
Behoben
- Abgebrochene oder fehlgeschlagene ODS-Stream-Speicherungen bewahren Ziel-Bytes, -Größe und -Position über begrenztes Zwischenstaging in temporären Dateien
- Erfolgreiche ODS-Speicherungen ab einer Stream-Position ungleich null bewahren das Präfix und die korrekten ZIP-Eintrag-Offsets
Version 2.384.107
Hinzugefügt
- Die Inspektion gespeicherter Formeln und referenzbewusste Pivot-Aggregatformeln funktionieren in Classic-XLS-, XLSX-, schreibgeschützten und isolierten Auswertungskontexten, einschließlich verfügbarer Array-Ergebnisse und typisierter Fehler
- Pivot-Aggregatabfragen berücksichtigen modellierte sichtbare Elemente, Berichtsfilter und unterstützte Zwischensummen durch begrenzte entkoppelte Cache-Auswertung, ohne Quelldaten zu aktualisieren
Behoben
- Native Excel-XLS-Pivot-Caches behalten aufeinanderfolgende inline numerische Werte und aktuelle Cache-Gültigkeitsmetadaten bei, statt falsche Summen aus wiederholten Werten zu liefern
- Pivot-Referenzen schließen den modellierten Berichtsfilterbereich oberhalb der Haupttabellenposition ein
Version 2.384.106
Hinzugefügt
- Automatische Datenbankabfragen binden typisierte Literal- und gespeicherte Zellparameter in positionaler Reihenfolge und bewahren Unicode, leeren Text, 0, Boolean, Datumsangaben und NULLs, ohne Werte in den SQL-Text einzusetzen
- Zellparameter lesen verfügbare Formel-Caches und kompakte gespeicherte Werte ohne Neuberechnung oder Materialisierung, mit begrenzter Metadatenvalidierung und transaktionaler Ergebnisübernahme
Behoben
- Jet- und ACE-Datumsparameter bewahren DATE-, TIME- und TIMESTAMP-Werte über typisierte OLE-DATE-Bindungen, unabhängig von gebietsschemaabhängigen Zeitstempel-Projektionen
Version 2.384.105
Hinzugefügt
- Formel-Metadaten lesen die tatsächliche Identität der referenzierten Datei, unterstützte Basis-Zahlenformate, Negativfarben, Klammern bei positiven Werten, Textausrichtung, Sperrstatus, Spaltenbreite und Berechnungsmodus über XLS- und XLSX-Auswertungskontexte hinweg
- Die entkoppelte Inspektion von Basisstilen und sparse Achsen-Footprints bewahrt gespeicherte und gepackte Zellen, Arbeitsblatt-Defaults, Designfarben und die geliehene Besitzerschaft der Arbeitsmappe
Geändert
- Spaltenbreiten-Metadaten liefern die gerundete Zeichenbreite und das Standardbreite-Flag als zweispaltiges Array; nicht verfügbare Excel-Umgebungsinformationen und nicht klassifizierbare Formate melden explizite Fehler
Version 2.384.104
Hinzugefügt
- Die Importvalidierung unterstützt strenge skalare Typen, numerische und Datumsgrenzen, explizite Excel-Datumssysteme, zusammengesetzte Eindeutigkeit und spaltenübergreifende Beziehungen
- Strukturierte Verstoßmeldungen identifizieren Arbeitsblatt, Zelle, Regel, beteiligte Spalte und erste doppelte Zeile, während die Validierung gespeicherter Werte gepackte Zellen bewahrt und nicht verfügbare Formel-Caches ohne implizite Neuberechnung meldet
Version 2.384.103
Hinzugefügt
- Automatische Textabfragen aktualisieren Dateien mit fester Feldbreite anhand deklarierter Feldanfänge, unterstützter Zeichenkodierungen, typisierter Feldkonvertierung, übersprungener Felder und der Auswahl von Kopfzeile oder erster Zeile
- Die Aktualisierung mit fester Breite bewahrt literale Anführungszeichen, entfernt Feld-Auffüllung und weist ungültige Grenzen, überdimensionierte Eingaben und Abbrüche zurück, bevor Arbeitsblattänderungen angewendet werden
Version 2.384.102
Geändert
- Die Symbolprüfung klassischer Formeln scannt schneller und bewahrt dabei Funktions- und Namenstreffer, Groß-/Klein-unabhängige Deduplizierung, Gültigkeitsbereiche und die Reihenfolge der Funde
Behoben
- Windows-Arbeitsmappen-Speicherungen, direktes Package-Patching, PDF-Ausgabe und Seitenbild-Ausgabe können eine bestehende Datei, die von Metadaten mit Delete-Sharing oder Leser-Handles gehalten wird, auf unterstützten Dateisystemen atomar ersetzen, während Sperrprüfungen, Readonly-Schutz und der Legacy-Pfad auf nicht unterstützten Dateisystemen erhalten bleiben
Version 2.384.101
Hinzugefügt
- INDEX-Bereichswahl-Arrays werden mit Zeilen- und Spaltenselektoren über berechnete Arrays und unterstützte Referenzvereinigungen im selben Blatt gebroadcastet und behalten Orientierung, gewählte Werttypen und einzelne Fehler bei
- Definierte Namen und LET-Bindungen behalten die Identität unterstützter Mehrbereichsreferenzen, und skalares CHOOSE behält die gewählte Referenz für nachgelagerte Berechnungen
Behoben
- INDEX akzeptiert ein explizites Bereichsargument von 1 für berechnete Quellen und unterscheidet ungültige, fehlende, gebrochene und außerhalb des Bereichs liegende Bereichsselektoren
- Blattübergreifende Vereinigungen und Vereinigungen berechneter Arrays werden gemäß ihrem unterstützten Fehlervertrag abgelehnt, statt eine falsche Referenzidentität anzunehmen
- Ungültige Referenzen mit Qualifizierern existierender lokaler Arbeitsblätter behalten ihre Referenzfehler in direkten Formeln und definierten Namen bei, einschließlich Blattnamen in Anführungszeichen, ohne Formelstrings zu ändern oder unbekannte Qualifizierer als lokale Blätter zu interpretieren
Version 2.384.100
Hinzugefügt
- Portable Headless-PDF-, SVG- und PNG-Ausgabe unter Linux mit expliziten Schriftdateien, nativem Text-Shaping, begrenzten Ressourcen und gestaffelter exklusiver Dateiveröffentlichung
- Schreibgeschütztes Windows-Erfassen unterstützter Classic-XLS- und XLSX-Rechtecke in unveränderliche übertragbare Snapshots, einschließlich gespeicherter Formelergebnisse, bereichsbezogener Tabellen und bedingter Darstellung, physischer Abmessungen und vollständiger verbundener Zellen
Behoben
- Die portable Darstellungsvalidierung weist ungültige Enum-Darstellungen über optimierte Compiler-Builds hinweg konsistent zurück
Version 2.384.99
Hinzugefügt
- Explizite automatische Abfrage-Aktualisierung für unterstützte Windows-Text-, ADO-, ODBC- und Web-Verbindungen, mit benutzerdefinierter Provider-Registrierung und begrenzten Ergebnissen
Behoben
- Native Abfrageergebnis-Beziehungen und Spaltenidentitäten überstehen unterstütztes Speichern und erneutes Öffnen, tabellengestützt oder eigenständig
- Ungültige Provider-Verbindungsarten werden vor dem Dispatch abgelehnt, ohne Arbeitsblattergebnisse zu verändern
Version 2.384.98
Hinzugefügt
- Lokale Pivot-Timeline-Erstellung, Verbindungen gemeinsamer Ansichten, inklusive Ganztagsfilterung sowie abgesicherte Entfernung, die entweder die Auswahl löscht oder bewahrt
- Explizite native Slicer-Aktualisierung von Elementen ohne Daten über verbundene Ansichten hinweg, mit kumulativen Ressourcengrenzen, Abbruchmöglichkeit und bewahrter Auswahl- und Elementidentität
Behoben
- Die native Behandlung von Timeline-Beziehungen und Filterbesitz bewahrt unterstützte importierte Auswahlen über Materialisierung, Speichern und erneutes Öffnen hinweg
- Pivot-Slicer-Kreuzfiltereinstellungen bleiben über ihre native tabellarische Darstellung erhalten
- Die Timeline-Erkennung bewahrt die UTF-16-Dekodierung von Arbeitsmappe und verknüpften Teilen beim Open-XML-Laden
Version 2.384.97
Hinzugefügt
- Skalare und als berechnete Arrays vorliegende definierte Namen in unterstützten numerischen und zählenden Aggregatberechnungen, mit nativer Umwandlung, Abhängigkeitsverfolgung und Ressourcengrenzen
Behoben
- Numerische Aggregation propagiert typisierte Fehler aus lokalen Arbeitsblattreferenzen, leere Durchschnitte liefern Division-durch-null-Fehler, und fehlgeschlagene benannte Referenzen behalten ihre Fehler, ohne die teilweise Traversierung neu zu starten
Version 2.384.96
Hinzugefügt
- Berechnete Array-Argumente für Textverkettung sowie unterstützte Median-, Rangstatistik-, Perzentil-, Quartil-, Prozentrang-, Multi-Modus- und Kovarianzberechnungen über die Grundgesamtheit
Geändert
- Das Einsammeln von Arrays und Referenzen bewahrt native skalare Umwandlung, typisierte Fehler, ursprüngliche Kovarianz-Paarungen und Berechnungs-Ressourcengrenzen
Behoben
- Die endliche Berechnung des Medians in der Mitte vermeidet Overflow bei gleichen Vorzeichen, und exklusive Perzentile akzeptieren gültige Endpunkt- und Singleton-Ränge
Version 2.384.95
Hinzugefügt
- Transaktionale native Ausgabe kompakter Pivot-Berichte mit synchronisierten Arbeitsblattwerten, Layout-Metadaten und persistierter Zellzuordnung
- Schreibgeschützte Slicer-Elementverfügbarkeit über verbundene Ansichten hinweg unter anderen aktiven Filtern
- Explizite Bereinigung historischer Pivot-Cache-Elemente mit konfigurierbarer Aufbewahrung und koordiniertem Neuzuordnen verknüpfter Auswahlen
Geändert
- Unterstützte native Pivot-Ausgabe behält aktuelle manuelle Filter und Beschriftungen bei und weist nicht unterstützte Layouts oder bearbeitete eigene Zellen vor der Änderung zurück
Version 2.384.94
Hinzugefügt
- PivotTable-Ansichten mit gemeinsamem Cache und lokale Pivot-Slicer-Erstellung mit expliziten Arbeitsblattgrenzen
- Transaktionale Slicer-Entfernung, die ihre Einschränkung entweder aufhebt oder die Auswahl als gewöhnliche Pivot-Filter bewahrt, einschließlich Richtlinie für künftige Elemente
- Rekonstruktion numerischer, Datums- und diskreter gruppierter Caches mit stabilen Elementidentitäten
- Entkoppelte Vorschauen nativer kompakter Pivot-Layout-Metadaten mit exakten Element- und Aggregatidentitäten
Behoben
- Das erneute Öffnen einer gefüllten Arbeitsmappe ersetzt nun die zuvor vorhandenen typisierten Pivot-Caches, und gesetzte native Slicer-Verknüpfungen bleiben von Excel erkennbar
- Die Serialisierung gruppierter Caches bewahrt deklarierte native Elementbereiche sowie offizielle Gesamtergebnis- und Datenachsen-Attribute
Version 2.384.93
Hinzugefügt
- Ein validierter XLSB-Reader und -Writer für typisierte Zellwerte, grundlegende Stile, gewöhnliche Arbeitsblattansichten und Dimensionen
- Explizite Binärausgabe beim Speichern von Arbeitsmappen in Dateien und Streams, mit automatischer Erkennung binärer Eingaben und Berichten über die Konvertierungstreue
Geändert
- Die XLSB-Konvertierung staffelt vollständige Pakete vor und weist nicht unterstützte Features oder Berechnungseinstellungen vor der Ausgabe zurück, einschließlich ungeprüfter oder verlusttoleranter Speicherungen
Behoben
- Konfigurierte ZIP-Komprimierungsstufen werden vor der Deflater-Initialisierung angewendet
Version 2.384.92
Hinzugefügt
- Transaktionale Pivot-Cache-Aktualisierung und sichere Arbeitsblattmaterialisierung für unterstützte lokale Quellen mit definierten Namen und Tabellen
- Auflösung definierter Namen mit Arbeitsblatt-Gültigkeitsbereich und vom Aufrufer aufgelöste Quellgrenzen für die Cache-Aktualisierung
Behoben
- Lokale Quellidentität und der Gültigkeitsbereich definierter Namen überstehen das Verschieben und Umbenennen von Arbeitsblättern, einschließlich Namen in Anführungszeichen und Unicode-Namen
- Das Formel-XML definierter Namen lässt das optionale führende Gleichheitszeichen weg, das nur die Formelsyntax im Speicher benötigt
- Die Summenzeilen-Zugehörigkeit einer Tabelle folgt der tatsächlichen Anzahl der Summenzeilen und bewahrt alle Datenzeilen, wenn nur der UI-Hinweis für Summen vorhanden ist
Version 2.384.91
Hinzugefügt
- Berechnete Array-Eingaben und typisierte Ergebnisse für Transponierung, Matrixmultiplikation, Determinanten und Matrixinversion
- Geordnete Selektorvektoren, Duplikate und negative Indizes für Zeilen- und Spaltenauswahl
- Berechnete Suchvektoren und Array-wertige Suchanfragen, einschließlich vollständiger skalarer Such-Slices und typisierter Fallback-Werte
Geändert
- Matrixoperationen, Such-Scans, Selektor-Traversierung, Kopieren und Auffüllen beachten Grenzen für Auswertungsschritte und Arrayspeicher über Komposition hinweg
Behoben
- Text-Caches von Formeln und Array-Ergebnissen werden vor der Neuberechnung korrekt in Excel angezeigt
- Moderne Rich-Error-Caches enthalten die Arbeitsmappenversion und die Berechnungs-Feature-Deklarationen, die für die native Anzeige aus dem Cache nötig sind
- Such- und Glättungsoptionen weisen außerhalb des Bereichs liegende Werte vor numerischer Verengung zurück, während gebrochene Optionen der nativen Abschneidung folgen
- Leere TAKE-, DROP- und Flatten-Ergebnisse behalten ihre typisierten Berechnungsfehler
Version 2.384.90
Hinzugefügt
- Isolierte Pivot-Ergebnisvorschauen behalten gemeinsame Slicer-Auswahlen und Aufruferfilter bei, ohne den live berechneten Cache zu verändern
- Sichere Arbeitsblattmaterialisierung für unterstützte lokale Pivot-Quellen staffelt Ergebnisse vor, weist konfligierende Inhalte und Strukturen zurück und bewahrt vorhandene Zellobjekte, Formatierungen und Kommentare
- Die exakte Zuordnung typisierter Werte übersteht XLSX-Speichern und erneutes Öffnen und ermöglicht sicheres Ändern der Ergebnisgröße und Verschieben sowie die explizite Übernahme vorhandener skalarer Pivot-Werte
Behoben
- Das Löschen der letzten gebundenen Pivot-Slicer-Ansicht lehnt ab, bevor Zeichnung, Cache, reservierter Name oder Auswahl entfernt werden
- Das Leeren von Slicer-Ansichten prüft jeden betroffenen Cache vor der Änderung und räumt erlaubte Ansichten, Zeichnungen und ungebundene Caches gemeinsam auf
Version 2.384.89
Hinzugefügt
- INDEX akzeptiert Array-wertige Zeilen- und Spaltenselektoren über berechneten Arrays und Arbeitsblattbereichen, einschließlich gekoppelter Auswahlen und Zeilen-Spalten-Kreuzprodukten
Behoben
- Selektorergebnisse bewahren typisierte Werte und Fehler, füllen fehlende Selektorpositionen mit #N/A auf und beachten Grenzen für Berechnungsspeicher und Auswertungsschritte
- Gebrochene skalare Selektoren, die auf null abschneiden, erzeugen vollständige Zeilen- oder Spalten-Spills, während negative Selektoren #VALUE! vor dem Abschneiden zurückliefern
- Skalare Bereichsauswahl behält ihr Referenzverhalten bei, und Selektor-Spills erholen sich von Blockaden, passen ihre Größe an und berechnen nach dem Speichern und erneuten Öffnen neu
Version 2.384.88
Hinzugefügt
- Typisierte Elementinspektion, Auswahl gemeinsamer Elemente und Leeren für unterstützte importierte non-OLAP-Pivot-Slicer-Caches
- Verbundene PivotTable-Berechnungen schneiden Slicer-Auswahlen mit unabhängigen Einschränkungen auf anderen Feldern und vom Aufrufer gelieferten Datensatzfiltern
Geändert
- Auswahländerungen prüfen jede Verbindung und jedes Element vor dem Festschreiben, weisen mehrdeutige importierte Masken im selben Feld zurück und bewahren nicht unterstützte Cache-Darstellungen
- Änderungen an Slicer-Cache-Sammlungen respektieren den Schreibschutz der Arbeitsmappe, wenn sie verbundene PivotTable-Berechnungen betreffen
- Das Löschen gebundener non-OLAP-Pivot-Slicer-Caches wird atomar abgelehnt, um konsistenten Laufzeit- und gespeicherten Filterzustand zu bewahren
Behoben
- Bearbeitete Pivot-Slicer-Auswahlen und Elementmasken verbundener Ansichten werden gemeinsam gespeichert und behalten dabei importierte Namespaces und unbekannte Erweiterungen
- Unterstützte Slicer-Verbindungen folgen gespeicherten Blattidentitäten und lösen erweiterte Cache-Bezeichner unabhängig von gewöhnlichen Arbeitsmappen-Cache-Bezeichnern auf
- Importierte PivotTable-Definitionen bleiben mit ihren ursprünglichen Ansichten verknüpft, wenn Arbeitsblätter umsortiert werden
Version 2.384.87
Geändert
- Die Aktualisierung lokaler rechteckiger Pivot-Caches bewahrt bestehende Feld- und Elementidentitäten, hängt neue typisierte Elemente an und hält Filter und Auswahlen gemeinsamer Ansichten an ihren ursprünglichen Elementen gebunden, auch nach Umsortieren, Entfernen oder erneuter Aufnahme von Quellen
- Quell-Header ordnen Datenbankfelder über den Namen zu, sodass Spalten umsortiert werden können, während berechnete Felder ihre Formeln behalten und frische leere Datensatz-Platzhalter für die spätere Auswertung erhalten
- Die Aktualisierung prüft und staffelt die vollständige Quelle vor der Cache-Aktualisierung vor und weist nicht unterstützte Schemas, Quelltypen, abgeleitete Gruppierungen und neue nicht abgebildete Elemente diskreter Gruppen ohne Teiländerungen zurück
Behoben
- Pivot-Fehlerwerte behalten ihre Typen und Codes in gemeinsamen Elementen und Datensätzen über XLSX-Speichern und erneutes Öffnen hinweg
- Aktualisierte Bereiche gemeinsamer Elemente berechnen Typflags und darstellbare Grenzen neu, und XLSX-Cache-Metadaten beschreiben gemischte Werte, Datumswerte, Fehler, Boolean-Werte und Leerzellen präzise
- Die Quellaktualisierung liest fehlende Zellen, ohne Arbeitsblattzellen zu erzeugen, und vergleicht Unicode-Feldheader, ohne ihren Text zu verändern
- Gespeicherte aktualisierte PivotTable-Ansichten fügen neue Cache-Elemente vor Zwischensummenelementen ein und behalten dabei bestehende Elementreihenfolge, Ausgeblendet-Flags und importierte Layout-Erweiterungen
- Seitenauswahlen bleiben an das richtige Element gebunden, wenn die Ansichtsreihenfolge von der Cache-Reihenfolge abweicht, berechnete Felder verschieben gespeicherte Quelldatensätze nicht mehr, und Aktualisierungszeitstempel verwenden die numerische XLSX-Darstellung
Version 2.384.86
Hinzugefügt
- INDEX akzeptiert berechnete Arrays und Konstanten mit skalarer Auswahl, Auswahl ganzer Arrays und Zeilen- oder Spaltenextraktion, während Referenzverhalten für Bereichsquellen erhalten bleibt
- SORT und UNIQUE akzeptieren berechnete Arrays und Konstanten und lassen sich direkt mit FILTER, SEQUENCE, LET und anderen Array-erzeugenden Ausdrücken kombinieren
Geändert
- Zusammengesetzte Array-Ausdrücke behalten automatische XLSX-Spill-Größenanpassung, Array-Berechnung über feste Bereiche, typisierte Fehler und Neuberechnung nach Speichern und erneutem Öffnen bei
Behoben
- Array-Auswahl und -Sortierung schneiden gebrochene numerische Optionen ab, ungültiger Boolean-Optionstext liefert #VALUE!, und Operationen auf berechneten Arrays beachten Grenzen für Speicher und Auswertungsschritte
Version 2.384.85
Hinzugefügt
- XLSX-dynamische Arrays berechnen nun in automatisch angepasste Spill-Bereiche, bewahren benutzerdefinierte Blockaden mit #SPILL!, unterstützen Spill-Referenzen und explizite implizite Schnittmengen und holen nach dem erneuten Öffnen ihre zwischengespeicherte Spill-Zugehörigkeit zurück
- Der Konvertierungs-Preflight meldet bekannte Verluste des Zielformats, und geprüftes Speichern kann diese Verluste zurückweisen, bevor eine bestehende Datei oder ein Stream geschrieben wird
- Explizite Ausgabe makrofähiger Vorlagen bewahrt vorhandene VBA-Projekte in XLTM-Paketen
- Vom Aufrufer angestoßene Abfragetabellen-Aktualisierung unterstützt begrenzte Ergebnisse mit festem Schema, synchronisierte Tabellen- und Filterbereiche, Fortschritt, Abbruch und transaktionales Rollback
Geändert
- Wiederholte Berichtsbänder klonen vollständige Thread-Konversationen mit neu zugeordneten Identitäten und bewahren das Rollback, wenn ein Ziel fehlschlägt
- Benutzerdefinierte ODS-Boolean-Validierung, unterstützte Formelwert-Grenzen, Listenquellen und qualifizierte Referenzen werden mit Basiszellen-Rebasing übersetzt; nicht unterstützte Definitionen und Zellreferenzen werden gemeinsam weggelassen
Behoben
- Array-Formeln über feste Bereiche werten rohe Bereichsarithmetik elementweise aus, MAP mit mehreren Arrays akzeptiert passende Lambda-Parameter, und FILTER wertet berechnete Arrays und Masken aus
- Moderne #SPILL!- und #CALC!-Fehler behalten typisierte XLSX-Rich-Value-Metadaten und bewahren dabei nicht verwandte importierte Metadaten und Rich-Value-Buckets
- Neu erstellte XLSX-Formeln werden mit kanonischen Argumenttrennern und Future-Function-Präfixen für die Excel-Interoperabilität gespeichert; das Speichern bewahrt den Ausdruck im Speicher, und beim erneuten Öffnen wird die kanonische Formelsyntax zurückgegeben
- Unterstützte lokale Diagrammreihen aktualisieren numerische, Text-, Datums-, Fehler-, Blasen- und hierarchische Kategorie-Caches nach Änderungen und Neuberechnung
- Die native Paginierung rendert verbundene Bereiche über ihren ursprünglichen Anker, schneidet Seitenfragmente zu und unterdrückt innere Rahmen und Gitternetzlinien
Version 2.384.84
Geändert
- Die Delphi- und C++Builder-Einstiegsbeispiele enthalten nun einen praxisnahen Kundenauftrag mit typisierten Daten, Preisen, Rabatten und berechneten Summen und prüfen die gespeicherten XLS- und XLSX-Arbeitsmappen nach dem erneuten Öffnen
- Das Rechnungsbeispiel verknüpft nun eine druckbare Rechnung mit editierbaren Zahlungsbedingungen und einem Eingangsbuch und berechnet Rabatte, Steuer, Zahlungen und den offenen Betrag
- Das Arbeitsblatt-Layout-Beispiel zeigt nun das Anlegen, Aufzählen, Entfernen und Bewahren verbundener Überschriften nach dem erneuten Öffnen
- Neun weitere fokussierte API-Beispielfamilien sind in Miscellaneous gewandert, damit sich der Hauptkatalog auf vollständige Geschäftsworkflows und interaktive Tools konzentriert
Entfernt
- Die minimalen eigenständigen Beispiele für verbundene Zellen und Rich-Text sind in die Arbeitsblatt-Layout- und Dashboard-Beispiele integriert worden
Version 2.384.83
Geändert
- Der Demo-Katalog trennt nun vollständige Anwendungen und substanzielle Workflows von fokussierten API-Rezepten im Miscellaneous-Ordner jeder Plattform, mit direkter Navigation und sofort baubaren Projekten in beiden Ebenen
Entfernt
- Drei redundante Bereichs- und Arbeitsblatt-Layout-Demos wurden entfernt; ihre vollständigen Szenarien bleiben in RangeOps und SheetLayout verfügbar
Version 2.384.82
Geändert
- Die Dashboard-Galerien für Delphi und C++Builder öffnen direkt mit einer gefüllten Arbeitsmappe mit Live-Summen, gerenderten Diagrammen, editierbaren Details, Preisszenarien und Exporten des aktuellen Ergebnisses
- Die API-Tour bietet direkte Navigation zu Dashboard, Verkaufsdaten, Diagrammvorschau und API-Rezepten mit einem beliebig oft wiederholbaren Datensatz über alle zwölf Monate
- Beispiele tragen ihre benötigten Szenario-Units und Manifest-Ressourcen lokal mit, sodass sich jedes Projekt kopieren lässt, ohne ein separates gemeinsames Verzeichnis
Behoben
- Die API-Tour erzeugt ihre Verkaufsdaten, bevor sie Dashboard-Formeln einträgt, sodass ihre Live-Vorführung erfolgreich initialisiert
- Diagramme der Live-Vorführung aktualisieren ihre zwischengespeicherten Werte und Bezeichnungen nach der Neuberechnung, und wiederholte C++Builder-Galerieexporte bewahren aktuelle Änderungen, ohne generierte Berichtsblätter anzuhäufen
Version 2.384.81
Geändert
- Arbeitsblatt-Kopierbeispiele prüfen nach dem erneuten Öffnen ihrer Ausgabe unabhängige Inhalte, neu zugeordnete Formate, Formeln und eingebettete Objekte
- Beispiele für Datumssysteme, Suche, Gruppierung, Array-Formeln und Bilder prüfen ihr jeweiliges Verhalten und melden fehlgeschlagene Ausgaben über einen Exit-Code ungleich null
Behoben
- Classic-XLS-AutoFilter-Bereiche behalten ihre vollständigen Zeilen- und Spaltengrenzen nach dem Speichern und erneuten Öffnen, einschließlich kopierter Filter mit aktiven Kriterien
- Dashboard-Galerien legen referenzierte Arbeitsblätter an, bevor sie Formeln eintragen, berechnen Summen vor dem Export und erzeugen alle angeforderten Begleitformate, selbst wenn eine andere Ausgabe fehlschlägt
- Die C++Builder-Dashboard-Galerie erzeugt die dokumentierten CSV-, HTML- und RTF-Begleitdateien
- Kompilierte Berichte bewahren die gewöhnliche Fehlerberichterstattung in klassischen Win64-C++Builder-Static-Builds, wenn ein Ziel nicht ersetzt werden kann
- Interaktive API-Beispiele melden Fehler beim PDF-, HTML- und CSV-Export, statt zu behaupten, die Dateien seien geschrieben worden
- Die Feature-Vorführung vollendet ihre unterstützte Semantic-Hash-Demonstration und validiert ihre gespeicherten Arbeitsmappen, ohne nicht unterstützte moderne Drawing-Snapshots aufzurufen
Version 2.384.80
Geändert
- Der Beispielkatalog gruppiert Projekte nach Lernziel und markiert empfohlene Einstiegspunkte, formatspezifische Lektionen und kompatible Projektnamen
- Arbeitsblatt-Layout- und Bereichsverschiebungs-Beispiele teilen sich vollständige Szenarien und behalten dabei ihre bestehenden Projekt- und Ausgabenamen
- Beispiele für Speicher, erweitertes CSV, Drucken, Dokumenteigenschaften, Textfelder und Arbeitsblattschutz zeigen vollständige Workflows mit Prüfung der gespeicherten Daten und expliziter Fehlermeldung
Behoben
- Erneut geöffnete XLSX-Textfelder behalten ihre Drawing-Beziehungen beim erneuten Speichern, sodass Anmerkungen durch wiederholte Speicher- und Öffnungszyklen verfügbar bleiben, ohne doppelte XML-Namespace-Deklarationen
- Stapelkonvertierungs-Beispiele beachten Skip existing, bevor sie Quellen öffnen oder Writer aufrufen, und prüfen die Erfolgscodes der Arbeitsmappenoperationen, bevor sie den Abschluss melden
- Das Rechnungsbeispiel nimmt Zahlungsbedingungen und seinen vollständigen Titel in den druckbaren Bereich auf
- Das Page-Setup-Konsolenbeispiel startet mit gewöhnlichen Benutzerrechten, statt die Windows-Installer-Erkennung auszulösen
Version 2.384.79
Behoben
- ODS-Speicherungen mit Exportoptionen behalten das vorhandene Ziel bei, wenn die Serialisierung fehlschlägt oder der Speichervorgang abgebrochen wird, und melden Fehler beim Ersetzen des Ziels einheitlich
- ODS-Exportoptionen nutzen den normalen Speicher-Lebenszyklus, einschließlich Neuberechnungsrichtlinie, Fortschrittsabbruch, Diagnose und Schreibschutz der Arbeitsmappe für Datei- und Stream-Ausgabe
- XLSX-Stream-Speicherungen beachten die konfigurierte Neuberechnungsrichtlinie, behalten im manuellen Modus zwischengespeicherte Werte bei und aktualisieren Formeln mit ausstehender Neuberechnung auf Anforderung
- Abgeschlossene XLSX- und ODS-Speicherbenachrichtigungen verwandeln eine bereits festgeschriebene Ausgabe nicht in einen Abbruchfehler
- Initialisierung und Finalisierung eines fehlgeschlagenen Streaming-Worksheet-Patch geben die Datei-Handles der Quelle frei, sodass Aufrufer ihre temporären Quellen aufräumen und den Writer nach einem Initialisierungsfehler wiederverwenden können
Version 2.384.78
Behoben
- Bereichskopien und -klone erhalten sich überschneidende virtuelle Formatierungen und ersetzen frühere Overlay-Formatierungen nur innerhalb des Ziels, auch bei überlappenden Kopien und arbeitsmappenübergreifenden Formatierungen
- Explizite Formatierungszurücksetzungen bleiben nach dem Speichern und erneuten Öffnen von Arbeitsmappen mit Zeilen- oder Spaltenstandardformatierung wirksam
- XLSX-Zellen, die explizit die Standardformatierung der Arbeitsmappe verwenden, behalten deren benutzerdefinierte Schriftarten, Füllungen und Zahlenformate
Version 2.384.77
Behoben
- Bedingte Formatierungs- und Datenvalidierungsziele für ganze Zeilen und Spalten folgen Zeilen- und Spaltenänderungen sowie dem Klonen von Bereichen, wenn sie vollständig in der Quelle enthalten sind, mit begrenzter Zielgeometrie und erhaltenen relativen Formelankern
- Endlich wiederholte Leerzellenstile behalten beim ODS-Import ihre volle Ausdehnung im benutzten Bereich bei, und neu angelegte oder zurückgesetzte Arbeitsmappen melden die aktuelle Bibliotheksversion in den Dokumenteigenschaften
- Zellkopien ganzer Zeilen, ganzer Spalten und ganzer Arbeitsblätter behalten die Sparse-Speicherung bei, löschen ersetzte Zielinhalte, ohne dass leere Koordinaten angelegt werden, und erhalten sich überschneidende Quelldaten sowie arbeitsmappenübergreifende Formatierungen
Version 2.384.76
Behoben
- Regeln für bedingte Formatierung und Datenvalidierung wenden nun bei Suche, Löschung, bedingter Berechnung und Validierungsprüfungen konsistent absolute, umgekehrte, ganze Zeilen und Spalten sowie durch Leerzeichen getrennte Ziele an
- Fehlerhafte und außerhalb des Blattrasters liegende Zielbereiche matchen keine Zellen mehr, während gültige Bereiche derselben Regel aktiv bleiben; Statistiken der bedingten Formatierung über das gesamte Raster behalten die Sparse-Zellspeicherung bei
- ODS-Validierungsziele verwenden gültige Zellanker für ganze Zeilen und Spalten, und äquivalente, sich überlappende Ziele für bedingte Formatierung erzeugen beim erneuten Öffnen keine doppelten Regeln mehr
Version 2.384.75
Behoben
- Regeln für Zellvergleiche und Ausdrücke in ODS behalten in Excel-kompatibler Ausgabe ihre vollen Zielbereiche über ganze Zeilen, ganze Spalten und breite Bereiche; wiederholte leere Trägerzellen halten Sparse-Bereiche kompakt und erhalten sich überlappende Regeln sowie Arbeitsblatt-Metadaten
- Beim erneuten Öffnen bleiben wiederholte, formatierte Leerbereiche in ODS in ihrer Basisformatierung kompakt, und Standardregeln für bedingte Formatierung behalten Vorrang und Abdeckung auch bei Überlappungen innerhalb zusammengeführter Bereiche
Version 2.384.74
Behoben
- Bedingte Formatierung in ODS behält beim Speichern und erneuten Öffnen unterstützte Überschreibungen von Schrift, Hintergrund und Zahlenformat bei, einschließlich expliziter Zurücksetzungen; Regeln mit unterschiedlichen Hervorhebungen oder Zielbereichen bleiben getrennt
- Bedingte Formatierung in XLSX behält eingebaute und benutzerdefinierte Zahlenformate, auch Formate, die nur eine bedingte Regel verwendet; das Speichern entfernt diese benutzerdefinierten Formate nicht mehr und verweist Regeln nicht mehr auf ein anderes Format
- ODS-Prozentstile enthalten das Prozentzeichen, das andere Tabellenkalkulationen verlangen, und öffnen sich erneut, ohne dieses Zeichen zu verdoppeln
Version 2.384.73
Behoben
- Text in die Zwischenablage kopieren, Text aus der Zwischenablage lesen und Text- oder XML-Spreadsheet-Daten einfügen schlagen unter Windows 10 und 11 nicht mehr zufällig fehl. Nach jeder Zwischenablage-Änderung öffnen Explorer und der Clipboard User Service (Zwischenablagenverlauf) die Zwischenablage für einige Millisekunden, um sie zu lesen; Textoperationen versuchten, sie nur einmal zu öffnen, und konnten in diesem Moment mit „Zugriff verweigert“ scheitern
- Alle Zwischenablageoperationen verwenden nun dieselbe Strategie wie Kopieren und Einfügen im BIFF8-Format (Excel-Format): Sie versuchen rund 500 ms lang weiter, die Zwischenablage zu öffnen. Hält eine andere Anwendung die Zwischenablage länger, schlägt der Vorgang weiterhin fehl, und der vorhandene Zwischenablageinhalt bleibt unverändert
Version 2.384.72
Behoben
- Das Öffnen einer ODS-Datei liest das Zahlenformat General korrekt. Excel und LibreOffice schreiben General als Zahlenstil ohne Angabe von Dezimalstellen; das wurde als zwei feste Dezimalstellen gelesen, sodass ein Wert wie 1.5 als 1.50 erschien. Solche Zellen führen nun kein Zahlenformat mehr, wie in der Quellanwendung
- Text um eine General-Zahl bleibt erhalten, zum Beispiel
General" kg"
Version 2.384.71
Behoben
- ODS-Dateien, die Excel oder LibreOffice gespeichert hat, melden keinen benutzten Bereich mehr, der das ganze Arbeitsblatt abdeckt. Beide weisen jeder Zeile und jeder Spalte eine Größe bis Zeile 1048576 und Spalte 16384 zu; leere Zeilen mit automatischer Höhe behalten nun die Standardhöhe, und die Spaltengrößen bis zur letzten Spalte werden zur Standardspaltenbreite des Arbeitsblatts. Eine 10-zeilige Excel-Datei schrumpft beim Öffnen und erneuten Speichern von rund 2.8 MB auf wenige KB
- Von Hand gesetzte Zeilenhöhen und automatische Höhen bei Zeilen mit Inhalt (etwa Zeilen, die für umgebrochenen Text gewachsen sind), bleiben weiterhin erhalten
- Das Speichern nach ODS schreibt die Standardspaltenbreite des Arbeitsblatts (
StandardWidth) in Spalten ohne eigene Breite; bisher ging sie verloren, weil ODS keine blattweite Standardspaltenbreite kennt
Version 2.384.70
Behoben
- ODS-Dateien, die Excel oder LibreOffice gespeichert hat, öffnen wieder in Millisekunden. Beide füllen jede Zeile bis Spalte 16384 auf und hängen einen Füllblock bis Zeile 1048576 an; eine 10-zeilige Datei aus Excel brauchte früher über 5 Minuten zum Öffnen, und eine aus LibreOffice wurde gar nicht fertig
- Leere Füllzellen, die exakt so aussehen wie der Default-Zellenstil des Dokuments, werden nicht mehr in formatierte leere Zellen umgewandelt; ein 10-zeiliges Excel-Arbeitsblatt bekam früher rund 180.000 davon. Leere Zellen mit eigener Füllung, Umrandung, Schriftart, Ausrichtung, Zahlenformat oder Schutz bleiben erhalten
Version 2.384.69
Behoben
- Bedingte Formatierungen, die nach ODS gespeichert werden, erscheinen nun in Excel. Wertregeln (gleich, zwischen, größer als und so weiter) und Formelregeln werden zusätzlich als standardkonforme ODF-
style:map-Bedingungen in die Zellen geschrieben, die sie abdecken – die einzige Form, die Excel liest; früher öffnete Excel HotXLS-ODS-Dateien ohne eine dieser Regeln - LibreOffice importiert ODS-Wertregeln von HotXLS nun mit ihrem tatsächlichen Operator und ihren Grenzen; bisher machte es aus jeder einzelnen „gleich 0“
- Das Öffnen einer ODS-Datei liest bedingte Formatierungen, die als
style:map-Bedingungen gespeichert sind, so wie Excel und andere ODF-Produzenten sie schreiben. Enthält eine Datei dieselben Regeln zusätzlich in der LibreOffice-eigenen Form, wird jede Regel genau einmal gelesen - Das Öffnen einer ODS-Datei liest die LibreOffice-Schreibweisen von Wertregeln (
=5,between(1,10),!="x"); Dateien aus früheren HotXLS-Versionen öffnen sich weiterhin wie bisher
Version 2.384.68
Behoben
- Formeln, die einen Operator auf einen Mehrzellbereich oder ein Inline-Array anwenden, etwa
=SUM(A1:B1*{10,100}),=SUM((A1:B2>2)*1)oder=MAX(A1:B2-1), werden so gespeichert, wie Excel 365 sie speichert, sodass Excel dasselbe Ergebnis zeigt wie HotXLS: in XLSX als dynamische Array-Formeln für eine einzelne Zelle, in XLS als Array-Formeln mit einer Zelle. Excel öffnete sie früher mit impliziter Schnittmenge (=SUM(@A1:B1*@{10,100})) und zeigte #VALUE! oder einen falschen Wert - XLS-Array-Formeln schreiben ihre Verweise und Array-Konstanten in Array-Form, wie Excel es tut; früher wertete Excel von HotXLS geschriebene Array-Formeln mit impliziter Schnittmenge aus
- XLSX-Dateien mit dynamischen Array-Formeln (auch solche, die mit
SetDynamicArrayFormulaerzeugt wurden) öffnen in Excel; Excel lehnte vorher die gesamte Datei ab, weil die Metadaten für dynamische Arrays eine Erweiterungskennung mit abweichender Groß-/Kleinschreibung verwendeten
Version 2.384.67
Behoben
- Textvergleiche folgen in beiden Engines der Reihenfolge von Excel: Sie ignorieren die Groß-/Kleinschreibung und verwenden die Wortsortierung der Systemlocale, sodass Bindestriche und Apostrophe nur den Ausschlag geben, wenn der Text sonst gleich ist (
"a-b">"ab"ist TRUE), während andere Satzzeichen vor Ziffern und Buchstaben einsortiert werden ("a~b">"ab"und"a_b">"ab"sind FALSE). Das gilt für die Vergleichsoperatoren,>text/<text-Kriterien in COUNTIF, SUMIF, der *IFS-Familie und den Datenbankfunktionen, Array-Vergleiche, Lookups, SORT-artige Funktionen und die Sortierung von Bereichen - VLOOKUP und HLOOKUP vergleichen Text ohne Rücksicht auf die Groß-/Kleinschreibung, sodass
VLOOKUP("ABC",...)„abc“ findet, wie in Excel
Version 2.384.66
Behoben
- Formelbasierte bedingte Formatierung, die nach ODS geschrieben wird, wird nun von LibreOffice erkannt: Die Regel wird als
formula-is(...)mit ihrer Basiszelle gespeichert, in der Form, die LibreOffice selbst schreibt. Bisher las LibreOffice jede solche Regel als einfache Regel „Zellenwert gleich 0“ - Formeln der bedingten Formatierung, die nach ODS geschrieben werden, übersetzen Inline-Arrays, Vereinigungen, Verweise auf ganze Spalten und ganze Zeilen und behalten die
$-Zeichen ebenso bei wie Zellformeln (COUNTIF($A:$A,A1)>1wird zuCOUNTIF([.$A:.$A];[.A1])>1) - Das Öffnen einer ODS-Datei liest sowohl die von LibreOffice geschriebene formelbasierte bedingte Formatierung (
formula-is) als auch Dateien aus früheren HotXLS-Versionen
Version 2.384.65
Behoben
- Verweise auf ganze Spalten und ganze Zeilen (
A:A,$A:$B,1:1,$1:$2) in Formeln, die nach ODS geschrieben werden, verwenden die Referenzform von OpenFormula ([.A:.A]). Excel hat solche Zellen früher als=SUM(A:(A))mit #NAME? geöffnet oder die Formel verworfen; ODS-Dateien von HotXLS zeigen nun dieselben Formeln und Werte in Excel und LibreOffice
Version 2.384.64
Behoben
- Die Datenbankfunktionen (DSUM, DCOUNT, DCOUNTA, DAVERAGE, DGET und die übrigen) behandeln ein Textkriterium ohne Operator wie „beginnt mit“, so wie Excel:
abim Kriterienbereich trifft abc, ab und AB, und Platzhalter gelten weiterhin (a?trifft jeden Eintrag aus zwei oder mehr Zeichen, der mit a beginnt).=abund<>abvergleichen weiterhin den ganzen Eintrag
Version 2.384.63
Hinzugefügt
- Formeln können Inline-Array-Konstanten wie
{1,2;3,4}enthalten (Spalten durch Kommas getrennt, Zeilen durch Semikolons, mit Zahlen, Text, TRUE / FALSE und Fehlerwerten) sowie Referenzvereinigungen wie(A1:B2,D4), in beiden Engines, XLS wie XLSX; ihre Eingabe schlug früher mit "invalid formula syntax" fehl - Array-Konstanten werden als Arrays ausgewertet (
=SUM({1,2}*{3,4}),=ROWS({1,2,3;4,5,6}),=SUMPRODUCT(A1:A2,{1;10})), und Vereinigungen funktionieren in SUM, COUNT, AVERAGE, MIN, MAX und COUNTA, in AREAS, in ISREF und im area_num-Argument von INDEX
Behoben
- XLS-Dateien speichern Array-Konstanten so, dass Excel sie liest: Die Konstante wurde früher als Referenz geschrieben, was Excel als
=#N/Aanzeigte; XLS-Formeln, die Array-Konstanten oder Vereinigungen enthalten, werden auch mit ihrem Formeltext zurückgelesen
Version 2.384.62
Behoben
- Der Schnittmengenoperator (ein Leerzeichen zwischen zwei Referenzen) liefert die Zellen, die beide Referenzen abdecken, wie in Excel:
=SUM(A1:B2 B1:B2)ergibt 6 statt 2, Referenzen ohne gemeinsame Zelle liefern #NULL!, und eine Schnittmenge kann an Funktionen übergeben werden, die Referenzen entgegennehmen, wie ROWS, COLUMNS und INDEX. Das gilt für beide Engines, für berechnete Formeln und für Formeln, die in Zellen gespeichert sind - XLS-Dateien halten Schnittmengenformeln in Excel benutzbar: Die referenzierten Bereiche werden jetzt als Referenzen geschrieben, sodass Excel
=SUM(A1:B2 B1:B2)nicht mehr als=SUM(@A1:B2 @B1:B2)liest und #VALUE! anzeigt - Eine als einzelner Wert verwendete Schnittmenge mit mehr als einer gemeinsamen Zelle nimmt die Zelle in der Zeile oder Spalte der Formel, wie jede Referenz über mehrere Zellen
Version 2.384.61
Behoben
- SUMPRODUCT akzeptiert Array-Ausdrücke wie
(B1:B2>0)*1,--(B1:B2>0),B1:B2*C1:C2und ein einzelnes Argument, in beiden Engines, XLS wie XLSX; diese lieferten früher #N/A. Argumente unterschiedlicher Form liefern #VALUE!, ein Fehler innerhalb eines Arguments wird zurückgegeben, und Text und logische Werte zählen als 0, wie in Excel - Operatorausdrücke über Bereiche innerhalb von SUM, COUNT, AVERAGE, MIN, MAX und COUNTA werden elementweise ausgewertet, wie unter Excels dynamischen Arrays:
=SUM((B1:B2>0)*1)zählt beide Zeilen, statt nur die erste Zelle zu verwenden - TRUE zählt in der Arithmetik als 1:
=TRUE*1lieferte -1 - Elementweise Vergleiche behandeln ein leeres Element als 0, "" oder FALSE, damit es zur anderen Seite passt, und vergleichen logische Werte als logische Werte; verkettet man einen logischen Wert mit
&in einem Array, ergibt das TRUE / FALSE
Version 2.384.60
Behoben
- Suchen und Ersetzen mit Platzhaltern und Übereinstimmung der ganzen Zelle (
FindText,ReplaceText,FindTextIn,ReplaceTextInin beiden Engines) trifft die ganze Zelle so, wie Excel es tut:a*bfindet jetztabcb, das vorher abgelehnt wurde, weil die Übereinstimmung beim erstenbaufhörte - Bei Suchen und Ersetzen mit Platzhaltern macht
~das jeweils folgende Zeichen literal, und ein abschließendes~wird ignoriert, wie in Excel:a~bfindetab, unda~~bfindeta~b
Version 2.384.59
Behoben
- Erstellungs- und Änderungszeitpunkte von XLSX-Dokumenten (
Created,Modified) sowie benutzerdefinierte Eigenschaften mit Datumswerten werden jetzt korrekt gelesen, wenn der Zeitstempel Sekundenbruchteile (2026-03-15T08:30:00.123Z) oder einen Zeitzonenversatz (+08:00,-05:00) hat: Die Zeit wird in Ortszeit umgerechnet, statt unverändert als Ortszeit genommen zu werden - Nur-Datum-Stempel (
2026-07-01) werden als dieses Datum gelesen; Stempel mit einer Uhrzeit, aber ohne Zone, was das W3CDTF-Format nicht erlaubt, werden weiterhin als Ortszeit gelesen
Version 2.384.58
Behoben
- XLSX-AutoFit über
TXLSAutoFit(FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) misst jede Zelle in der Schriftart, in der sie angezeigt wird; seit 2.384.46 nahm sie die nächste Schriftart aus der Fontliste der Arbeitsmappe, sodass eine fette Überschrift in der kleinen Schrift einer anderen Zelle gemessen werden und zu schmal ausfallen konnte - AutoFit verwendet auch die Schriftart, die eine Zelle von ihrem Zeilen- oder Spaltenstil erbt
Version 2.384.57
Behoben
- „Genauigkeit wie angezeigt“ (
FullPrecision = False) rundet in der XLSX-Engine nun so, wie Excel und die XLS-Engine es tun: Prozentformate behalten zwei zusätzliche Dezimalstellen (0.1234, angezeigt als0.0%, speichert 0.123, nicht 0.1), negative Werte und Null verwenden ihren eigenen Formatabschnitt, und Hälften runden von Null weg (2.5, angezeigt als0, speichert 3, nicht 2) - Beide Engines beachten Kommas zur Tausender-Skalierung unter „Genauigkeit wie angezeigt“: 12345.678, angezeigt als
0.0,(12.3), speichert 12300, wie in Excel - Ein logisches Formelergebnis in einer Zelle mit Zahlenformat wird von der „Genauigkeit wie angezeigt“-Funktion der XLS-Engine nicht mehr in -1 umgewandelt
Version 2.384.56
Behoben
- Von HotXLS geschriebene ODS-Dateien deklarieren die Namespaces ihrer Formelpräfixe, sodass LibreOffice die Formeln auswertet, statt in jeder Formelzelle #VALUE! anzuzeigen
Version 2.384.55
Behoben
- Nach ODS geschriebene Formeln behalten ihre Bedeutung: Inline-Arrays verwenden OpenFormulas Zeilentrenner (
{1,2;3,4}wird zu{1;2|3;4}statt einer einzelnen Zeile), eine Referenzvereinigung wie(A1,B2)wird zum Operator~statt zweier Funktionsargumente, und absolute Referenzen behalten ihre$-Marker - Beim Zurücklesen einer solchen Vereinigung aus ODS wird kein zweites Klammerpaar mehr ergänzt, sodass diese Formeln einen XLSX-nach-ODS-nach-XLSX-Round-trip unverändert überstehen
Version 2.384.54
Behoben
- Kennwortgeschützte XLS-Dateien im Excel-5.0/95-Format (XOR-Obfuskierung) lassen sich jetzt in Excel öffnen. Der in der Datei gespeicherte Schlüssel wird aus dem Kennwort abgeleitet, statt zufällig zu sein, und das Obfuskierungsarray verwendet die Bit-Rotation, die Excel erwartet; vorher meldete Excel bei jeder solchen Datei ein falsches Kennwort, und mit allein korrigiertem Schlüssel meldete es die Datei als beschädigt
- XOR-obfuskierte Arbeitsmappen werden mit demselben korrigierten Array gelesen, sodass Dateien, deren Schlüssel zum Kennwort passt, so entschlüsselt werden, wie Excel sie verschlüsselt; XOR-Dateien früherer HotXLS-Versionen öffnen weiterhin
Version 2.384.53
Behoben
- Der Vergleich einer leeren Zelle mit einem logischen Wert behandelt die leere Zelle in beiden Engines, XLS wie XLSX, als FALSE, so wie Excel: Bei leerem A1 liefern
=A1=FALSEund=A1<TRUEnun TRUE und=A1=TRUEliefert FALSE. Vorher wurde die leere Zelle als 0 verglichen, was unter jedem logischen Wert rangiert
Version 2.384.52
Behoben
- COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS und die Datenbankfunktionen gleichen Textkriterien nach Excels Platzhalterregeln in beiden Engines, XLS wie XLSX, ab:
~*und~?treffen ein literales Sternchen beziehungsweise Fragezeichen, eckige Klammern sind gewöhnliche Zeichen, und ein Kriterium ohne*oder?ist ein schlichter Vergleich ohne Groß-/Kleinschreibung. Vorher wurde ein Kriterium wie"[x]"als Zeichenmenge gelesen,"~*"traf kein Sternchen, und ein fehlerhaftes Muster traf stillschweigend nichts "<>text"-Kriterien zählen Zahlen, logische Werte und leere Zellen als ungleich, und ein bloßes"<>"zählt jede nicht leere Zelle, wie in Excel; der Textvergleich unter<>ignoriert nun die Groß-/Kleinschreibung- Die Platzhaltersuche von MATCH und XLOOKUP behandelt
~als Escape für das jeweils folgende Zeichen und ignoriert ein abschließendes~, so wie Excel
Version 2.384.51
Geändert
- Schreibgeschützte Zell-Snapshots behalten Blattnamen im gemeinsamen UnicodeString-Speicher; SheetName ist nun eine lesbare und schreibbare WideString-Eigenschaft mit derselben gewöhnlichen Lese- und Zuweisungssyntax wie zuvor, aber ihre rohe Feldadresse und das bisherige Datensatzlayout werden nicht unterstützt; Aufrufer müssen gegen diese Version neu kompilieren
- Berichtsausgabe in einen leeren Ziel-Stream überspringt den unnötigen Backup-Snapshot, bewahrt aber den Rollback von Zielinhalt und -position, falls die Ausgabe fehlschlägt
- Tiefe Formel-Audits verarbeiten numerische Caches effizienter, während zwischengespeicherte Variant-Werte, Auswertungsergebnisse und gemeldete Befunde erhalten bleiben
Behoben
- XLS- und XLSX-Zwischenablage-Einfügen erfassen BIFF8-Daten und Ausweichtext gemeinsam unter einer Zwischenablage-Sperre, sodass beide Formate aus demselben Zwischenablage-Zustand stammen; lesbares BIFF8 bleibt nutzbar, wenn sein Textbegleiter nicht abgerufen werden kann, nicht verfügbarer Text allein fügt keine Zellen ein, und die bestehende Retry-Politik zum Öffnen der Zwischenablage bleibt unverändert
- Eine fehlgeschlagene Veröffentlichung von erforderlichem Text oder BIFF8 in der Zwischenablage bewahrt den ursprünglichen Win32-Fehlercode über die Aufräumung hinweg, damit Aufrufer die Fehlerdiagnostik unmittelbar nach dem Aufruf abrufen können
- Der Zwischenablage-Textleser mit einem einzigen Versuch bewahrt native Datenabruffehler über die Zwischenablage-Aufräumung hinweg, ohne sein Retry-Verhalten zu ändern
Version 2.384.50
Geändert
- Formelsymbol-Audits laufen bei dünn besetzten XLS-Arbeitsmappen schneller, während die gemeldeten Befunde und ihre Reihenfolge erhalten bleiben
Version 2.384.49
Behoben
- WorkbookAudit-Demos (Delphi und C++Builder):
AuditReport.jsonwird ohne UTF-8-Byte-Order-Mark geschrieben, damit auch strikte JSON-Parser die Datei akzeptieren; XLS-Blätter melden ihren AutoFilter-Bereich; definierte XLSX-Namen, die auf eine andere Arbeitsmappe zeigen, nennen die verknüpfte Datei statt ihres Index; Aufrufe über die Kommandozeile überschreiben die gespeicherten Einstellungen nicht mehr; ein leeres Ordnerfeld fällt auf den Programmordner statt auf das Laufwerks-Stammverzeichnis zurück; ein fehlgeschlagenes Speichern der Beispieldatei wird protokolliert, statt als erfolgreich erstellt gemeldet zu werden - ApiTour-Demos: Schlägt der Neuaufbau der Showcase-Arbeitsmappe fehl, bleibt die vorherige erhalten, sodass die Export-Schaltflächen nicht mehr abstürzen; Arbeitsmappen werden freigegeben, wenn der Aufbau eine Exception wirft; der HTML-Export protokolliert seine Fehler; das Protokoll nennt die fünf bedingten Formate, die tatsächlich angelegt werden
- ExcelGraphics-Demos: Ein nicht unterstützter Bildtyp wird gemeldet, statt ein leeres Blatt zu speichern, und der Öffnen-Dialog listet nur unterstützte Formate
- OdsExport-Demos vergleichen im Round-Trip-Check die Schriftgröße und liefern einen Exit-Code ungleich 0, wenn die Prüfung oder das Speichern fehlschlägt; die C++Builder-Demo OdsImport prüft das Ergebnis des Speicherns und legt beim Berichten keine leeren Zellen mehr an
- DataExport- und ExportWithColoring-Demos verschmälern nur die erste Spalte, wie es ihre Kommentare sagen, und die C++Builder-Export-Demos öffnen den Speichern-Dialog im Programmordner
- Die Demo-Readmes nennen die APIs und Ausgabedateien, die die Demos tatsächlich verwenden
Version 2.384.48
Behoben
- Erstellungs- und Speicherzeitpunkt eines Dokuments werden nun, wie es die Dateiformate verlangen, in UTC geschrieben und beim Lesen wieder in Ortszeit umgerechnet: XLSX
Created/Modifiedsamt benutzerdefinierten Datumseigenschaften sowie XLSCreatedDate/LastSavedDate. Vorher wurde die Ortszeit so abgelegt, als wäre sie UTC, und Excel und der Windows-Explorer zeigten die Zeitstempel um den Zeitzonenversatz verschoben an; Werte, die HotXLS selbst schreibt und liest, bleiben unverändert
Version 2.384.47
Behoben
- XLS-Dateien mit XOR-Obfuskierung (der Kennwortschutz von Arbeitsmappen aus Excel 5.0/95,
EncryptionType = xletXor): Die Schlüsselposition für jeden Datensatz folgt nun der Spezifikation des Dateiformats, genau so, wie andere Tabellenkalkulationen sie lesen und schreiben. Vorher konnte HotXLS nur seine eigenen XOR-Dateien lesen, und jeder Datensatz, dessen Länge kein Vielfaches von 16 war, wurde anderswo als Datenmüll dekodiert
Version 2.384.46
Behoben
- Der XLSX-AutoFit (
FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) misst jede Zelle in ihrer eigenen Schriftart, Schriftgröße, Fett- und Kursivformatierung statt immer in Arial 10; Text in Calibri 11, fette Überschriften und große Titel werden dadurch nicht mehr zu schmal - Der XLSX-AutoFit misst den Text so, wie er über das Zahlenformat angezeigt wird (Datum, Währung, Prozent), und nicht den rohen gespeicherten Wert
- Der XLSX-AutoFit hält angepasste Spaltenbreiten innerhalb von
MaxWidth; der Zellrand wurde bisher erst nach dem Anwenden der Grenze addiert - Der XLSX-AutoFit bemisst die Zeilen umbrochener Zellen in Spalten ohne explizite Breite gegen die Standardbreite des Blatts; vorher wurden solche Zellen einzeilig gemessen, und die Zeile wurde zu niedrig
Version 2.384.45
Behoben
- XLS-Arbeitsmappen:
ApplyAutoFilter-Kriterien wie'>=100'oder'=2.5'werden nun als Zahlenbedingungen gespeichert; bisher landeten sie als Text, den Excel textuell vergleicht, sodass der Filter jede numerische Zeile ausblendete. Ein Wert ohne Vergleichsoperator (etwa'North'oder'100') wird weiterhin als Text gespeichert, so wie Excel einen aus der Liste gewählten Eintrag ablegt Criteria1.DataTypeliefert für solche Kriterien 4 (Zahl) statt 6 (Text);Criteria1.Valueliest sich weiterhin als 100
Version 2.384.44
Behoben
INDIRECTmit einem Referenztext in A1-Notation las die Zelle eine Zeile tiefer und eine Spalte weiter rechts (INDIRECT("D1")lieferte E2), in XLS- wie in XLSX-Arbeitsmappen; R1C1-Text war schon korrekt. Eine Referenz hinter der letzten Zeile oder Spalte liefert nun#REF!
Version 2.384.43
Behoben
- XLSX-Arbeitsmappen: Formeln können nun auf das gesamte Blatt mit 1.048.576 × 16.384 Zellen verweisen. Verweise hinter Spalte IV oder Zeile 65.536 (
=XFD1,=A100000,=SUM(XFC1:XFD1),Data!C1048576) wurden bisher bei der Eingabe als unbekannte Namen abgelehnt oder zu einem Fehler ausgewertet; jetzt werden sie geparst, berechnet, beim Einfügen von Zeilen und Spalten mitverschoben und so gespeichert, wie sie geschrieben wurden - XLSX-Arbeitsmappen: Verweise auf ganze Spalten und ganze Zeilen (
A:A,1:1) decken das komplette Blatt ab, daher liefertROWS(A:A)1048576 undSUM(A:A)bezieht auch Werte unterhalb von Zeile 65.536 ein;ADDRESSliefert dreibuchstabige Spalten wie$XFD$1 - XLS-Arbeitsmappen: Verweise auf die letzte Zeile und Spalte des Blatts mit 65.536 × 256 Zellen (
=A65536,=IV1) werden akzeptiert; vorher wurden sie als unbekannte Namen abgelehnt
Version 2.384.42
Behoben
- Legacy-Units
lxRows/lxCols(aus Gründen der Quellcode-Kompatibilität beibehalten; die Workbook-Klassen verwenden sie nicht): Ein Zeilenindex über 1.048.575 löstERangeErroraus, statt auf Zeile 1 umzuspringen, der ROW-Datensatz markiert nicht mehr jeden Wechsel der Gliederungsebene als eingeklappt, und das Schreiben von COLINFO für eine Spalte ohne eigene Einstellungen verwendet die Standardwerte, statt abzustürzen
Version 2.384.41
Behoben
- Lazarus-/Free-Pascal-Builds im ANSI-String-Modus: Temporäre Dateien, deren Pfad Zeichen außerhalb der System-Codepage enthält, werden beim Aufräumen nun entfernt; vorher wurden ihre Namen verlustbehaftet gespeichert, und die Dateien blieben im Temp-Ordner zurück
Version 2.384.40
Behoben
TlxCellMMU(der gepackte Zellspeicher) löstEInvalidOperationaus, wenn eine Zelle innerhalb eines 256-Zeilen-Blocks außerhalb der Zeilenreihenfolge oder über eine vorhandene Zelle geschrieben wird, undERangeErrorbei einer negativen Position oder einer Spalte über 65.534; vorher beschädigte so ein Schreibzugriff stillschweigend die Nachbarzeile. Die eigenen Massenschreibvorgänge der Bibliothek halten die Zeilenreihenfolge bereits ein und sind davon nicht betroffen
Version 2.384.39
Geändert
- XLSX-Arbeitsmappen: Das Zuweisen von
TXLSXWorksheet.TabColorsetzt nun auchTabColorIsAutoauf False, sodass die Registerfarbe ohne zweite Zuweisung sichtbar wird, genau wie bei den Farbeigenschaften von Schriftart, Füllung und Rahmen. WirdTabColorIsAutodanach auf True gesetzt, verschwindet die Registerfarbe weiterhin
Version 2.384.38
Geändert
- XLS-Arbeitsmappen:
TXLSWorksheet.AddPivotTablebehandeltDestRowundDestColnun 1-basiert, wieCells[Row, Col], die Dokumentation und die XLSX-Engine;AddPivotTable('Data!A1:C9', 3, 1, ...)verankert die PivotTable bei A3. Code, der 0-basierte Positionen übergeben hat, muss 1 addieren, und ein Anker von 0 oder außerhalb des Blatts liefert nunnil - XLS-Arbeitsmappen: Die Positionen an
TXLSPivotTable(FirstRowbisFirstDataCol) und der Quellbereich anTXLSPivotCache(SourceFirstRowbisSourceLastCol) sind für neue und geöffnete PivotTables nun 1-basiert, sodass derselbe Code in beiden Engines dieselben Zellen liest und eine zwischen den Engines kopierte PivotTable ihre Position behält
Version 2.384.37
Behoben
- XLSX-Arbeitsmappen: Eine PivotTable unterhalb von Zeile 65.535 oder eine, die durch Einfügen von Zeilen dorthin geschoben wurde, behielt ihre tatsächliche Position; vorher wurde der Anker auf 16 Bit gekappt, und die gespeicherte PivotTable landete in den falschen Zeilen
- Die Positionseigenschaften der PivotTable (
FirstRow,FirstCol,LastRow,LastCol,FirstHeaderRow,FirstDataRow,FirstDataCol) sind nunIntegerstattWord - XLSX-Arbeitsmappen:
AddPivotTableundAddPivotTableCopyliefernnil, wenn der Anker außerhalb des Blatts liegt oder der kopierte Block über die letzte Zeile oder Spalte hinausreichen würde, statt eine PivotTable zu schreiben, die Excel ablehnt
Version 2.384.36
Behoben
- C++Builder-Demos XlsTables, XlsCondFormat12, XlsCreateChart und InteractiveFeatures schreiben ihre Textspalten als Text; die Übergabe eines
const wchar_t*anOleVariantwählte denbool-Konstruktor, sodass jede Überschrift und jede Beschriftung als TRUE ankam - Die DefinedNames-Demo listet die XLS-Namen ab Index 1 auf, statt bei Index 0 abzustürzen, WorkbookAudit zählt externe Verweise in den Namen von XLS-Arbeitsmappen mit, und FileMonitor schreibt
Monitored.xlsxstatt der falsch geschriebenen Endung.xlsxx, an der jedes Lesen eines Blattnamens scheiterte - Die Demos Pictures und OdsExport betten ein gültiges PNG ein; das Byte-Literal wurde durch die String-Konvertierung beschädigt, und die Chunk-Längen in Pictures stimmten nicht
- ApiTour wertet seinen
DEMOADD-Schritt auf dem Blatt API Tour statt auf dem aktiven Blatt Dashboard aus, wo ein Textargument den Start abbrechen konnte; die klassische C++Builder-Tour zeigt nun das Ergebnis des Schritts an - FreezePanes, QuickStart und ApiTour fixieren genau ihre Kopfzeilen und -spalten;
FreezePaneserwartet Anzahlen, nicht die erste scrollbare Zelle - Die Farben der bedingten Formate in ApiTour, CondFormatGallery, OdsExport und WorkbookAudit werden wie von der API erwartet in BGR angegeben, sodass Datenbalken und Farbskalen die vorgesehenen Farben zeigen; CondFormatGallery gibt seinen Regeln für Top-N, Duplikate und überdurchschnittliche Werte eine sichtbare Hervorhebung
- MemoryDataExport und HtmlExport melden erfolgreiche CSV-, HTML- und RTF-Exporte nicht mehr als Fehlschläge (diese Writer liefern bei Erfolg 0), und MemoryDataExport schreibt alle drei Dateien auch dann, wenn eine davon fehlschlägt
- Demos, die speichern und die Datei anschließend melden oder öffnen (QuickStart, ExcelGraphics, HotXLSInMemory, OrderCalc, PurchaseOrder und mehrere Konsolen-Demos), prüfen das Ergebnis des Speicherns, statt bei gesperrter Datei Erfolg zu verkünden
- ConversionWorkbench wertet jedes negative Writer-Ergebnis als Fehler und entfernt vorher die alte Ausgabe, sodass eine veraltete Datei keine fehlgeschlagene Konvertierung mehr verdeckt; die C++Builder-Version exportiert jedes Blatt nach HTML
- InvoiceTemplate, OrderCalc und DataExport hängen nicht mehr vom Zahlen- und Datumsformat von Windows ab: Steuerformeln, Preise und Datumsschwellen funktionieren auch auf Systemen mit Komma als Dezimaltrenner oder mit Datumsangaben, die mit dem Jahr beginnen
- Kleinere Korrekturen: Die Summen in QuickStart nutzen dunklen Text auf ihrer hellen Füllung, DateSystems zeigt die rohen Seriennummern und ein gültiges Datum der 1904-Epoche, CrossWorkbookCopy hält seine verbundenen Zellen außerhalb der Tabelle, CrossWorkbookCopyXls nutzt eine kommagetrennte Liste und ein echtes Hellblau, Hyperlinks zeigt den vorgesehenen Linktext, SheetProtection beschreibt und setzt die erlaubten Aktionen korrekt, OdsImport legt beim Scannen keine leeren Zellen mehr an, InteractiveFeatures speichert eine Arbeitsmappe ohne VBA-Payload als .xlsx, WorkbookAudit meldet verschlüsselte XLS-Dateien und deren VBA-Projekte, ChartTypes hält seine Charts frei von den Daten, die C++Builder-Demos für den Datenexport finden Demos.mdb vom Ausgabeordner der IDE aus, und FormulaFunctions prüft die erneut geöffnete Zelle und zählt Fehlschläge beim erneuten Öffnen mit
Version 2.384.35
Behoben
- Die Zuweisung einer Farbe an eine XLSX-Schriftart, Füllung, Rahmenkante oder einen Rich-Text-Run wirkt nun von allein. Diese Objekte starten mit der automatischen Farbe, und ein explizites
Color,ForegroundColoroderBackgroundColorging stillschweigend verloren, solange nicht auch das passende FlagColorIsAuto/ForegroundIsAuto/BackgroundIsAutogelöscht wurde - Die Zuweisung einer RGB-Farbe löscht außerdem eine frühere Theme- oder Indexfarbquelle, die sonst Vorrang hätte; die Zuweisung eines Theme- oder Index-Slots ab 0 löscht das Auto-Flag
- Rahmenfarben, die aus der Zwischenablage in eine XLSX-Arbeitsmappe eingefügt werden, Rahmenfarben klassischer Arbeitsmappen beim Export nach XLSX und die an
TXLSXComment.SetFontübergebene Schriftfarbe werden nun geschrieben, statt an die automatische Farbe verloren zu gehen
Version 2.384.34
Behoben
- Zwischensummen-, Gesamtsummen- und Leerelemente in der Elementliste eines Pivot-Felds werden nicht mehr als Datenelemente gelesen; beim Kopieren einer solchen PivotTable wurde bisher ein Element geschrieben, das auf den Cache-Index -1 zeigte
- Pivot-Felder aus Excel-Dateien behalten ihre Standard-Zwischensumme: Excel lässt
defaultSubtotalweg, wenn sie aktiv ist, und HotXLS wertete das fehlende Attribut als ausgeschaltet - Pivot-Cache-Felder, deren Shared Items
containsStringweglassen, werden dem Schema-Standard folgend als Textfelder gelesen statt als gemischte Felder
Version 2.384.33
Behoben
- Pivot-Tabellen, die die XLSX-Engine schreibt, verwenden die Achsenwerte des Schemas (
axisRow,axisCol,axisPage); frühere Versionen schriebenrowAxis/colAxis/pageAxis, die kein gültiges OOXML sind. HotXLS liest weiterhin Dateien mit den alten Werten - Pivot-Felder im Wertebereich sind mit
dataField="1"markiert, und Felder ohne Elemente bekommen keine leere<items>-Liste mehr, die das Schema nicht erlaubt - Ausgeblendete und eingeklappte Pivot-Elemente behalten ihren Zustand, wenn eine PivotTable kopiert oder neu aufgebaut wird, und die Elementliste jedes Felds endet mit den Zwischensummen-Elementen, die Excel für dessen Zwischensummenfunktionen erwartet
- Pivot-Cache-Felder tragen eine numerische
numFmtIdstatt des TextesGeneral
Version 2.384.32
Behoben
- Der ODS-Import wandelt Zeilen von Inline-Arrays korrekt um:
{1;2|3;4}wird zu{1,2;3,4}statt zu einer Formel, die Excel nicht parsen kann - Der ODS-Import wandelt den Vereinigungsoperator für Referenzen um:
SUM([.A1:.B2]~[.C3])wird zuSUM((A1:B2,C3))
Version 2.384.31
Behoben
- Der ODS-Import liest Zeitzellen, deren Dauer einen Datumsanteil enthält, etwa
P0Y0M0DT12H30M15S, sowie Wochendauern wieP1W, statt auf den Anzeigetext zurückzufallen - Ein
Mvor dem TrennzeichenTeiner ODS-Dauer ist ein Monat und keine Minute; Jahre und Monate ungleich null, die keine feste Länge haben, fallen nun auf den Anzeigetext zurück, statt ausP1Meine Minute zu machen
Version 2.384.30
Behoben
TGWmfEmfReadschließt die Metafile, wenn die Datei zu kurz oder beschädigt ist, statt sie bis zum Prozessende gesperrt zu haltenTGWmfEmfReadbehandelt eine Placeable-WMF, deren Header null Einheiten pro Zoll angibt, als ohne Größe, statt durch null zu teilenTGWmfEmfReadbehält inBSEWMF32-Bit-Größen und -Grenzen bei, passend zum Bildheader, den die Struktur beschreibt
Version 2.384.29
Behoben
- WMF- und EMF-Bilder ab 64 KB in klassischen XLS-Arbeitsmappen überstehen Öffnen und Speichern; ihre gespeicherte und ihre unkomprimierte Größe wurden auf 16 Bit gekappt, sodass Excel das Bild in der gespeicherten Datei nicht dekodieren konnte
- Grenzen von Metafile-Bildern außerhalb des Bereichs -32768..32767 bleiben erhalten, statt überzulaufen
Version 2.384.28
Behoben
TXMLWritererzeugt kein fehlerhaftes XML mehr, wenn Text- oder Attributwerte Steuerzeichen, ungepaarte Surrogate oder U+FFFE / U+FFFF enthalten; Zeichen, die XML 1.0 nicht darstellen kann, werden weggelassenTXMLWriterschreibt einen Wagenrücklauf in Elementtext als Zeichenreferenz, sodass der Text unverändert zurückgelesen wird, statt dass aus CR ein LF wirdTXMLWriterlöst einen Fehler aus, wenn der Ziel-Stream weniger Bytes annimmt als geschrieben, etwa bei vollem Datenträger, statt eine stillschweigend abgeschnittene Datei zu hinterlassen
Version 2.384.27
Behoben
- Beim Kopieren eines Bereichs, dessen Formeln über oder links vom kopierten Block verweisen, etwa
=B4+1, kopiert aus B5, bleibt der Verweis beim Einfügen nun eine Zeile weiter oben; vorher blieb er an die ursprüngliche Zelle gebunden, und eine Formel konnte sich selbst referenzieren - Die Excel-Daten, die HotXLS in die Zwischenablage stellt, halten die kopierten Zellen an ihrer Blattposition, sodass Anwendungen, die sie lesen, die ursprünglichen Adressen sehen
Version 2.384.26
Behoben
- Die zlib-String-Helfer (
ZCompressStr,ZDecompressStrund die In-place-Varianten) verarbeiten nun den gesamten String; bei Unicode-Strings wurde nur die erste Texthälfte komprimiert, sodass ein Round-Trip Daten verlor
Version 2.384.25
Behoben
- Hyperlinks in klassischen Arbeitsmappen, deren Anzeigetext ohne das Site-Flag markiert ist, werden korrekt gelesen, und Hyperlinks mit ungewöhnlichem Zieltyp lassen nicht mehr das gesamte Öffnen scheitern oder liefern eine verstümmelte Unteradresse
Version 2.384.24
Behoben
- Eine Exception im Änderungs-Handler des Dateimonitors stoppt den Monitor nicht mehr stillschweigend; er beobachtet weiter und meldet spätere Änderungen
Version 2.384.23
Behoben
- Theme-Farben mit einer Tönung unter -1 in einer fehlerhaften Datei werden auf Schwarz begrenzt, statt beim Export oder Drucken zufällige Farben zu erzeugen
Version 2.384.22
Behoben
- Über die API angelegte Datenverbindungen werden mit dem Attribut für die Aktualisierungsversion gespeichert, das das Dateiformat verlangt
- Eine Verbindung mit fehlendem oder doppeltem Namen oder fehlender oder doppelter ID lässt nicht mehr das Öffnen der ganzen Arbeitsmappe scheitern; der Eintrag bleibt, wie er war, und wird unverändert zurückgespeichert
Version 2.384.21
Behoben
- Eine Änderung am Quellcode eines VBA-Moduls wirkt nun in Excel: Das Projekt wird so gespeichert, dass Office den neuen Quellcode kompiliert, statt den zwischengespeicherten kompilierten Code des alten auszuführen
- Der Quellcode von VBA-Modulen wird nun in der komprimierten Form gespeichert, die das Format definiert; der letzte Block jedes Moduls wurde bisher so abgelegt, dass Office ihn als beschädigt einstuft
- Ein fehlerhafter VBA-Directory-Stream lässt das Öffnen der Arbeitsmappe nicht mehr hängen, und ein Moduleintrag ohne Stream-Informationen hinterlässt kein leeres Modul mehr im Projekt
Version 2.384.20
Behoben
- Definierte Namen, die aus einer klassischen Arbeitsmappe geladen wurden, behalten ihre verschobenen Verweise, nachdem Zeilen oder Spalten eingefügt oder gelöscht wurden und die Arbeitsmappe gespeichert wird; die Datei enthielt bisher weiterhin den ursprünglichen Verweis
Version 2.384.19
Behoben
- Wenn nur die Zeilen oder nur die Spalten eines XLSX-Blatts angepasst werden, setzt das nicht mehr die Breite jeder gemessenen Spalte beziehungsweise die Höhe jeder gemessenen Zeile ohne explizite Größe auf null
Version 2.384.18
Behoben
- AutoFilter-Kriterien in klassischen Arbeitsmappen werden so verknüpft, wie sie gesetzt wurden: UND-Bedingungen wurden als ODER gespeichert und umgekehrt, sodass Excel die falschen Zeilen zeigte
- Boolesche AutoFilter-Kriterien werden als TRUE oder FALSE gespeichert; vorher lagen sie in einer Form vor, die Excel als Fehlerwert liest
Version 2.384.17
Behoben
- Erstellungs- und Speicherdatum klassischer Arbeitsmappen stimmen nun mit Excel überein; sie wurden einen Tag zu spät geschrieben und einen Tag zu früh gelesen
- Das Datum der letzten Speicherung wird unter der dafür vorgesehenen Dokumenteigenschaft abgelegt; vorher stand es im Slot für die Seitenzahl, wo Excel und Windows es nicht als Datum anzeigten
- Die gesamte Bearbeitungszeit wird als Dauer gespeichert, sodass Excel und Windows die tatsächliche Minutenzahl statt rund 299 Jahren anzeigen; von früheren Versionen geschriebene Zeiten werden weiterhin korrekt gelesen
Version 2.384.16
Behoben
- Die Regel für eindeutige Werte in der Importprüfung vergleicht nun die Zellwerte; vorher wurde jeder Wert einer Spalte nach dem ersten als Duplikat gemeldet
- Wird für dieselbe Spalte eine zweite Regel hinzugefügt, ersetzt sie die erste sauber; die alte Regel wurde freigegeben, aber weiterhin geprüft, und das Freigeben des Prüfers löste einen Fehler wegen ungültigem Zeiger aus
- Das Prüfen eines Blatts legt für die gelesenen Leerzellen keine leeren Zellen mehr an
- Wer nur die verletzenden Zeilen behält, schreibt nicht mehr über seine Zeilentabelle hinaus, wenn eine Verletzung unterhalb des verwendeten Bereichs liegt, und die Kopfzeile wird über den Daten eingefügt, statt die erste Verletzung zu überschreiben
Version 2.384.15
Behoben
- Wird ein ZIP-Eintrag in kleinen Stücken gelesen, gehen die letzten Bytes des Eintrags nicht mehr verloren, wenn die komprimierten Daten mitten in einer wiederholten Sequenz enden; das konnte dazu führen, dass eine gültige XLSX mit einem Fehler zur Eintragsgröße scheiterte
- Das Dekomprimieren von Daten, die über 2 GB hinaus anwachsen, löst nun einen Fehler aus, statt den 64-Bit-Prozess abstürzen zu lassen
- Der Dekompressions-Stream liefert nach Erschöpfung seiner Eingabe alle verbleibenden Daten, statt vorzeitig aufzuhören
Version 2.384.14
Behoben
- Interlaced-PNG-Bilder mit 1, 2 oder 4 Bit pro Pixel schreiben nicht mehr über den Bildpuffer hinaus; das konnte beim Export oder Drucken einer Arbeitsmappe mit solchen Bildern abstürzen oder benachbarte Pixel beschädigen
- Interlaced-PNG-Bilder werden korrekt dekodiert, wenn ein Durchgang mit dem Average- oder Paeth-Filter beginnt
- 2-Bit-Graustufen-PNGs zeigen nun ihre tatsächlichen Grauwerte, und das Lesen einzelner Pixel von 2-Bit-Graustufen- und Palettenbildern liefert die richtigen Farben
- PNG-Bilder, deren komprimierte Daten überzählige Bytes am Ende haben, lassen den Decoder nicht mehr hängen, und gültige Bilder mit einem großen Bilddaten-Chunk werden nicht mehr mit einem CRC-Fehler abgelehnt
- Bilder mit ungültiger Bittiefe oder einer Chunk-Länge über das Dateiende hinaus werden sauber abgelehnt, statt abzustürzen oder Gigabytes an Speicher anzufordern
- In PNG-Bilder gespeicherte Text-Chunks werden nicht mehr abgeschnitten oder beschädigt
Version 2.384.13
Behoben
- Mit RC4 verschlüsselte klassische Arbeitsmappen verwenden für Kennwörter ab 28 Zeichen nun den richtigen Kennwort-Hash und lassen sich daher in Excel öffnen; Kennwörter ab 32 Zeichen erzeugten bisher Dateien, die nicht einmal HotXLS öffnen konnte
- RC4-Kennwörter mit bis zu 255 Zeichen werden beim Öffnen akzeptiert, und von früheren Versionen gespeicherte Dateien mit Kennwörtern von 28 bis 31 Zeichen lassen sich weiterhin öffnen
- Ein fehlerhafter RC4-CryptoAPI-Header mit überlanger Längenangabe wird als beschädigte Datei gemeldet, statt einen allgemeinen Fehler auszulösen
Version 2.384.12
Behoben
- Agile-verschlüsselte Arbeitsmappen, die SHA-256 deklarieren, werden nun korrekt entschlüsselt; die Datensegmente wurden immer mit SHA-512-Initialisierungsvektoren entschlüsselt, sodass die Arbeitsmappe selbst mit dem richtigen Kennwort nicht geöffnet werden konnte
- Agile-Dateien, bei denen Key Data und Password Key Encryptor unterschiedliche Hash-Algorithmen verwenden, werden nicht mehr fälschlich als falsches Kennwort gemeldet
- Ein Spin Count über dem Limit des Formats von 10.000.000 wird sofort abgelehnt, statt die CPU stundenlang zu beschäftigen
- Ein abgeschnittener Password Verifier liest nicht mehr über seinen Puffer hinaus, und der von
SaveAsEncryptedAgilegeschriebene Integritätsschlüssel hat nun die Länge, die das Format verlangt
Version 2.384.11
Behoben
- Mit
SaveAsEncryptedgespeicherte Arbeitsmappen lassen sich nun in Excel öffnen. Der Schlüssel der ECMA-376 Standard Encryption wurde ohne seinen letzten Schritt abgeleitet, und die Paketgröße wurde zusammen mit den Daten verschlüsselt, sodass Excel das Kennwort ablehnte; auf diese Weise von Excel 2007 verschlüsselte Arbeitsmappen lassen sich jetzt ebenfalls öffnen - Von früheren HotXLS-Versionen gespeicherte verschlüsselte Arbeitsmappen lassen sich mit dem richtigen Kennwort weiterhin öffnen
- Ein fehlerhafter Verschlüsselungs-Header mit überlanger Längenangabe löst beim Öffnen keine Access Violation mehr aus
Version 2.384.10
Behoben
- Beim Kopieren und Einfügen von Formeln zwischen Zellen sowie beim Sortieren mit mitkopierten Formeln werden absolute Verweise nicht mehr verschoben, wie in Excel:
$A$1bleibt stehen,A$1verschiebt nur seine Spalte und$A1nur seine Zeile - Funktionsnamen, die wie Zelladressen aussehen, etwa
LOG10(, werden beim Einfügen einer Formel nicht mehr als Verweise verschoben, sodass die eingefügte Formel nicht mehr zuLOG11(und#NAME?wird - Verweise mit Blattnamen, etwa
Sheet2!A1oder'My Sheet'!B3, werden beim Einfügen nun genauso verschoben wie Verweise ohne Blattnamen - Text, der mit
=oder einem Apostroph beginnt, bleibt beim Einfügen in eine klassische Arbeitsmappe Text; vorher wurde er zu einer Formel oder verlor sein erstes Zeichen
Version 2.384.9
Behoben
- Zahlenformate für verstrichene Zeit wie
[h],[mm]und[ss].00werden nun als Zeitformate erkannt, statt mit Farbnamen verwechselt zu werden; bei abgeschalteter Genauigkeit wie angezeigt (FullPrecisionaufFalse) wird eine mit[ss].00formatierte Dauer nicht mehr gerundet, als wäre sie eine einfache Zahl mit zwei Nachkommastellen, was Werte von wenigen Sekunden bisher zu null machte - Minuten-Token, die durch ein Literal von Stunde oder Sekunde getrennt sind, wie in
h:mmundmm:ss, werden bei der Analyse eines Zahlenformats nun als Minuten statt als Monate gelesen
Version 2.384.8
Behoben
- Das Kopieren von Text, HTML oder Tabellendaten in die Windows-Zwischenablage nutzt nun einen gültigen temporären Besitzer, auch in Konsolenprogrammen und Worker-Threads ohne Anwendungsfenster; die kopierten Daten bleiben verfügbar, nachdem dieser Besitzer zerstört wurde
- Eine fehlgeschlagene Veröffentlichung in der Zwischenablage gibt jeden angelegten Datenblock frei, den Windows nicht angenommen hat, einschließlich der zugehörigen Text- und HTML-Blöcke, wenn die Veröffentlichung der Tabellendaten scheitert
Version 2.384.7
Behoben
- Das Kompilieren der Bibliothek aus dem Quellcode mit RAD Studio XE5 bis RAD Studio 12 Athens schlug fehl, nachdem die Free-Pascal-Unterstützung und die Korrektur des Schalttags bei
DATEeingeflossen waren: Diese Compiler parsen die Free-Pascal-Versionsprüfung auch dann, wenn sie sie überspringen, und lehnen den numerischen Cast hinter dem SonderfallDATE(1900,2,29)ab. Beide Stellen verwenden nun Formen, die jeder unterstützte Compiler akzeptiert, sodass der gesamte RAD-Studio-Bereich wieder baut
Version 2.384.6
Behoben
- Werden in einer klassischen .xls-Arbeitsmappe Zellen kopiert, die einen Kommentar tragen, ob innerhalb der Arbeitsmappe, in eine andere Arbeitsmappe oder durch Verschieben von Zeilen und Spalten, blieb der Kommentartext erhalten, aber seine formatierten Runs fielen weg, sodass jede Kopie die gesamte Notiz in einer Schriftart zeigte; die Runs wandern nun mit dem Text mit, und über Arbeitsmappen hinweg werden ihre Schriftarten zur Ziel-Arbeitsmappe hinzugefügt
- Beim Kopieren eines ganzen Arbeitsblatts mit
Sheets.AddCopyin einer klassischen .xls-Arbeitsmappe gingen Kommentare an Zellen ohne Wert oder Formatierung verloren; diese Kommentare werden nun mitkopiert - Kommentare in .xlsx-Arbeitsmappen wurden ohne Schriftartnamen, Durchgestrichen und Farbe ihrer formatierten Runs wieder geöffnet, und gespeicherte Runs trugen nie Unterstreichung oder Hoch-/Tiefstellung; all das überlebt nun ein Speichern und Wiederöffnen, einschließlich Runs, die mit
CloneRangeToaus einer anderen Arbeitsmappe kopiert wurden
Version 2.384.5
Behoben
- Formatierte Runs in Kommentaren und Textfeldern klassischer .xls-Arbeitsmappen verlieren ihre Schriftarten beim Speichern nicht mehr. Eine Schriftart, die nur von so einem Run genutzt wurde, konnte aus der gespeicherten Schriftartliste fallen, am häufigsten, wenn HotXLS eine schon einmal gespeicherte Arbeitsmappe erneut speicherte, und der Run zeigte dann in Excel die Standardschriftart oder griff eine zwischenzeitlich hinzugefügte Schriftart auf; diese Schriftarten werden nun behalten, und die Runs werden zusammen mit dem Rest der Schriftartliste neu nummeriert
TextRuns.FontIndexbei Kommentaren und Textfeldern folgt der Schriftartnummerierung der Datei, bei der Index 4 nie verwendet wird und die fünfte Schriftart den Index 5 hat; die Palettenreservierung für indizierte Schriftfarben liest diese Indizes nun auf dieselbe Weise
Version 2.384.4
Behoben
- Die Änderung der Schriftartnummerierung in 2.384.1 war selbst der Fehler: Klassische .xls-Dateien nummerieren Schriftarten so wie Excel ([MS-XLS] §2.5.129), wobei Index 4 nie verwendet wird und die fünfte Schriftart den Index 5 hat, doch 2.384.1 schaltete auf ein schlichtes nullbasiertes Zählen um; gespeicherte Arbeitsmappen zeigten in Excel jede benutzerdefinierte Schriftart einen Platz zu früh (die erste fiel auf die Standardschriftart zurück), und in Excel erstellte Arbeitsmappen öffneten mit jeder benutzerdefinierten Schriftart einen Platz zu spät. Speichern und Öffnen folgen wieder Excels Nummerierung, verifiziert gegen Arbeitsmappen, die Excel selbst geschrieben und gelesen hat
- Rich-Text-Zellen behalten die Schriftart jedes formatierten Runs über Öffnen, Speichern und Arbeitsblattkopien in andere Arbeitsmappen hinweg, einschließlich Runs, deren Schriftart keine Zelle direkt verwendet
- Arbeitsmappen, die von 2.384.1 bis 2.384.3 mit fünf oder mehr Schriftarten gespeichert wurden, tragen die verschobene Nummerierung bereits in sich, und weder Excel noch HotXLS kann sie von gültigen Daten unterscheiden; erzeugen Sie sie aus ihrer Quelle neu, oder weisen Sie die betroffenen Schriftarten erneut zu und speichern Sie erneut
Version 2.384.3
Behoben
- Datumswerte vom 1900-01-01 bis 1900-02-28 gingen in beiden Workbook-Engines um einen Tag neben Excel, weil der Excel-Kalender 1900 einen Phantom-1900-02-29 mitzählt; Lesen und Schreiben wenden nun die dokumentierte Korrektur an,
DATE(1900,2,29)antwortet mit 1900-02-28 statt#VALUE!, und die Shared-String-Tabelle übersteht eingebettete NUL-Zeichen und Doppelbyte-Codepages über Datensatzgrenzen hinweg, ohne die Synchronisation zu verlieren - Vergleiche ketten sich von links nach rechts, so wie Excel sie auswertet, daher wird
=1<2<3nun als(1<2)<3gelesen und liefert wie Excel FALSE (TRUE geht in einem Vergleich vor jeder Zahl), während es früher als1<(2<3)gruppiert wurde und TRUE lieferte; ein leerer Operand entspricht in Vergleichen sowohl 0 als auch einer leeren Zeichenkette; Wildcard-Kriterien greifen bei „nicht gleich“ inCOUNTIFundSUMIFgenau so wie bisher bei „gleich“; der Summenbereich vonSUMIFund seinen Geschwistern wird von seiner Zelle oben links auf die Form des Kriterienbereichs umgestellt, statt geklemmt zu werden; undINDIRECTbeachtet sein zweites Argument (absoluter R1C1-Text) und weist nach der Referenz folgenden Müll ab YEARFRACmit Basis 0 wendet die NASD-Anpassungen für das Februar-Ende an, dieDAYS360bereits implementiert, sodass Zeitspannen, die das Februar-Ende berühren, korrekt zählen- Text mit dem Inhalt „endstream“ in einer Zelle kann eine PDF-Seite während der Stream-Komprimierung nicht mehr abschneiden, der Total-Pages-Token-Patch hält die Stream-Länge konsistent, wenn Komprimierung übersprungen wird, Objekt-Offsets jenseits von 32 Bit schlagen laut fehl, statt die Cross-Reference-Tabelle zu korrumpieren, und Graustufen- oder CMYK-JPEGs erhalten ihren echten Farbraum als Tag statt
/DeviceRGB - Eine Arbeitsmappe, deren Pivot-Cache-Speicher entfernt oder abgeschnitten wurde, öffnet mit den betroffenen Caches als unvollständig markiert, statt das gesamte Laden scheitern zu lassen, und sichert diese Caches erneut über das Legacy-Inline-Layout, statt einen Fehler zu werfen
- Eine Shared-String-Tabelle, deren deklarierte Zeichenkettenanzahl über dem liegt, was die Datensatzkette liefert, lässt das Öffnen nun fehlschlagen, statt übrige Zellen stillschweigend zu leeren Zeichenketten aufzulösen
Version 2.384.2
Behoben
- Die Konvertierung einer klassischen .xls-Arbeitsmappe nach .xlsx verschwieg verbundene Zellen, die in einer niedrigeren Zeile links einer früheren Verbindung lagen; der Scan verwendet seine Used-Range-Variable nicht mehr für den Verbindungsbereich
- Ein XML-Kommentar innerhalb einer Arbeitsmappen-Erweiterungsliste wurde bei jedem Speichern mit verdoppelten
<!---Markierungen erneut ausgegeben, was eine Datei erzeugte, die Excel reparieren muss; Kommentar-Knoten überstehen den Rundlauf nun Byte für Byte - Unbekannte Arbeitsblatt-Datensätze, die aus einer geöffneten .xls erfasst wurden, fielen bei jedem nachfolgenden Speichern weg, obwohl sie zur Wiedergabe vorgehalten wurden, und leakten bei jedem Öffnen Speicher; sie bleiben nun erhalten und werden wortwörtlich über den Standard-Datensatzschreiber wiedergegeben
- Definierte Namen länger als 255 Zeichen und Namenskommentare länger als 65535 Zeichen korrumpierten das NAME-Datensatz-Framing beim Speichern; beide werden nun sofort zurückgewiesen
- Ein abgebrochener Speichervorgang leakte die Arbeitsmappen- und Arbeitsblatt-Datensatzpuffer, wenn eine Verschlüsselungsabweichung mitten im Schreiben auftauchte; das Speichern gibt seine Puffer nun auf jedem Ausstiegspfad frei
- Der In-place-Patching-Schreiber löschte die Originaldatei, bevor er den Ersatz umbenannt am Platz ablegte, sodass ein fehlgeschlagenes Umbenennen die Arbeitsmappe zerstörte; der Tausch ist nun ein einzelner atomarer Replace, der bei Fehlschlag beide Dateien behält
- Zellreferenzen des Direct-Readers erzwingen die Grenzen von 16384 Spalten und 1048576 Zeilen, statt übergelaufene Koordinaten zu akzeptieren, fehlerhafte Ganzzahl-Attribute fallen auf Standards zurück, statt das gesamte Lesen abzubrechen, und Datumswerte zwischen 1900-01-01 und 1900-02-28 konvertieren in beide Richtungen mit Excels Phantom-Schalttag
- Attributwerte mit Tab, Line Feed oder Wagenrücklauf überstehen den Rundlauf unverändert, statt zu Leerzeichen zu kollabieren, und ein unterminiertes Entity in Elementtext wird nun wie im Attribut-Zweig zurückgewiesen
- Wortwörtliche Kopien von ZIP-Einträgen ab 4 GiB, die vom Kopierpfad nicht korrekt gerahmt werden können, werden nun wie beim Streaming-Schreiber abgelehnt, statt ein korruptes Archiv zu erzeugen
- Der Corpus-Runner schreibt seine Ergebnisse atomar, damit ein unterbrochener Lauf aufbewahrte Nachweise nicht zerstören kann, zeichnet Build-Timeouts auf, statt abzustürzen, und toleriert fehlerhafte Stage-Trace-Zeilen; der LibreOffice-Verifizierer schreibt seine Nachweise atomar und die Dateiersatz-Sonde sammelt die Antivirus-Produktliste wieder tatsächlich ein
Version 2.384.1
Behoben
- Jede Schrift ab der fünften wurde mit einem Datensatzindex geschrieben, der eins hinter dem Ende der Schriftliste lag, sodass Excel die Arbeitsmappe reparierte und benutzerdefinierte Schriften als Standard zurückkamen; Sichern und Öffnen verwenden nun beide den dokumentierten nullbasierten Index, sodass benutzerdefinierte Schriften einen Roundtrip überstehen und von Excel erzeugte Dateien ihre Schriften behalten, wenn sie in HotXLS geöffnet werden
- Die Auswertung von
=0^-1oder einer negativen Basis mit gebrochenem Exponenten ließ die Neuberechnung mit einer Fließkomma-Ausnahme abstürzen, statt#DIV/0!oder#NUM!zurückzugeben - Aus einer bestehenden .xls gelesene Ausdrucksregeln der bedingten Formatierung wurden als verwaister CF12-Datensatz unter dem schlichten Legacy-Header neu gesichert, den Excel verwirft; sie behalten nun die Legacy-Datensatzform und ihre Hervorhebungsformatierung
- Der Referenz-Schnittmengenoperator und die implizite Schnittmenge von skalierten
OFFSET- und Mehrzellen-INDIRECT-Ergebnissen folgten der falschen Achse oder wiesen gültige Einzeilen- und Einspaltenbereiche zurück und lieferten die falsche Zelle oder#REF! - Der Streaming-Zeilenleser meldete beim Lesen klassischer .xls-Dateien jeden zwischengespeicherten Formel-Booleschen Wert als FALSE und jeden zwischengespeicherten Fehler als
#NULL! - Große .xls-Dateien, deren Compound-File-Container die 109 header-residenten FAT-Sektoren übersteigt, ließen sich mit dem in sich geschlossenen Compound-File-Leser nicht öffnen, weil die DIFAT-Erweiterungskette nie verfolgt wurde
- Benutzerdefinierte Tabellenstile luden ihre Füll- und Schriftfarben mit vertauschten Rot- und Blaukanälen neu, sodass ein gesicherter Stil in der falschen Farbe zurückkam
- Fehlerhafte, in eine Arbeitsmappe eingebettete PNG-Bilder konnten den Prozess durch einen Out-of-bounds-Schreibzugriff beim PDF-Bildeinbetten oder einen unbegrenzten Text-Chunk-Scan abschießen; eingebettete PNGs werden nun auf Maße geprüft und fehlerhafte Chunks zurückgewiesen
- EMF-Regionen mit mehreren Rechtecken renderten als ihre Bounding Box, EMF-Bilder ohne explizite Viewport-Ausdehnung wurden falsch skaliert, und hochgestellter Text renderte unter der Grundlinie auf Canvas, Druck und Metafile-Ausgabe
- Automatisch priorisierte BIFF-Regeln der bedingten Formatierung trugen alle die Priorität 1, was Excel als Reparatur markiert; automatische Prioritäten sind nun pro Blatt eindeutig wie ihre XLSX-Pendants
- Der Rahmenstil
xlSlantDashDotwurde in der klassischen .xls-Rahmenausgabe alsxlDashDotDotgeschrieben - Ein abgeschnittener Header-Datensatz einer verschlüsselten Arbeitsmappe warf über
Openeine Ausnahme, statt den Kennwort-Fehlercode zurückzugeben, und mehrere Fehlerpfade leakten beim Parsen fehlerhafter Bild- oder Arbeitsmappendateien Speicher
Version 2.384.0
Geändert
- Klassische XLS-Pivot-Caches werden so gesichert, wie Excel sie sichert: die Datensätze jedes Caches gehen in ihren eigenen Storage-Stream, während Stream-Bezeichner, Cache-Scope und die Quelldefinition des Arbeitsblatts oder benannten Bereichs einmal in den Arbeitsmappen-Globals geschrieben werden; Caches älterer HotXLS-Versionen behalten ihr bisheriges Inline-Layout, sofern das Opt-in-Framing-Upgrade nicht aktiviert ist
- Kennwortgeschützte Arbeitsmappen verschlüsseln jeden Pivot-Cache-Stream als eigenen Datensatzstream, der frisch am Stream-Anfang startet, statt die Verschlüsselungsposition des Arbeitsmappen-Streams fortzuführen
Behoben
- Eine PivotTable konnte nach dem Sichern einer Arbeitsmappe, die aus einer Datei gelesene Caches mit im Code erzeugten Caches mischte, auf den falschen Cache zeigen; die View-zu-Cache-Referenz folgt nun der tatsächlichen Sicherungsreihenfolge
- Jedes HotXLS-Paket trug noch die Versionsressource 2.379.7, und ein Paket-Neuaufbau in C++Builder konnte die Versionsressource vollständig entfernen; alle Pakete tragen nun die aktuelle Version
Version 2.383.4
Behoben
- Tiefe Formel-Audits halten geänderte Ergebnisse für abhängige Formeln weiterhin verfügbar, selbst wenn die Änderungen innerhalb der Meldungstoleranz liegen, und ein explizites Anwenden aktualisiert diese nicht gemeldeten Ergebnisse
- Relative Toleranz wird nun für Double-Precision-Cacheergebnisse in beiden Workbook-Engines berücksichtigt, während unveränderte Ergebnisse einen doppelten Vergleich vermeiden
Version 2.383.3
Behoben
- Dateibasierte Arbeitsmappen-Sicherungen bewahren nun den native Windows-Fehler, wenn eine fertige XLSX-, XLTX- oder ODS-Ausgabe ihr Ziel nicht ersetzen kann, auch wenn Aufräumen oder ein Fortschritts-Callback den Thread-Fehlerzustand ändert
Version 2.383.2
Behoben
- Wiederholte Berichtsbereich- und Bereichskopien verwenden Suchen nach definierten Namens-Suffixen wieder, statt jede frühere Kopie neu zu durchsuchen, und bewahren dabei den ersten verfügbaren Namen, den Arbeitsblatt-Scope und die Wiederverwendung von Namen, die spätere Bearbeitungen freigegeben haben
Version 2.383.1
Behoben
- Der Wiederaufbau von Formelabhängigkeiten vermeidet das wiederholte Durchsuchen vorangehender Formelzeilen und senkt so die Kosten großer Berechnungsketten, während Array-Ausgabereferenzen, blattübergreifende Abhängigkeiten und die Lookup-Reihenfolge erhalten bleiben
Version 2.383.0
Hinzugefügt
- Makrofreie Excel-Vorlagen lassen sich über eine explizite Ausgabeformat-Auswahl als XLTX sichern, mit Dateien oder Streams und gepufferter oder gestreamter Ausgabe
- Die Vorlagenausgabe bewahrt Formeln, definierte Namen, Druckbereiche und Arbeitsblatt-Metadaten und lässt das Standardspeicherverhalten von Arbeitsmappen unverändert; Arbeitsmappen mit VBA werden abgelehnt, bevor das Ziel geschrieben wird
Version 2.382.5
Behoben
- Phonetische Einstellungen behalten den erforderlichen Standard-Schriftartindex bei, sodass Excel gespeicherte Arbeitsmappen nicht zurückweist, wenn der Index null ist
- Dynamische Druckbereichsformeln und blattqualifizierte Bereichs-Unions überstehen einen Roundtrip, ohne dass einer Funktion ein Blattpräfix hinzugefügt oder Referenzen innerhalb eines Ausdrucks abgeschnitten werden
- Generierte und beibehaltene Paketteile teilen sich eindeutige Content-Type-Deklarationen, und benutzerdefinierte Eigenschaften kollidieren nicht mehr mit intransparenten Bezeichnern von Root-Relationships
Version 2.382.4
Behoben
- Skalare Referenzen über definierte Namen verwenden den Schnittpunkt mit der aktuellen Zeile oder Spalte, während Bereichsargumente ihre vollständigen Bereiche behalten, wodurch falsche Abhängigkeitszyklen in Darlehensvorlagen vermieden werden
- Formelaritmetik mit gemischten Ganzzahlen und Gleitkommazahlen behält die Gleitkommagenauigkeit bei, statt auf vier Nachkommastellen gekürzt zu werden
- Die Neuberechnung priorisiert verfügbare Lookup-Präzedenzen, bevor deren Caches gelesen werden, wodurch veraltete Zahlungsanzahlen und ähnliche Lookup-Ergebnisse vermieden werden
Version 2.382.3
Behoben
- AGGREGATE verarbeitet nicht berechnete Fehler und verschachtelte Aggregation mit unabhängigen Auswahlkriterien, erhält Matrixberechnungen bei und gibt die ursprünglichen Fehlertypen weiter
- Beim Speichern im klassischen XLS-Format bleiben vorhandene Formel-Caches bis zur expliziten Neuberechnung erhalten, einschließlich der Wurzeln von gemeinsamen und Matrixformeln; gemeinsame Formeln übersetzen relative Referenzen für ihre Zielzellen
- Strukturierte Referenzen unterstützen Backslashes und Punkte in Tabellennamen, verschachtelte Syntax für die aktuelle Zeile und escapte Spaltennamen, ohne ähnlichen Text innerhalb von Formelzeichenketten zu ändern
- Bedingte Formatierung in XLSX behält RGB-Farben, explizite Schriftart-Flags, Unterstreichungsstile sowie Schriftartnamen, -größen und -schemata bei
- Unveränderte Diagramme behalten ihre ursprünglichen Definitionen und Anker-Offsets ungleich null bei, sodass Farben, Positionen und Größen von Datenreihen nicht verändert werden
- Beim Festlegen der Seitenränder wird keine nicht angegebene Seitenausrichtung mehr geschrieben, und klassisches XLS bewahrt fehlende importierte Seitenränder, statt Standardwerte hinzuzufügen, die die Druckplatzierung verändern würden
Version 2.382.2
Behoben
- ODS-Arbeitsmappen mit großen wiederholten Bereichen leerer Zeilen lassen sich öffnen und speichern, ohne dass jede Zeilenhöhe und der geerbte Stil leerer Zellen zu einzelnen Objekten aufgebläht wird
- Die ODS-Ausgabe erhält explizite Zeilenhöhen und kompakte wiederholte formatierte Zeilen, einschließlich Überschreibungen einzelner Zeilen und gelöschter Höhen; Zeilenhöhenbereiche überstehen auch das Kopieren von Arbeitsblättern, das Einfügen und Löschen von Zeilen, Tiling und den XLSX-Export
Version 2.382.1
Behoben
- Das Öffnen und Speichern von XLSX-Arbeitsmappen mit Spalteneinstellungen in voller Breite durchsucht die Spalten-Metadaten nicht mehr wiederholt und kopiert nicht mehr die anwachsende Spalten-XML, wodurch Roundtrip-Timeouts bei Datums- und Vorlagen-Arbeitsmappen entfallen, während die Spalteneinstellungen erhalten bleiben
- ODS-Pivot-Definitionen behalten geerbte XML-Namespace-Deklarationen bei, einschließlich Producer-Erweiterungen, sodass ihr gespeichertes XML wohlgeformt bleibt
Version 2.382.0
Behoben
- Beim Speichern einer klassischen XLS-Arbeitsmappe bleiben verschachtelte
SUBTOTAL-Zellen jetzt außen vor bei den umgebenden Zwischensummen-Ergebnissen, sodass die ursprünglichen zwischengespeicherten Summen erhalten bleiben, statt Gruppenzeilen doppelt zu zählen - XLSX-Diagramme werden ausschließlich über die Zeichnungsbeziehung geladen, auf die jedes Arbeitsblatt verweist, sodass ein nicht verknüpfter herkömmlicher Drawing-Teil ein Diagramm beim Roundtrip nicht mehr duplizieren kann
- Die Definitionen von OpenDocument-Datenpilot-Tabellen überleben das ODS-Speichern, einschließlich ihrer Quellbereiche, Felder, Zielbereiche, Schaltflächen und Producer-Erweiterungsattribute
- Die
AGGREGATE-Optionen 0-7 folgen jetzt den dokumentierten Auswahlregeln für ausgeblendete Zeilen, Fehler und verschachtelteSUBTOTAL/AGGREGATE, sowohl in der Referenz- als auch in der Matrixform der Berechnung
Version 2.381.0
Hinzugefügt
- Tabellen-Slicer (Excel 2013+):
Worksheet.Slicers.Add(Table, ColumnName)erzeugt für jede Tabellenspalte eine komplette Slicer-Ansicht — der zugrunde liegende Slicer-Cache mit dem NamenSlicer_<column>, der reservierte definierte Name#N/A, dieslicerList-Erweiterung des Arbeitsblatts und ein Markup-Kompatibilitäts-Zeichnungsanker mit Fallback-Hinweis für ältere Excel-Versionen werden allesamt automatisch mitgeschrieben, und die Ansicht lässt sich überCaption,ColumnCount,StartItem,StyleName,RowHeightundSetBoundspositionieren, beschriften und formatieren - Slicer-Roundtrip-Modell: Slicer-Ansichten und -Caches werden beim Öffnen wieder geparst (geteilte Caches werden ansichtenübergreifend wiederverwendet, löscht man die letzte Ansicht, fällt auch ihr Cache weg), unveränderte Slicer-Teile und Anker werden Byte für Byte unverändert wiedergegeben, und ein Tabellen-Cache hält seine Tabellenbindung gültig, selbst wenn das Speichern die Table-Ids arbeitsmappenweit neu nummeriert
Behoben
- Slicer-Caches früherer Versionen bezogen sich auf die Table-Id, die die Datei beim Öffnen trug; nummerierte das Speichern die Table-Ids arbeitsmappenweit neu, konnte der veraltete
tableIdExcel in den Reparaturmodus schicken. Die Bindung verfolgt die Tabelle jetzt durch die Neunummerierung hindurch
Version 2.380.0
Hinzugefügt
- Wasserfall- und Treemap-Diagramme: Die erweiterten Diagrammtypen von Excel 2016 lassen sich anlegen, speichern und wieder öffnen. Sie werden als eigene Extended-Chart-Teile serialisiert, mit eigenem Content-Type, Datenbindung an das Arbeitsblatt und einem Markup-Kompatibilitäts-Zeichnungsanker, der älteren Lesern einen Fallback-Hinweis mitgibt
- Treemap-Diagramme unterstützen hierarchische Kategorien: Jede Kategorieebene einer Datenreihe wird als eigene Ebene innerhalb der Kategorie-Dimension geschrieben und zurückgelesen, wobei Blatt- und Elternbezeichnungen erhalten bleiben
Version 2.379.4
Behoben
- Ein beschädigter oder bösartiger klassischer XLS-Container beschädigt beim Öffnen keinen Speicher mehr. Der Compound-File-Reader kopierte einen ganzen Sektor in den Mini-Stream, obwohl nur ein Teil davon dorthin gehörte, folgte der Mini-Zuordnungstabelle über das Ende dieses Streams hinaus, akzeptierte Sektorgrößen, die das Format nicht definiert, und legte die Größe seiner Zuordnungstabelle nach einer ungeprüften Anzahl fest. Sektor- und Minisektor-Ketten sind jetzt gegen Zyklen abgesichert, und ein Stream-Name, der sein Feld ohne Terminierung füllt, wird in seiner Länge begrenzt
- Ein Stildatensatz, der einen Zellformatindex außerhalb der Formattabelle angibt, schreibt nicht mehr über diesen Index. Die Referenzzähler in den Listen für gemeinsame Formate und Schlüssel prüften nur die untere Grenze, sodass ein 12-Bit-Index aus der Datei hinter das Ende des Arrays reichen konnte
- Ein mit ZIP64-Erweiterungsinformationen geschriebener lokaler Dateiheader läuft nicht mehr über seinen Puffer hinaus: Die deklarierte Headergröße berücksichtigt jetzt das 28 Byte große Extra-Feld, das der Writer anhängt. Eintragsoffsets und Streampositionen werden als 64-Bit-Werte verfolgt, ein ZIP64-Eintrag wird anhand der Länge aus seinem Extra-Feld statt anhand des Sentinel-Werts gelesen, und ein Eintrag größer als 4 GiB wird abgelehnt, statt dass sein Restwert aufgezeichnet wird
- Ein ZIP-Eintragsname, der ein Windows-Trennzeichen enthält, wird normalisiert. Ein einzelner Backslash wurde nie in einen normalen Schrägstrich umgewandelt, sodass
..\..\namedie Prüfung auf Verzeichnis-Traversal bestand, die anhand von Schrägstrichen trennt - Ein Maskenbereich ohne Obergrenze, wie
[a-, liest nicht mehr hinter das Ende der Maske, und beim Aufbau einer Maske, die mit einer Zeichenmenge beginnt, geht nicht mehr je Maske eine Zeichenmenge verloren. Beides lässt sich über COUNTIF- und SUMIF-Kriterien erreichen - Die Suche über die ganze Zelle mit Platzhalterzeichen verlangt jetzt, dass das Muster die gesamte Zelle trifft, womit es sowohl zum dokumentierten Verhalten als auch zum Vergleich ganzer Zellen ohne Platzhalterzeichen passt.
FindTextmit dem Musterabctraf zuvor auch eine Zelle, dieabcdefenthielt - „Genauigkeit wie dargestellt“ rundet Zellen nicht mehr, deren Zahlenformat keinen Ziffernplatzhalter enthält. Eine Zelle, die namentlich als
General, als Text mit@oder mit einem nur aus Literalen bestehenden Format formatiert war, wurde auf eine ganze Zahl gerundet - Die Tabelle freigegebener Zeichenfolgen meldet nicht mehr eine größere Anzahl eindeutiger Zeichenfolgen, als sie schreibt, hängt die Rich-Text-Runs einer gelöschten Zeichenfolge nicht mehr an die Zeichenfolge an, die ihren Platz wiederverwendet, und gibt keinen Fortsetzungsdatensatz mehr aus, der nichts außer seinem Optionsbyte enthält, wenn eine Zeichenfolge allein wegen ihres Formatierungsteils überläuft
- Der RTF-Import dupliziert keine Nicht-ASCII-Zeichen mehr. Auf eine
\\uN-Escape-Sequenz folgen Fallback-Zeichen in der Form\\'hh, die die Überspring-Logik nicht erkannte, sodass jedes davon zusätzlich als Text ausgegeben wurde. Übersprungene Gruppen beachten jetzt die Rohnutzdaten von\binN, und eine Tabelle, die breiter oder höher als das Arbeitsblattgitter ist, endet am Rand, statt eine Ausnahme auszulösen - Ein Zahlenverweis außerhalb des von XML definierten Zeichenbereichs wird beim Lesen zurückgewiesen, statt ein eingebettetes NUL, ein verwaistes Surrogat oder einen umgebrochenen Codepunkt zu erzeugen. Tabulator, Line Feed und Carriage Return überleben einen OPC-Roundtrip als Zeichenverweise, statt zu Leerzeichen normalisiert zu werden
- Der CSV-Import behält den
SkipRows-Wert über Analysen hinweg bei; er wurde an Ort und Stelle dekrementiert, sodass die zweite über denselben Loader gelesene Datei nichts übersprang - Ein
xl/tables/-Teil wird erkannt, wenn entschieden wird, welche Teile bewahrt werden; der Präfixvergleich war um ein Zeichen zu kurz und griff daher nie
Version 2.379.3
Behoben
- Der HTML-Import dekodiert dezimale Zeichenverweise.
éund jede andere&#NNN;-Form erzeugte ein NUL-Zeichen statt des Zeichens selbst, weil die Konvertierung ihr Ergebnis und ihre Fehlerposition in dieselbe Variable schrieb und der Erfolgscode den Wert überschrieb. Hexadezimale Verweise waren nicht betroffen; beide Formen weisen jetzt Werte außerhalb des darstellbaren Bereichs zurück, statt ein ungewolltes Zeichen auszugeben - Der HTML-Export behält beim Aufbau des Ankerziels die gesamte Unteradresse eines internen Hyperlinks. Eine Unteradresse länger als 255 Zeichen wurde abgeschnitten, sodass der erzeugte Anker nicht mehr zum Link passte
Version 2.379.2
Behoben
- Ein über
AddPictureoderImages.AddFromFileeingefügtes GIF nimmt seine Größe jetzt aus dem Logical Screen Descriptor. Jedes GIF meldete zuvor 100 mal 100 Punkte, gleichgültig welche echten Abmessungen es hatte, sodass das Bild gedehnt oder gestaucht ankam - Die BMP-Größenermittlung liest den Bitmap-Header, den die Datei tatsächlich deklariert: Ein
BITMAPCOREHEADERmit seinen 16-Bit-Abmessungen wird verstanden, statt als 32-Bit-Felder gelesen zu werden, und ein Top-down-BMP mit negativer Höhe ergibt keine negative Bildhöhe mehr - Die JPEG-Größenermittlung akzeptiert jeden SOFn-Frame-Marker statt nur Baseline, Extended Sequential und Progressive. Verlustfreie, arithmetisch codierte und hierarchische JPEGs fielen zuvor auf den 100-mal-100-Standardwert zurück
Version 2.379.1
Behoben
- WMF-Bilder werden jetzt als Vektorszenen für SVG, PDF und paginierte Ausgabe dekodiert. Seit 2.363.0 las der Dekodierer jeden Datensatz als 16-Bit-Größe gefolgt vom Funktionscode, aber ein Metadatei-Datensatz beginnt mit einer 32-Bit-Größe, sodass jede von Windows oder Office geschriebene WMF an ihrem ersten Datensatz stehen blieb und das Bild auf einen Raster-Platzhalter zurückfiel. Datensätze werden jetzt gemäß
[MS-WMF] §2.3abgegrenzt, und die Parameter für Stift, Pinsel, Schrift, Text, Form und Polygon werden an ihren angegebenen Offsets gelesen META_STRETCHDIBerwartete die DIB vor dem Zielrechteck und nahm einen 40 Byte großen Bitmap-Header an; das Rechteck geht jetzt der DIB voraus, wie das Format es vorsieht,BITMAPV4HEADER/BITMAPV5HEADERund Farbtabellen werden beim Auffinden der Pixelbits berücksichtigt, und der Datensatz liefert einen Bildbefehl beiXDest,YDestmit der GrößeDestWidthmalDestHeightMETA_EXTTEXTOUTüberspringt sein optionales Rechteck, wenn entwederETO_OPAQUEoderETO_CLIPPEDgesetzt ist, sodass Text mit deckendem Hintergrund nicht mehr am falschen Offset gelesen wird- In ein Seiten-Rendering eingebettete Metadatei-Bilder lesen ihre Pixel von dem Offset, den der Bitmap-Header angibt, statt von festen 40 Bytes, sodass ein
BITMAPV4HEADER- oderBITMAPV5HEADER-Bild nicht mehr als versetztes Farbrauschen gerendert wird
Version 2.379.0
Hinzugefügt
TGridToXLSist jetzt Teil des Free-Pascal-Laufzeitpakets, sodass sich ein Lazarus-TDBGridgenau so exportieren lässt wie unter der VCL: explizite Spalten behalten ihre Titel, Schriftarten, Farben, Ausrichtung, Breiten und Sichtbarkeit, ein Raster ohne explizite Spalten exportiert eine Spalte je Datenmengenfeld, und das Ergebnis wird über denselbenSaveAs-Aufruf als XLS, XLSX, HTML oder RTF gespeichert
Version 2.378.4
Behoben
- TEXTBEFORE und TEXTAFTER lasen ihre Argumentanzahl aus einer nie zugewiesenen lokalen Variablen, sodass die optionalen Argumente instance, match-mode, match-end und if-not-found ignoriert werden konnten oder ein gültiger Aufruf mit #VALUE! abgelehnt wurde, je nachdem, was auf dem Stapel übrig war; die Anzahl kommt jetzt aus dem Aufruf selbst
- Ein OFFSET mit geänderter Größe, also einer Höhe oder Breite ungleich 1, der in einer einzelnen Zelle ausgewertet wurde, verglich die Formelzelle mit einem Anker, der noch nicht berechnet war, sodass die implizite Schnittmenge #REF! oder die falsche Zelle liefern konnte; der verschobene Anker wird jetzt berechnet, bevor der Schnittmengentest erfolgt
Version 2.378.3
Behoben
- Unter Free Pascal löste das Abgleichen oder Ersetzen einer leeren Zeichenfolge den Fehler für reguläre Ausdrücke aus, sodass ein Berichtsausdruck wie
regexreplace(Code,"[^0-9]","")mitREPORT_EXPRESSION_INVALID_REGEXfehlschlug, wann immer das Feld leer war. Das FPC-Backend antwortet jetzt so, wieTRegExes unter Delphi tut: Ein Muster, das eine leere Zeichenfolge akzeptiert, wie^$oder.*, trifft sie und liefert seinen Ersetzungstext, während[0-9]+oder\s+keine Übereinstimmung meldet
Version 2.378.0
Hinzugefügt
- HotXLS wird jetzt mit Free Pascal 3.2.2 und Lazarus/LCL unter Windows, Win32 und Win64 gebaut. Die XLS- und XLSX-Arbeitsmappen-APIs, Formeln, Stile, der direkte Leser und Schreiber, der Datenmengen-Export und die Rendering-Helfer funktionieren alle aus FPC-Code heraus mit Delphi-Unicode-Zeichenfolgensemantik; das Thema Unterstützung für Free Pascal und Lazarus behandelt die Einrichtung der Anwendung und die Backend-Unterschiede
- Das Laufzeitpaket
Lib/FPC/HotXLSLaz.lpköffnet sich in Lazarus oder lässt sich über die Kommandozeile mitbuild-FPC-Lib.cmdje Architektur bauen, und die Lazarus-Smoke-Testsuiten unterTests/Lazarusdecken Arbeitsmappen-Roundtrips, Kompression, Verschlüsselung, COM-Streams, Grafik, Textlesen, reguläre Ausdrücke, Datenmengen-Export und Berichtsausdrücke ab - FPC-Builds verwenden mitgelieferte Pascal-Backends für ZIP, Kompressionsstreams und AES, sodass XLSX-Dateien, einschließlich passwortgeschützter, weder eine zlib-DLL noch die vorgebauten Objektdateien benötigen, die Delphi linkt; PNG behält seinen Alphakanal, EMF-Zeichnung und -Wiedergabe laufen über Windows-Metadateien, und der mehrseitige TIFF-Export nutzt die GDI+-Laufzeit
Version 2.377.2
Hinzugefügt
- Ein von HotXLS geschriebener Classic-XLS-PivotCache führt jetzt die Datensätze mit, gegen die das Format den Cache-Header definiert. Die Header-Felder für Stream-ID und Quelldatenart benannten bisher eine SXStreamID und einen SXVS, die nie geschrieben wurden, sodass kein Leser etwas daran prüfen konnte; beide Datensätze werden jetzt mitgeschrieben, und beide Header-Felder beziehen sich auf dieselben Werte, stimmen also von Konstruktion wegen überein
- Cache-Substreams führen außerdem SXDBEx mit, den Datensatz, der in jedem von Excel geschriebenen Cache auf den Cache-Header folgt. Er hält fest, wann der Cache zuletzt aufgefrischt wurde, sodass
TXLSPivotCache.RefreshedDateein Classic-XLS-Speichern und erneutes Laden jetzt so übersteht, wie es in XLSX schon der Fall war TXLSPivotCache.StreamIdundTXLSPivotCache.SourceDataTypelegen die beiden Werte offen, lesen sie aus einer Datei zurück, die sie angibt, und schreiben sie in das Datensatzpaar samt Cache-Header. Ein überAddPivotTablegebauter Cache meldet Stream 0 mit einer Arbeitsblattbereichs-Quelle
Geändert
- Das Opt-in-Rewrite der alten Cache-Rahmung (
UpgradeLegacyPivotCacheFraming) erzeugt jetzt ebenfalls diese drei Datensätze, sodass ein hochgerüsteter Cache nicht nur korrekt gerahmt, sondern genauso vollständig ist wie frisch geschriebene. Ein Cache, der bereits eine SXStreamID, einen SXVS oder ein SXDBEx mitbrachte, behält, was er mitbrachte; einer, dessen SXDBEx Formeldatensätze beansprucht, die HotXLS nicht schreibt, bleibt bei der Raw-Wiedergabe - Das Lesen bleibt unberührt: Dateien, die vor dieser Version geschrieben wurden, laden genau wie bisher, und Cachedatensätze, für die HotXLS weiter kein Modell hat — darunter das DConRef oder DConName, das einen Quellbereich benennt — werden nach wie vor Byte für Byte über den Round-Trip erhalten
Version 2.377.1
Hinzugefügt
- Eine Arbeitsmappe kann jetzt verlangen, dass ihre alten PivotCache-Substreams beim Speichern neu geschrieben werden.
TXLSWorkbook.UpgradeLegacyPivotCacheFramingist standardmäßig aus; schaltet man es ein, wird eine Classic-XLS-Datei, deren Caches von HotXLS vor v2.377.0 geschrieben wurden, mit eben diesen Caches gespeichert, die über die korrigierten SXDB-/SXFDB-/SXDBB-Writer neu ausgegeben werden — die Serie der Pivot-Cache-Fixes aus v2.376.1 bis v2.376.7 erreicht damit auch bestehende Dateien, nicht nur neue Ausgaben - Das Upgrade greift nur, wo es nachweislich nichts kostet. Ein aus einer Datei gelesener Cache wird nur dann neu ausgegeben, wenn sein kompletter Substream aus Datensätzen bestand, die HotXLS modelliert, und seine Rahmung von HotXLS selbst falsch geschrieben wurde; alles andere — jeder Cache, den Excel erzeugt hat, und jeder Cache mit einem Datensatz wie SXDBEx, den HotXLS nur als opake Bytes vorhält — gibt weiter seine eigenen Bytes wieder, auch bei eingeschalteter Option.
TXLSPivotCache.CanUpgradeFramingmeldet das Urteil für einen einzelnen Cache, undRawFramingIsLegacy/RawModelIsCompletemelden die beiden Beine, auf denen es ruht - Ein hochgerüsteter Cache wird dort geschrieben, wo sein Substream saß, statt vor die anderen zu rücken, sodass eine PivotTable-Ansicht weiterhin den Cache auflöst, den sie vor dem Speichern genannt hat
Behoben
- Ein aus einer Datei gelesener Classic-XLS-PivotCache, der mit gelöschtem Raw-Replay-Flag an den Writer übergeben wurde, erzeugte zwei Cache-Substreams — den des Modells und den der Datei. Jetzt ist es einer
Version 2.377.0
Hinzugefügt
- Classic-XLS-Arbeitsblätter unterstützen eingebettete Diagrammobjekte über
AddChartObjectmit verankertem Rahmen, gemeinsamem Diagrammbuilder und verlustfreiem Round-Trip
Behoben
- SeriesText dekodiert Zeichenketten wieder mit der richtigen Bytebreite, sodass 16-Bit-Titel und Reihenbeschriftungen nicht mehr halbiert werden
Version 2.376.7
Behoben
- Die hinter einer PivotTable stehenden Cache-Zeilen in einer Classic-XLS-Datei werden so geschrieben, wie es [MS-XLS] 2.4.276 beschreibt: ein Datensatz pro Zeile der Cachedaten, mit einem Index je Cache-Feld, ein Byte breit — oder zwei Byte für ein Feld mit mehr als 255 verschiedenen Werten. HotXLS hatte stattdessen ein eigenes Schema geschrieben, das jedes Feld in gerade so viele Bits presste, wie zum Zählen seiner Werte nötig waren, und viele Zeilen in einen Datensatz packte; dekodieren konnte das kein anderes Programm, und es widersprach auch dem Flag für mehr-als-255-Werte, das die Felddefinition bereits mitführte
- Excel kann jetzt die Werte lesen, die ein HotXLS-PivotCache vorhält, statt sie beim Öffnen der Arbeitsmappe aus dem Quellbereich neu aufbauen zu müssen — worauf bisher jede Arbeitsmappe angewiesen war, deren Quelldaten inzwischen verschoben, geändert oder gelöscht worden waren
- Cache-Zeilen werden auch wieder eingelesen. HotXLS hatte den Datensatz vorher komplett ignoriert, sodass bei einem aus einer Datei geladenen Cache jede Zeile auf den ersten Wert jedes Felds zeigte und alles, was aus diesem Cache berechnet wurde, diesen falschen Werten folgte. Das trifft auf eine von Excel geschriebene Arbeitsmappe genauso zu wie auf eine von HotXLS geschriebene
- Ein Cache-Feld ohne Werte trägt nichts zu einer Cache-Zeile bei, und ein Feld mit mehr als 255 Werten wird in der breiteren Größe gespeichert und gelesen, die das Format verlangt
- Arbeitsmappen, die von HotXLS v2.376.6 oder früher geschrieben wurden, laden weiterhin mit intakten Cache-Zeilen
Version 2.376.6
Behoben
- Der PivotCache-Header-Datensatz in einer Classic-XLS-Datei ist so aufgebaut, wie es [MS-XLS] 2.4.275 beschreibt. Die Datensatzanzahl ist dort ein Vier-Byte-Feld, HotXLS schrieb sie in zwei Bytes; jedes Feld dahinter rückte dadurch eine Position zu früh raus, und der Datensatz lief vier Bytes zu lang — die Anzahl der Cache-Felder landete in der Datensatzanzahl, das Flag-Wort auf der Stream-Kennung, und die Feldanzahl auf der Länge des Namens dessen, wer den Cache zuletzt aufgefrischt hat, wobei ein Name versprochen wurde, den der Datensatz gar nicht halten konnte
- Die Header-Flags sagen jetzt, was der Cache wirklich ist: ob seine Datensätze in der Datei liegen, ob er beim Öffnen der Arbeitsmappe aufgefrischt wird, ob das Auffrischen erlaubt ist und ob die Auffrisch-Abfrage im Hintergrund läuft. Diese vier Einstellungen erschienen bereits in der XLSX-Ausgabe und reisen jetzt auch in einer Classic-XLS-Datei mit — zusammen mit dem Namen dessen, wer den Cache zuletzt aufgefrischt hat
- Die Quelldatenart im Header wird als Arbeitsblattbereich geschrieben statt auf einem Wert stehen zu bleiben, den das Format nicht definiert, und die Feldanzahl sowie die Anzahl genutzter Datensätze tragen die realen Gesamtzahlen des Cache
- Der Auffrischer-Name wird auf die 255 Zeichen gekürzt, die der Datensatz erlaubt, und ein Cache ohne einen solchen schreibt gar keinen Namen statt eines leeren Platzhalters
- Arbeitsmappen, die von HotXLS v2.376.5 oder früher geschrieben wurden, laden weiterhin und geben weiterhin ihre Cache-Datensatzanzahl her. Alles andere war im alten Header nie gespeichert — der Writer füllte jedes Feld hinter der Datensatzanzahl mit Fixwerten, die er nie aus dem Cache las —, daher kommen Flags und Auffrischer-Name einer solchen Datei als Standardwerte zurück und nicht als wiederhergestellte Werte
Version 2.376.5
Behoben
- PivotCache-Feldnamen überstehen das Speichern und erneute Laden einer Classic-XLS-Datei. Die Namenslänge wurde an der falschen Stelle der Cache-Felddefinition gelesen — an einem Index, der immer $FFFF ist —, daher wurde der Name jedes Mal verworfen, und jedes Cache-Feld kam namenlos zurück
- Der Cache-Felddefinitions-Datensatz ist so aufgebaut, wie es [MS-XLS] 2.4.283 beschreibt: grbit, ifdbParent, ifdbBase, citmUnq, csxoper, cisxoper, catm und dann der Feldname. HotXLS hatte drei Felder geschrieben, die der Datensatz nicht hat — einen Subtyp-Elementindex, ein Zahlenformat und eine zweite Elementanzahl —, und $FFFF in Indizes abgelegt, die die Spezifikation auf die Feldanzahl des Cache begrenzt
- Das Flag-Wort des Datensatzes beschreibt jetzt das Feld, zu dem er gehört: ob das Feld Cache-Elemente mitbringt, ob darunter Zahlen, Datumsangaben oder Text sind, ob sich ein Minimum und ein Maximum berechnen lassen, ob irgendein Element kein Datum ist und ob es mehr als 255 sind. Die Elementanzahl im Datensatz passt jetzt zur Zahl der Cache-Elementdatensätze, die ihm tatsächlich folgen
- Cache-Feldnamen, länger als die 255 Zeichen, die der Datensatz erlaubt, werden auf 255 gekürzt statt in voller Länge rausgeschrieben
- Arbeitsmappen, die von HotXLS v2.376.4 oder früher geschrieben wurden, laden weiterhin mit intakten Cache-Feldnamen — der Name belegte im alten Layout dieselbe Position, also verliert nichts, was einen Namen hatte, diesen
Version 2.376.4
Behoben
- PivotTable-Caches in Classic-XLS-Dateien verwenden jetzt die Datensatznummern, die [MS-XLS] ihnen zuweist. Sieben Datensätze im Cache-Substream gingen unter der Nummer eines anderen Datensatzes raus: die Cache-Felddefinition als $00C8 (SXDBB), der Feldtyp als $00FB (SxFormat), die Elementindizes je Datensatz als $00C5 (SXDI) und die numerischen, booleschen, Fehler-, Datums- und Leer-Cachewerte als $00CE, $00CF, $00D0, $00CC und $00CB (SXDtr, SxNil, SXTbl, SXInt, SxErr). Sie heißen jetzt SXFDB $00C7, SXFDBType $01BB, SXDBB $00C8, SXNum $00C9, SxBool $00CA, SxErr $00CB, SXDtr $00CE und SxNil $00CF, sodass Excel einen von HotXLS geschriebenen Pivot-Cache lesen kann und HotXLS einen von Excel geschriebenen
- Leere Werte in einem Pivot-Cache-Feld überstehen einen Round-Trip. Der Writer gab sie zwar immer aus, aber der Reader hatte keinen Fall dafür: Beim Laden flog jede Leerzelle raus, und jeder Wert danach in diesem Feld rückte um eine Position nach unten, sodass die Elementverweise der PivotTable auf die falschen Werte zeigten
- Arbeitsmappen, die von HotXLS v2.376.3 oder früher geschrieben wurden, laden weiter mit intakten Cache-Werten. Jeder Pivot-Cache-Substream wird in der Nummerierung gelesen, in der er geschrieben wurde — entschieden anhand seines eigenen Felddefinitions-Datensatzes —, und ein aus einer bestehenden Datei gelesener Cache wird unter den Nummern zurückgeschrieben, mit denen er hereingekommen ist, sodass erneutes Öffnen und Speichern einer alten Arbeitsmappe ihre Bytes nicht stillschweigend verändert
Version 2.376.3
Behoben
- PivotTable-Ansichten in Classic-XLS-Dateien schreiben ihren SXEx-Erweiterungsdatensatz jetzt unter der Nummer, die [MS-XLS] ihm gibt: $00F1. Der Writer hatte $00C6 verwendet — das ist SXDB, der Pivot-Cache-Header-Datensatz. Excel fand die gesuchte Ansichtserweiterung nirgends, und ein Datensatz, der vorgab, ein Cache-Header zu sein, saß mitten in einem Arbeitsblatt; die Ansichtseigenschaften, die SXEx trägt, gingen also selbst nach dem Feldlayout-Fix aus v2.376.1 verloren
- Arbeitsmappen, die von HotXLS v2.376.2 oder früher geschrieben wurden, öffnen weiterhin mit intakten PivotTable-Ansichten: Innerhalb eines Arbeitsblatts wird das alte $00C6 weiter als die Ansichtserweiterung akzeptiert, für die es gedacht war, und innerhalb eines Pivot-Cache-Substreams wird $00C6 weiter als Cache-Header gelesen — nichts, was bisher lud, hört auf zu laden
Version 2.376.2
Behoben
- Standard-3-D-Diagrammblätter setzen wieder das automatische Skalierungsbit statt eines reservierten Chart3d-Bits
Version 2.376.1
Behoben
- PivotTable-Ansichten schreiben einen SXEx-Datensatz, dessen Felder dort sitzen, wo Leser sie erwarten: Der feste 24-Byte-Körper war um zwei Felder verschoben, kündigte also zwei Formatierungsdatensätze an, die nie folgten, und ließ jede Länge optionaler Zeichenfolgen auf null — was [MS-XLS] 2.4.282 verbietet, denn diese Längen müssen entweder der Absenz-Marker oder eine echte Länge von 1 bis 255 sein. Der Körper beginnt jetzt am richtigen Feld und markiert jede optionale Zeichenfolge als abwesend, sodass Excel die Ansichtseigenschaften liest statt eines verstümmelten Blocks
- Die SXEx-Datensatzlänge leitet sich aus den tatsächlich geschriebenen Bytes ab statt aus einer hartcodierten Konstanten, sodass deklarierte Größe und Payload nicht mehr so auseinanderdriften können, wie es vor v2.376.0 geschah
Version 2.376.0
Hinzugefügt
- Classic-XLS-Diagrammblätter können auf eine PivotTable-Ansicht verlinken: Ein neuer
AddChartSheet-Overload nimmt den Namen der Quell-Pivot-Ansicht und das Flag zum Ausblenden der Feldbeschriftungen entgegen, die gemäß der Chart Sheet Substream ABNF in die Datensätze SXViewLink ($0858, [MS-XLS] 2.4.316) und PivotChartBits ($0859, 2.4.196) in den Chart-Globals vor Units geschrieben werden; die Chart-Inspektion dekodiert beide Datensätze — inklusive 8-Bit- und 16-Bit-Zeichenfolgenkodierung — zurück ins typisierte Modell (Pivot-Chart-Marker, Name der Quellansicht, Beschriftungs-Flag) und den kanonischen semantischen Snapshot, während Diagramme ohne die Link-Datensätze unmarkiert bleiben
Behoben
- PivotTable-Ansichten schreiben einen korrekt dimensionierten SXEx-Datensatz: Der Emitter deklarierte einen 24-Byte-Körper, schrieb aber 26 Bytes, sodass die zwei Überzähler dort landeten, wo der nächste Datensatzheader erwartet wurde, und jeder Datensatz hinter der Ansicht — inklusive des Arbeitsblatt-EOF und jedes daran hängenden Diagrammblatt-Substreams — falsch geparst wurde; Arbeitsmappen, die eine PivotTable mit einem Diagrammblatt kombinieren, öffneten danach ohne das Diagramm
- Angezeigte Namen von Trendlinien in Classic-Diagrammen dekodieren 8-Bit-String-Payloads korrekt; der bisherige Wide-Character-Reader lieferte für Datensätze, die Excel mit 8-Bit-Zeichen schreibt, einen leeren Namen
Version 2.375.0
Hinzugefügt
- Classic-XLS-Diagrammreihen unterstützen themenfarbige Füllungen mit Index und Tönung über GelFrame
Behoben
- Der vollständige Bibliotheksbuild ist von XE5 bis zur aktuellen Compilerfamilie wieder versionssicher
Version 2.374.0
Hinzugefügt
AddChartSheetund die Diagrammprüfung unterstützen konfigurierbare und lesbare 3-D-Szenen überScene3D
Version 2.373.0
Hinzugefügt
- Classic-XLS-Diagrammreihen erlauben pro Reihe Überschreibungen für Linie, Füllung und Marker
Version 2.372.0
Hinzugefügt
- Classic-XLS-Diagrammreihen akzeptieren benannte und externe Kategorie- und Wertreferenzen und binden sie beim Speichern erneut
Version 2.371.0
Hinzugefügt
- Reihen aus
AddChartSheetkönnen an die sekundäre Achsengruppe gebunden werden
Version 2.370.0
Hinzugefügt
- Classic-XLS-Diagrammreihen unterstützen Datenbeschriftungen über
AddChartSheetmit allen Anzeige-Flags und Trennzeichen
Version 2.369.0
Hinzugefügt
- Die Classic-Diagrammprüfung dekodiert die Struktur primärer und sekundärer Achsengruppen
Version 2.368.0
Hinzugefügt
- BIFF-Trendlinien und Fehlerindikatoren in Diagrammen werden beim Lesen jetzt in das typisierte Diagrammmodell dekodiert: Jeder Series-Block legt seine Trendline-Datensätze offen — mit Regressionsart, Ordnung oder Periode, Achsenabschnitt (inklusive automatisch), Flags für Formel- und R-squared-Anzeige, Forecast- und Backcast-Perioden sowie Anzeigename —, dazu seine SerErrBar-Datensätze mit Richtungsseite, Wertart, Endkäppchen und Betrag
- Der Classic-semantische Snapshot bildet Trendlinien und Fehlerindikatoren in die gemeinsamen kanonischen Container ab, statt eine Ausnahme zu werfen, sodass Arbeitsmappen mit fortgeschrittenen Diagrammserien deterministisch vergleichbar sind und Trendlinien-Änderungen den kanonischen Stream verändern
Version 2.367.0
Hinzugefügt
- RecalcAndVerifyEx führt auf beiden Workbook-Engines einen tiefen Berechnungsaudit durch: Jede Formel wird einmal durch den Abhängigkeitsgraphen in ein isoliertes Resultat-Overlay evaluiert, sodass abhängige Zellen diesen Durchgang lesen statt veralteter Caches; Evaluierungsfehler landen in typisierten Kategorien (nicht unterstützte Argumente, Zirkelbezüge, abgelehnte oder fehlende externe Bezüge, übersprungene Datentabellen, Abbruch, interne Fehler) mit Ergebniscodes, und jeder Fehler bringt einen begrenzten Call-Stack mit
- Der Audit respektiert ein Issue-Budget mit stabiler Sortierung nach Blatt, Zeile, Spalte und Kategorie, einen Progress-Sink, der an Knotengrenzen abbrechen kann, konfigurierbare numerische Toleranzen und ein Opt-in ApplyResults, das neu berechnete Werte erst dann atomar festschreibt, wenn ein kompletter Durchgang über eine unveränderte Arbeitsmappenstruktur erfolgreich war; im Standard bleibt alles strikt read-only
Geändert
- Die bestehenden Einstiegspunkte RecalcAndVerify und CalculateAndVerify behalten ihre bisherige Flachvergleichs-Semantik als Kompatibilitäts-Shims und teilen sich die neuen Report-Felder
Version 2.366.0
Geändert
- Der PDF-Export baut Dokumente jetzt über einen sequenziellen Object-Writer zusammen, der jedes Objekt direkt zum Ziel streamt, sodass keine Zwischenkopie des Gesamtdokuments entsteht; unsignierte Dokumente streamen direkt in Forward-only-Streams, signierte werden in einem begrenzten Spool zusammengesetzt, der die ByteRange- und Signaturinhalts-Patches empfängt, bevor einmal vorwärts kopiert wird
- PDF-Anhang-Payloads kopieren in festen Blöcken von ihren Provider-Spools ins finale Dokument und verweisen über ein indirektes Längenobjekt auf ihre Streamgröße, womit der SpitzenSpeicherverbrauch bei Anhängen im mehreren-Hundert-Megabyte-Bereich flach bleibt
Behoben
- Signatur-Digests werden jetzt inkrementell über die beiden abgedeckten Bytebereiche des zusammengesetzten Dokuments berechnet statt über eine vollständige Dokumentkopie, und die reservierten Signaturfelder werden aus dem Signaturobjekt selbst lokalisiert statt durch Scannen der zusammengesetzten Bytes
Version 2.365.0
Hinzugefügt
- Sichtbarer PDF-Signaturtext wird jetzt über die eingebettete Unicode-Font-Pipeline gerendert, mit Links-, Zentrier- oder Rechtsausrichtung, konfigurierbarer Größe, Farbe sowie Fett- und Kursiv-Styling — für beliebige Schriften in Unterzeichnernamen, Gründen und Orten
- PDF-Signatur-Erscheinungsbilder akzeptieren JPEG-Payloads, deren Abmessungen aus dem Frame-Marker abgeleitet werden, während überdimensionierte oder korrupte Bilder deterministisch fehlschlagen, bevor der Digest berechnet wird
- PDF-Anhänge bieten eine explizite Richtlinie für doppelte Namen, spoolen große Provider-Payloads jenseits einer konfigurierbaren Byte-Schwelle in eine temporäre Datei und weisen Dateien feindliche Namen mit Pfadtrennern oder Steuerzeichen ab
Geändert
- PDF-Anhang-Namensbäume werden jetzt gemäß ISO 32000-1 7.9.6 nach ihren kodierten Namensbytes sortiert, und die Anhangsammlung bleibt eingefroren, solange Provider laufen, sodass reentrante Ergänzungen atomar fehlschlagen
Version 2.364.0
Hinzugefügt
- Eingebettete EMF- und WMF-Bilder geben weitere Pfade, Bögen, Regionen und erweiterte Stifte über die unveränderliche gemeinsame Szene wieder
Version 2.363.0
Hinzugefügt
- Der sichere EMF- und WMF-Decoder deckt weitere DC-Zustände, Geometrie, Text und begrenzte Stretch-DIB-Bilder ab
Behoben
- WMF-Bilder lesen den standardmäßigen zweibytebreiten Datensatzheader
Version 2.362.0
Hinzugefügt
- Classic XLS und XLSX erhalten jetzt Tabellenformel-Arrayzustände, typisierte Datenüberprüfungs-IME-Modi, Berechnungsthread-Hinweise, Force-Full-Calculation-Kennzeichnung, Refresh-all-Hinweise und Arbeitsmappen-Codenamen über ihre nativen Binär- bzw. OOXML-Repräsentationen
RecalcAndVerifyliefert einen begrenzten, strukturierten Berechnungsaudit mit stabilen Kategorien für Cache-, Parse-, fehlende-Funktion- und fehlender-Name-Fälle, ohne Formel-Caches oder Arbeitsmappensemantik anzutastenTXLSPageImageExporter.ExportRangerendert ein gewünschtes Zellrechteck als ein kompaktes PNG oder JPEG — ohne Papier, Ränder, Kopf- und Fußzeilen, Drucktitel oder Seitenumbrüche —, und die Page-Image-Vorher-/Nachher-Events können auf den tatsächlichen Encoding-Canvas zeichnen- Ein dedizierter Zellbild-Exporter misst, rendert und speichert jedes Classic- oder XLSX-Zellrechteck als einzelnes kompaktes Bild mit konfigurierbarer Auflösung, Skalierung, Format und JPEG-Qualität; dazu transparente oder farbige Hintergründe, unabhängige Schalter für Objekte, Gitternetzlinien und Zellrahmen, Pixel- und Byte-Budgets sowie Dateispeicherung durch atomares Ersetzen im selben Ordner, das ein vorhandenes Ziel unangetastet lässt, wenn irgendetwas fehlschlägt
- Page-Image-Paint-Events erhalten jetzt einen vollständigen Read-only-Kontext mit Live-Canvas, Pixelgrenzen, Seitengröße in Punkten, Auflösung, Skalierung, Dokument- und Blattseitennummern, Gesamtseitenzahl und dem ursprünglichen Arbeitsblatt, feuern genau einmal pro gerendertem Frame — auch bei Multipage-TIFF-Frames —, bleiben während der Messung stumm und lösen ihr nachgelagertes Event weder aus noch schreiben sie Teilbild-Bytes, wenn das vorangehende Event eine Ausnahme wirft
TXLSSvgExportunterstützt vollständige Per-Page-Callbacks, deterministische Dokument- und Seiten-ID-Namespaces sowie Opt-in sichere Hyperlink-Overlays mit ScreenTips und sicheren New-Window-Attributen- Die Classic- und XLSX-HTML-Exporter bieten eine Opt-in Spreadsheet-Ansicht mit semantischen Zeilen- und Spaltenüberschriften plus begrenztem Pure-CSS-Hot-Tracking, und beide weisen aktive oder lokale URI-Schemata zurück, während der Link-Anzeigetext erhalten bleibt
- Sichtbare PDF-Signaturen können enthaltene, bedeckende oder gestreckte PNG-Erscheinungsbilder verwenden, und PDF-Anhänge können ihre Payload bei jedem Speichern lazy über eine Single-Call-Quelle beziehen
- Ein begrenzter EMF- und WMF-Vektordekodierer validiert Header, Datensatzgrößen, Totale, exakte EOF-Platzierung und Escape-Einschränkungen und spielt dann seine sichere Rechteck-Befehlsunteilmenge über die gemeinsamen Canvas- und SVG-Backends ab, ohne das Treiber-Metafile-Playback aufzurufen
Geändert
- Direktes XLSX-Schreiben kann Tabellenformel-Arrayattribute und typisierte Datenüberprüfungs-IME-Modi verfassen, und Array-Tabellenformeln werden nicht mehr stillschweigend als skalare Formeln pro Zeile expandiert
Version 2.361.99
Geändert
- Automatisch getaggte PDFs führen informative XLSX-Bilder als Figure-Strukturelemente mit Unicode-Alternativtext
Version 2.361.98
Behoben
- Lookup-Formeln, die einen Bereich durchsuchen, der ihre eigene Zelle abdeckt (VLOOKUP, HLOOKUP, LOOKUP, XLOOKUP, XMATCH, MATCH), melden bei der Neuberechnung keine falschen Zirkelbezug-Fehler mehr, während Änderungen innerhalb des durchsuchten Bereichs die Neuberechnung der Formel weiter auslösen
- AutoFilter-Textkriterien über 255 Zeichen werden auf die Grenze des Filterdatensatzes gekappt, statt eine korrupte AutoFilter-Bedingung zu schreiben
- Aufeinanderfolgende Leerzeichen, die der implizite Schnittmengenoperator nutzt, bleiben beim Neuaufbau des Formeltexts erhalten, statt zu einem einzelnen Leerzeichen zu kollabieren
- Eingebaute definierte Namen über Druckerbereiche, Drucktitel und Filterdatenbanken hinaus (Konsolidierungsbereiche, Extract, Database, Criteria, Recorder, Blatttitel und Marker der Auto_Open-Familie) bleiben beim Öffnen und Speichern von Classic-XLS-Arbeitsmappen wortwörtlich erhalten
Version 2.361.97
Hinzugefügt
- Classic-XLS- und XLSX-Arbeitsmappen legen jetzt eine gemeinsame dreistufige Objektanzeige-Richtlinie offen, mit verlustfreier Erhaltung unberührter Quellobjekte und Cross-Format-Mapping; ausgeblendete Objekte blähen paginierte oder HTML-Ausgabe nicht mehr auf und geraten nicht mehr in Drawing- und Media-Rendering-Pfade
- Der Workbook-Viewer rendert leichte benannte Platzhalter für Objekte im Platzhaltermodus, während PDF-, SVG-, Bitmap-, Print- und HTML-Exporter standardmäßig vollständige Objekte behalten und eine explizite Platzhalteroption bieten, die Bilddekodierung und Chart-Scene-Aufbau vermeidet
Version 2.361.96
Geändert
- Manuelle Diagrammlayouts erhalten Quellfelder und rendern Titel, Legende, Plotbereich und Achsentitel über alle Ausgabewege konsistent
Version 2.361.95
Geändert
- Zellbasierte XLSX-Datenbeschriftungen sind reihengebunden, aktualisierbar und über alle Ausgabewege konsistent
Version 2.361.94
Geändert
- Mehrstufige Diagrammkategorieachsen bewahren sparse Hierarchien und rendern Beschriftungen über alle Ausgabewege konsistent
Version 2.361.93
Geändert
- Datumsachsen leiten Kalendereinheiten und begrenzte Intervalle einmal für alle sichtbaren Reihen ab
Version 2.361.92
Geändert
- XLSX-Datumsachsen erhalten Zahlenformate und Quellverknüpfungen bei formatierter, gedrehter und umgekehrter Darstellung
Version 2.361.91
Geändert
- XLSX-Datumsachsen bewahren ausgelassene und explizite Kalendereinheiten; Classic-Erweiterungen bilden aktive Einstellungen typisiert ab
Version 2.361.90
Geändert
- XLSX-Datumsachsen behalten kontinuierliche Zeitabstände und nutzen das 1900- oder 1904-Datumssystem in allen Renderer-Ausgaben
Version 2.361.89
Hinzugefügt
- Der Workbook-Viewer kachelt gültige Arbeitsblatthintergründe nun hinter Zellen ohne Füllung, während Print-, PDF-, SVG-, Bitmap-, Metafile- und Classic- bzw. XLSX-HTML-Ausgaben eine explizite
ExportSheetBackgroundImages-Opt-in-Option bieten, die standardmäßig deaktiviert ist
Geändert
- Die seitenweise Hintergrunddarstellung bewahrt jetzt die blattrelative Kachelphase über Seiten hinweg, dekodiert jeden Hintergrund einmal pro Render-Sitzung, verwendet eine einzige PDF-Image-XObject- oder SVG-Ressource wieder und überspringt korrupte Payloads mit genau einer Diagnose
Version 2.361.88
Hinzugefügt
- Classic-Arbeitsblätter bieten jetzt eine typisierte Hintergrundbild-Erstellung und eine gemeinsame schreibgeschützte Hintergrundressource, lesen und schreiben BIFF8-Hintergrunddatensätze mit durchlaufender Payload-Aufteilung, rekonstruieren Bitmap-Payloads als Standard-BMP-Daten, bewahren nicht unterstützte native und unbekannte Formate byteweise identisch mit Diagnosen, duplizieren den Hintergrundbesitz beim Deep-Copy und wandeln bekannte Hintergründe in beide Richtungen zwischen XLS und XLSX um
Version 2.361.87
Behoben
- XLSX-Arbeitsblattkopien behalten jetzt die Bytes des Blatthintergrundbilds und den Medientyp bei, sowohl bei Kopien innerhalb derselben Arbeitsmappe als auch über Arbeitsmappen hinweg; Kopien innerhalb der Arbeitsmappe verwenden die bewahrten Quellmedien wieder, während arbeitsmappenübergreifende Kopien den Medienbesitz vor dem Speichern neu zuweisen
Version 2.361.86
Hinzugefügt
- Classic-XLS- und XLSX-Arbeitsmappen erhalten
AllowUnsafeFormulaCallbacks, während die kontextbezogene Auswertung die passende Option pro Aufruf und den strukturiertenxlfeUnsafeFunctionDenied-Status bereitstellt
Sicherheit
- Gefährliche externe und makroartige Formelnamen erreichen standardmäßig keine arbeitsmappenlokalen, prozessweiten, Resolver- oder Ereignis-Handler für Benutzerfunktionen mehr, und die Zurückweisung erfolgt, bevor die Formelargumente ausgewertet werden
Version 2.361.85
Hinzugefügt
- Classic-XLS- und XLSX-Arbeitsmappen erhalten
AuditFormulaSymbolsfür strukturierte Diagnosen unbekannter Funktionen, unbekannter Namen und Syntaxfehler über Formelzellen und definierte Namen hinweg, mit Statistiken zu eindeutigen Formeln und Cache-Treffern pro Vorgang
Geändert
- Beibehaltene unbekannte Funktionen und Namen ergeben jetzt auf direkten, abhängigen, kontextbezogenen, seriellen und parallelen Berechnungspfaden Excel-
#NAME?-Fehler - Änderungen an arbeitsmappenlokalen oder prozessweiten Benutzerfunktions-Registrierungen und an Formeln definierter Namen invalidieren jetzt den betroffenen Berechnungszustand vor der nächsten Neuberechnung
Behoben
- Formelfehler aus abhängigen Cache-Zellen bleiben jetzt typisierte Fehler, statt in die Skalarkonvertierung zu laufen und eine Variant-Konvertierungsausnahme auszulösen
Version 2.361.84
Hinzugefügt
- Die normale Formelzuweisung in klassischem XLS und XLSX wendet die Formeleingaberichtlinie der Arbeitsmappe nun atomar an, sodass strenge Zurückweisung Zellwert, Formelcache und Abhängigkeiten unverändert lässt, während der Beibehaltungsmodus unbekannte Funktionen und Namen speichert
Geändert
- Klassisches XLS schreibt beibehaltene unbekannte Aufrufe über BIFF-Add-in-Benutzerfunktion-Tokens und bewahrt beibehaltenen Text unbekannter Namen über Speichern, erneutes Öffnen und XLS/XLSX-Konvertierung hinweg
- Die Formeleingabevalidierung erkennt konfigurierte Callback-Benutzerfunktionen, aufrufbare
LAMBDA- undLET-Konstrukte, Lambdas definierter Namen, Berichtsplatzhalter, registrierte externe Verknüpfungen und gültige strukturierte Verweise, ohne Handler aufzurufen
Behoben
- Die XLSX-Validierung bewahrt nun gültige verschachtelte strukturierte Verweise sowie Verweise auf die aktuelle Zeile und verwendet beim Durchsuchen eines unaufgelösten Tabellenverweises keinen veralteten Spaltentext mehr wieder
Version 2.361.83
Geändert
- Die Wertzuweisung in klassischem XLS und XLSX wendet
FormulaEntryPolicy.EmptyStringModenun durchgängig an: der Standard löscht exakte leere Zeichenfolgen, der Beibehaltungsmodus speichert eine konstante leere Zeichenfolge, undNulloderUnassignedlöscht die Zelle stets - Das native Laden von XLS, XLSX und ODS sowie die Konvertierung von XLS nach XLSX und von XLSX nach XLS bewahren nun vertrauenswürdige konstante leere Zeichenfolgen, ohne sie mit fehlenden Zellen oder Formeln wie
=""zu verwechseln - XLSX-Zeichenfolgen- und Variant-Schreiber für Zeilen oder Spalten behalten Schnellpfade der gepackten Speicherung bei, lassen gelöschte Einträge fehlen und speichern exakte leere Zeichenfolgen nur im Beibehaltungsmodus
Version 2.361.82
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun eine gemeinsame
FormulaEntryPolicyoffen, während beide Arbeitsblatt-Engines änderungsfreieValidateFormulaEntry-Methoden bereitstellen, die ein strukturiertes Problem, eine Aktion und ein unbekanntes Symbol zurückgeben, bevor ein Aufrufer eine Zelle ändert
Geändert
- Die Formeleingabevalidierung unterscheidet nun exakte leere Eingaben von Formeln, die eine leere Zeichenfolge zurückgeben, trennt unbekannte Funktionen, unbekannte Namen, Syntaxfehler, ungültige Ziele und Einschränkungen des Zielformats und erkennt registrierte Benutzerfunktionen, ohne deren Handler aufzurufen
Version 2.361.81
Geändert
- Einfügungen oder Löschungen ganzer Zeilen oder Spalten ordnen die geordneten Auswahlbereiche und den aktiven Bereich jedes Fensterbereichs nun in XLS und XLSX konsistent neu zu, bewahren die verbleibende Reihenfolge und erzeugen einen Grenzzellen-Fallback, wenn alle Bereiche entfernt wurden
- Die Normalisierung großer Fensterbereichsauswahlen, strukturelle Bearbeitung und Abfragen verwenden nun amortisiert lineare Generatoren und Kapazitätswachstum statt wiederholter Kopien vollständiger Zeichenfolgen oder Arrays
Behoben
- Klassisches XLS bewahrt nun fehlerhafte oder widersprüchliche
Selection-Datensatzkörper byte-exakt und meldetxlsDiagnosticSelectionRecordInvalid, statt teilweise vertrauenswürdigen typisierten Zustand offenzulegen
Version 2.361.80
Hinzugefügt
TXLSWorksheetundTXLSXWorksheetlegen nun passendeTryGetWindowScroll- undScrollWindow-Methoden offen, um die erste sichtbare Zelle jedes vorhandenen logischen Fensterbereichs mit 1-basierten Koordinaten zu lesen und zu ändern
Geändert
- Der Scrollzustand der vier Fensterbereiche bewahrt die gemeinsam genutzten oberen, unteren, linken und rechten Achsen nun unabhängig voneinander über XLS- und XLSX-Speichern, -Öffnen und Arbeitsblattkopien hinweg, während fehlende Fensterbereiche und ungültige Koordinaten fehlschlagen, ohne den Ansichtszustand zu ändern
Version 2.361.79
Geändert
- Klassische XLS-Arbeitsblätter behalten unabhängige, geordnete Auswahllisten für jeden Fensterbereich bei, aggregieren aufeinanderfolgende BIFF-
Selection-Datensätze zu einer einzigen logischen Sequenz, bewahren unangetastete Datensatzkörper und kopieren den vollständigen Auswahlzustand mit dem Arbeitsblatt - Klassische Auswahlen mit mehr als 1369 Bereichen werden als aufeinanderfolgende, standardkonforme Blöcke geschrieben, während ein aggregierter Index des aktiven Bereichs über alle Blöcke hinweg beibehalten wird
Version 2.361.78
Hinzugefügt
TXLSWorksheetundTXLSXWorksheetlegen nun passende fensterbereichsbewussteGetSelectedAreas- undSelectAreas-Methoden über den gemeinsamen TypTXLSPanePositionoffen
Geändert
- Fensterbereichsauswahl-Abfragen geben geordnete Snapshots im Besitz des Aufrufers mit dem Index des aktiven Bereichs zurück, bewahren überlappende Bereiche und lassen den Arbeitsblattzustand unverändert, wenn ein Fensterbereich fehlt oder eine Aktualisierung ungültig ist
Version 2.361.77
Hinzugefügt
IXLSWorkbook,TXLSWorkbookundTXLSXWorkbooklegen nun passende Streaming-SaveSemanticSnapshot- und inkrementelle SHA-256-ComputeSemanticHash-Methoden mit Content- und SecurityComplete-Profilen sowie expliziten Optionen für Ansichtszustand, flüchtige Metadaten und Formelcache offen
Geändert
- Semantische Snapshots durchlaufen dünn besetzte Arbeitsmappenmodelle, ohne einen vollständigen Snapshot zu materialisieren, und sowohl Snapshot- als auch Hash-Operationen halten eine Lese-Lease, sodass gleichzeitige öffentliche Mutationen fehlschlagen, bevor der Arbeitsmappenzustand geändert wird
Version 2.361.76
Hinzugefügt
- Das typisierte Diagrammmodell klassischen XLS legt nun die Titel von Diagramm, Kategorieachse und Wertachse offen
Behoben
- Die Extraktion des Diagrammmodells klassischen XLS identifiziert nun Datenreihen, Legenden, Diagrammgruppen, Achsen, den 3-D-Zustand, Reihenbezeichnungen und Quellformeln der Datenreihen anhand ihrer definierten BIFF-Datensätze
- Legendenpositionen und die Unterscheidung zwischen Kreis- und Ringdiagramm werden aus ihren definierten Datensatzfeldern dekodiert
Version 2.361.75
Hinzugefügt
- Das Delphi-FeatureShowcase und die C++Builder-XlsxFeatureGallery demonstrieren nun denselben Workflow aus Datenkontext kompilierter Berichte, Speichertabelle, striktem Datenzugriff, Fortsetzung nach wiederherstellbaren Fehlern, Diagnosearbeitsblatt, unveränderlichem Laufergebnis und atomarer Dateiausgabe
- Das Thema zum kompilierten Berichtswesen stellt nun passende Delphi- und C++Builder-Beispiele bereit, einschließlich der für Interface-Berichtstabellen erforderlichen C++Builder-Smart-Interface-Beschaffung
Behoben
- Die C++Builder-XLSX-Featuregalerie bindet das vollständige, versionsgerechte HotXLS-Static-Package, sodass Implementierungsabhängigkeiten kompilierter Berichte ohne fragile Linker-Direktiven pro Einheit aufgelöst werden
Version 2.361.74
Geändert
RunToStream,RunToFileundRunToEncryptedFileteilen sich nun eine einzige Ausgabetransaktion, die eine serialisierte Arbeitsmappe erst veröffentlicht, wenn Berichtsgenerierung und Speichern abgeschlossen sind- Unverschlüsselte Berichtsausgabe bewahrt das Format der Vorlagen-Arbeitsmappe, einschließlich ODS-Ausgabe aus ODS-Vorlagen, während verschlüsselte Ausgabe ein verschlüsselter Office-Container bleibt
Behoben
- Fehler bei Serialisierung, Ersetzung und Abbruch sowie fatale Berichtsfehler lassen vorhandene Ziel-Streams, Dateien und verschlüsselte Dateien unverändert und geben Daten-Sitzungen pro Lauf und temporären Speicher frei, bevor sie zurückkehren
Version 2.361.73
Hinzugefügt
- Berichtsbänder für benannte Bereiche und Excel-Tabellen legen nun
ErrorMode,StrictDataAccess,RuntimeLimitsund unveränderlicheLastResult-Snapshots offen, mit einem eigenenCompletedWithErrors-Bandzustand
Geändert
WriteAndContinuekann einen explizit wiederherstellbaren Zeilenfehler als literalen Diagnosetext schreiben, die Cursor-Quellzeile und die tatsächliche Ausgabezelle festhalten und dann spätere Ziele in dieser Zeile und spätere Eingabezeilen fortsetzen- Berichtsausdrücke verwenden typisierte Band-Snapshot-Werte, bevor sie auf Text zurückfallen, und bewahren numerische, Datums-, Boolean- und andere unterstützte Variant-Werte während der Ausdrucksauswertung
Behoben
- Fatale Ziel-, Abbruch- und Laufzeitgrenzen-Fehler während der Bandausweitung stellen Quellziele und eingefügte Struktur wieder her, löschen zurückgerollte Diagnose-Flags und veröffentlichen null angewandte Ziele
Version 2.361.72
Hinzugefügt
TXLSReportRuntimeLimitsbegrenzt Anzahl und Speicherbedarf der vorgehaltenen Laufzeitprobleme sowie die bereinigte Nachrichtenlänge, währendRuntimeDiagnosticsSheetNameoptional ein strukturiertes Diagnosearbeitsblatt schreibt- Explizite Resolver-Datenfehler, Division durch Null in Ausdrücken und ungültige reguläre Ausdrücke tragen nun stabile Anbieter- oder Ausdrucks-Problemkategorien und Fehlercodes
Geändert
WriteAndContinuebewahrt sichere Nicht-Zell-Ziele und protokolliert deren Problem, während Arbeitsblattnamen und Formeln definierter Namen Fail-fast-Strukturziele bleiben- Ergebnisse von Resolver-Datenfehlern bleiben wiederherstellbar, wenn sie aus dem Alias-Cache des jeweiligen Laufs bereitgestellt werden, während von einem Resolver ausgelöste Ausnahmen weiterhin fatal sind
Sicherheit
- Laufzeitmeldungen brechen bei der ersten Zeile ab, schwärzen gängige Formen von Anmeldeinformationen und Bearer-Tokens und erzwingen Grenzen für Anzahl, Länge und Speicher, bevor das fehlerhafte Ziel verändert wird
Version 2.361.71
Hinzugefügt
- Exakte
{{#usertable(alias, logicalName, providerKey, name=expression)}}-Zellen werden zu typisierten, verzögert aufgelösten Tabellendeklarationen kompiliert, undTXLSCompiledReportTemplate.UserTableCountmeldet die Deklarationsanzahl getrennt von den Ausgabezielen TXLSReportTemplateChecker.DataContextprüft vorab registrierte Anbieter-Schlüssel, typisierte Parametergrenzen, fehlerhafte Deklarationen und Alias-Konflikte unabhängig von Groß-/Kleinschreibung, ohne einen Resolver aufzurufen
Geändert
- Berichtsvorlagen und -generatoren werten Deklarationsparameter vor den Ziel-Schreibvorgängen aus, registrieren sie in der aktuellen Ausführungssitzung und lösen eine deklarierte Tabelle erst auf, wenn
dbvalueoderdbcountzum ersten Mal auf ihren Alias verweist - Wiederholte identische Deklarationen teilen sich eine Anfrage, während Deklarationen, die einen Alias mit anderem logischen Namen, anderem Anbieter, anderer Parameterreihenfolge, anderem Typ oder Wert wiederverwenden, mit der Position der deklarierenden Zelle fehlschlagen, bevor die Arbeitsmappe verändert wird
Sicherheit
- Deklarationen von Benutzertabellen akzeptieren nur einen registrierten Anbieter-Schlüssel und begrenzte typisierte Datenparameter, weisen Datenzugriffe auf Tabellen innerhalb von Parameterausdrücken zurück und bieten kein Vorlagenfeld für SQL, Pfade, URLs oder Befehlstext
Version 2.361.70
Hinzugefügt
TXLSReportDataRequestübermittelt benannte oder Benutzertabellen-Identitäten, typisierte Parameter, die Quellposition und eine schreibgeschützte Ausführungssteuerung anIXLSReportDataResolver, dessen explizite Ergebniszustände unbehandelte, aufgelöste, nicht gefundene und Datenfehler-Ergebnisse unterscheidenTXLSReportDataContext.RegisterResolver,RemoveResolverundClearResolversverwalten eine benannte Resolver-Registrierung, die Groß-/Kleinschreibung ignoriert, währendTXLSReportDataLimitsAliase, Resolver, Parameter, Namen, Nachrichten und zurückgegebene Tabellenschemata begrenzt
Geändert
- Jede Berichtdatensitzung übernimmt die Resolver-Registrierung als O(1)-Snapshot-Lookup, behandelt explizite Tabellen als maßgeblich, bindet Legacy-Tabellenanbieter ein, speichert typisierte Anfragen nach Alias zwischen und weist einen wiederverwendeten Alias zurück, dessen logischer Name, Anbieter, Parameterreihenfolge, Typ oder Wert abweicht
- Berichts-Runner und -bänder reichen nun eine thread-sichere Abbruchsteuerung durch die Datenauflösung, stoppen nach einem Abbruch, ohne das aktive Ziel festzuschreiben, und lassen einen abgebrochenen Alias für einen sauberen Wiederholungsversuch verfügbar, statt den Abbruch als Datenfehler zwischenzuspeichern
Sicherheit
- Typisierte Datenanfragen weisen Steuerzeichen, negative Quellkoordinaten, doppelte Parameternamen, nicht unterstützte Variant-Arrays oder -Verweise, übermäßige Zeichenfolgen, übermäßige Aliase oder Anbieter und überdimensionierte Tabellenschemata zurück, bevor unsichere Arbeiten oder Arbeitsmappenänderungen erfolgen
Version 2.361.69
Hinzugefügt
TXLSXWorksheet.ClearRowHeightundClearColWidthentfernen eine einzelne explizite Dimensionsüberschreibung, ohne andere Zeilen- oder Spaltenmetadaten anzutasten
Geändert
- Kompilierte Berichtsziele schließen nun die Ausdrucksauswertung ab, bevor sie dynamische Formatierung aufrufen, und schreiben Zellinhalt, Zahlenformate, Zeilenhöhen und Spaltenbreiten über eine einzige Rollback-Grenze fest
- Wiederherstellbare Zelldiagnosen leiten Stile mit roter Schrift und gelber Füllung aus der vorhandenen Schriftart der Zelle ab, bewahren den übrigen Zellstil und verwenden gepoolte Stile bei gleichen Basisschriftarten und wiederholten Runner-Ausführungen wieder
Behoben
- Ein wiederherstellbarer Auswertungsfehler hinterlässt nun weder dynamische Zahlenformate noch explizite Zeilen- und Spaltendimensionen, und Diagnose-Schreibvorgänge löschen vor dem Speichern von Literaltext nun jede Formel
Version 2.361.68
Hinzugefügt
- Kompilierte Berichts-Runner und -generatoren legen
ErrorMode,StrictDataAccessund ein unveränderlichesLastResultmit Endzustand, angewandter Anzahl, Fehlerdetails und geordneten Laufzeitproblemen offen WriteAndContinuekann explizit wiederherstellbare Zelldatenfehler durch Literaldiagnosen ersetzen und alsCompletedWithErrorsabschließen, während der StandardmodusStopkompatibel bleibt
Geändert
- Der strikte Datenzugriff meldet fehlende Tabellen, nicht verfügbaren Direktzugriff, fehlende Zeilen und fehlende Felder über stabile Fehlercodes, wenn kein expliziter Vorlagen-Fallback existiert
- Nur ausdrücklich als wiederherstellbar markierte Datenfehler dürfen fortfahren; strukturelle, Callback-, Abbruch-, Ressourcen-, Sicherheits-, Serialisierungs- und andere fatale Fehler stoppen den Bericht weiterhin
Behoben
- Ausgabefehler bei Dateien und verschlüsselten Dateien liefern nun ein fehlgeschlagenes Laufergebnis, statt ein abgeschlossenes Ergebnis aus der vorangegangenen Arbeitsmappen-Generierungsphase beizubehalten
Version 2.361.67
Geändert
- Kompilierte Vorlagen, Runner, Bereichsbänder und Excel-Tabellenbänder lösen
dbvalueunddbcountnun über eine isolierte Datensitzung pro logischem Lauf auf - Wiederholte Aliase werden innerhalb eines Laufs nur einmal geladen, spätere Läufe laden Anbieterdaten neu, gleichzeitige Läufe behalten unabhängige Caches, und beide Durchläufe von
PreprocessAndRunteilen sich eine konsistente Tabellen-Momentaufnahme - Berichtsband-Ausdrücke binden nur ihre Zeilen- oder Spaltenvariablen, sodass literale Tabellennamen und eingebaute Positionsvariablen nicht mehr für Quellspalten gehalten werden
Behoben
- Berichtdatensitzungen und ihre Anbieter-Momentaufnahmen werden nach erfolgreicher, abgebrochener oder fehlgeschlagener Ausführung freigegeben, einschließlich Anbieterausnahmen und Wiederholungsversuchen wiederverwendbarer Runner
Version 2.361.66
Hinzugefügt
TXLSReportDataContext.BeginRungibt eine isolierteIXLSReportDataSession-Momentaufnahme mit Zustandsinspektion sowie Anzahlen aufgelöster oder zwischengespeicherter Aliase zurück
Geändert
- Berichtdatensitzungen verwenden einen Hash-Cache, der Groß-/Kleinschreibung ignoriert, für explizite Tabellen, verzögerte Anbieterergebnisse, fehlende Aliase und Anbieterdatenfehler
- Jeder unterschiedliche Alias erreicht die Anbieterkette höchstens einmal pro Sitzung, Anbieterergebnisse bleiben an den angefragten Alias gebunden, und Rekursion über denselben Alias schlägt sofort fehl
- Direkte Aufrufe von
TXLSReportDataContext.TryGetTableundRequireTablebehalten einen separaten Kompatibilitäts-Cache, der bei Registrierungsänderungen ungültig wird
Version 2.361.65
Hinzugefügt
IXLSXImageBlobundTXLSXImageBlobstellen unveränderliche Raster- und SVG-Payloads mit einmaligen SHA-256-Prüfsummen, Bytegröße und einem optionalen Cache-Schlüssel bereitTXLSReportImageResult.CacheKeyerlaubt einem V2-Bildanbieter, wiederverwendbare Inhalte explizit zu identifizieren, während widersprüchliche Inhalte für denselben Schlüssel zurückgewiesen werden, bevor das Arbeitsblatt verändert wird
Geändert
- Wiederholte Berichtbilder teilen sich eine unveränderliche Payload über einen expliziten Cache-Schlüssel oder exakte Prüfsummen-Übereinstimmung und behalten dabei unabhängige Anker und Transformationen
- XLSX und ODS speichern jede unterschiedliche Bild-Payload nur einmal, verwenden ihre Medienbeziehung blattübergreifend wieder und stellen gemeinsame Payloads beim erneuten Öffnen der Arbeitsmappe wieder her
- Das erneute Öffnen von XLSX stellt SVG-Begleitdaten nun über DrawingML-Erweiterungsbeziehungen wieder her und kombiniert sie mit dem Raster-Fallback
Version 2.361.64
Hinzugefügt
TXLSReportImageResultkann Quell-Pixeldimensionen und DPI angeben, während Bildanfragen und -ergebnisse ankerrelative Ziel-Offsets in EMU offenlegenTXLSXImage.OffsetXEMUundOffsetYEMUbewahren die Bildplatzierung innerhalb eines Ankers über XLSX- und ODS-Speicher-/Öffnungszyklen hinweg
Geändert
- Die V2-Bildbindung leitet die physische Geometrie aus PNG-, JPEG-, GIF-, BMP-, EMF- und WMF-Headern ab, wendet die Größenanpassung Natural, Contain, Cover oder Stretch an und zentriert eingelegte Bilder, ohne ihre Pixel zu dekodieren
- Rastergeometrie wird vor der Arbeitsblattänderung zurückgewiesen, wenn Header abgeschnitten sind, deklarierte Dimensionen einander widersprechen, eine Seite 100.000 Pixel überschreitet oder die gesamte dekodierte Größe 100 Millionen Pixel übersteigt
Version 2.361.63
Hinzugefügt
IXLSReportImageDataProviderV2kann Bildbytes oder vom Aufrufer ausgeliehene und vom Anbieter übergebene Streams zurückgeben, mit Kontext zu Arbeitsmappe, Arbeitsblatt, Ziel, Band, Tabelle, Zeile, Anker und AbbruchOnTransformImagekann ein Bild vor der Bindung ersetzen oder in der Größe ändern, während kompilierte Bereichs- und Excel-Tabellenbänder eine schreibgeschützte Momentaufnahme jeder tatsächlichen Datenzeile offenlegen
Geändert
- V2-Bildstreams werden in begrenzten Blöcken mit einer konfigurierbaren Standardgrenze von 64 MiB gelesen; ausgeliehene seek-fähige Streams stellen ihre Position wieder her, und übergebene Streams werden genau einmal freigegeben
- V2-Payloads weisen leere Daten, nicht übereinstimmende Formatsignaturen, inkonsistente Dimensionen, ungültige Anker und Offsets außerhalb des Rasters zurück, bevor das Arbeitsblatt verändert wird
- Kompilierte Bereichs- und Excel-Tabellenbänder binden Bildziele einmal pro erzeugter Zeile aus materialisierten gebundenen Spalten, ohne erzeugte Arbeitsblattzellen zu durchsuchen
Version 2.361.62
Hinzugefügt
TXLSCompiledReportRunnerundTXLSReportGeneratorakzeptieren nun einen vorhandenenIXLSReportImageProvidermit Richtlinien für fehlende Bilder und DirektivenzellenTXLSReportImageBinder.ApplyTargetbindet eine vorkompilierte Bilddirektive, ohne nicht beteiligte Arbeitsblattzellen zu durchsuchen
Geändert
- Exakte
{{#image Key}}-Zellen werden zu typisierten Berichtszielen kompiliert, bleiben unverändert, wenn kein Anbieter konfiguriert ist, und verwenden ihren kompilierten Schlüssel und ihre Koordinaten über Runner-Sitzungen hinweg wieder
Version 2.361.61
Hinzugefügt
TXLSCompiledReportRunnerlegt nun gepaarte Arbeitsmappen- und Arbeitsblatt-Generierungsereignisse offen, mit stabiler Arbeitsblattidentität, ursprünglichen und aktuellen Koordinaten, schreibgeschützten Berichtsdaten, Zielanzahlen, Abbruch und FehlerdetailsTXLSReportGeneratorführt Arbeitsmappen-, Datei-, Stream- oder verschlüsselte Dateivorlagen über Lebenszyklusereignisse für das Lesen der Vorlage und die Generierung aus, mit wählbarer In-Place- oder Atom-Klon-Änderung
Geändert
- Die Berichtsgenerierung friert den ursprünglichen Arbeitsblattsatz ein, kompiliert nach Callback-getriebenen Strukturänderungen neu, weist gleichzeitige Änderungen derselben Arbeitsmappe zurück, paart Eintrittsereignisse bei Abbruch und Fehlschlag und bewahrt die erste Ausnahme
- Berichtsstreams bleiben im Besitz des Aufrufers, seek-fähige Vorlagenstreams stellen ihre Position wieder her, Forward-only-Streams werden in begrenzten Blöcken konsumiert, und Stream-, Datei- und verschlüsselte Dateiziele ändern sich erst nach erfolgreichem Abschluss
- Kompilierte Berichte ohne Lebenszyklus-Handler behalten die direkte Zielschleife ohne Arbeitsblattscans, Ereigniskontexte oder Lebenszykluszuweisungen pro Ziel
Version 2.361.60
Hinzugefügt
- XLSX-Arbeitsmappen legen nun
HasWebAddinTaskPanes,WebAddinTaskPaneCountundRemoveWebAddinTaskPanesfür eine exakte Prüfung und Entfernung von Aufgabenbereichen auf Paketstammebene offen
Geändert
- Die Entfernung von Web-Add-in-Aufgabenbereichen validiert nun vor jeder Änderung einen begrenzten internen Beziehungsgraphen, bewahrt gemeinsame und nicht beteiligte Paketteile, entfernt exklusive Nachfolger und eigene Beziehungsteile, baut Inhaltstypen neu auf, verhindert eine Wiederbelebung in Quellkopien und ist idempotent
- Klassische XLS- und ODS-Arbeitsmappen melden die Entfernung von Web-Add-in-Aufgabenbereichen als nicht unterstützt, ohne Paketinhalte zu durchsuchen
Version 2.361.59
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun passende
SaveExternalLinkValues- undUpdateLinks-Eigenschaften für Cache-Persistenz und die dateiseitig deklarierte Einstellung zur Verknüpfungsaktualisierung offen
Geändert
- Das Deaktivieren zwischengespeicherter Werte externer Verknüpfungen lässt nun nur klassische
XCT/CRN-Datensätze bzw. XLSX-sheetDataSet-Inhalte weg und behält Verknüpfungsdefinitionen, definierte Namen, Beziehungen, unbekanntes XML und Speicher-Caches bei - Richtlinien für externe Verknüpfungen übertragen reservierte Quellwerte bis zur Bearbeitung verlustfrei per Roundtrip, konvertieren zwischen XLS und XLSX, bewahren unveränderte komprimierte Paketteile und lösen niemals externen Datei- oder Netzwerkzugriff aus
Version 2.361.58
Hinzugefügt
TXLSHTMLExportundTXLSXHtmlExportSessionlegen nun den unveränderlichenRenderGeometry-Snapshot offen, den der aktuelle HTML-Vorgang verwendet
Geändert
- Klassische XLS- und XLSX-HTML-Exporteure konvertieren Excel-Zeichenbreiten nun über die backend-spezifische Geometrie der maximalen Ziffernbreite in feste CSS-Längen, statt mit hart codierten Umrechnungsfaktoren oder CSS-Zeicheneinheiten zu arbeiten
- Arbeitsmappen-, Arbeitsblatt-, Bereichs- und inkrementelle Multi-Sheet-HTML-Exporte erfassen eine vorgangslokale Kalibrierung mit begrenztem Metrik-Cache und ändern niemals gespeicherte Zeilenhöhen oder Spaltenbreiten
Version 2.361.57
Geändert
- PDF-, SVG-, Bitmap-, Druckvorschau- und Arbeitsmappen-Viewer-Vorgänge erfassen nun jeweils eigene unveränderliche Rendergeometrie-Snapshots mit backend-bewussten, begrenzten Metrik-Caches
- Die gemeinsam genutzte Seitenwiedergabe und der SVG-Umbruch verwenden nun vorgangslokale Schriftmessung statt prozessglobaler GDI-Bitmap- und Zeichenfolgenlisten-Zustände und bewahren dabei gespeicherte Zeilenhöhen und Spaltenbreiten
Version 2.361.56
Geändert
- Der klassische XLS- und XLSX-AutoFit erfasst nun pro Vorgang einen unveränderlichen Rendergeometrie-Dienst der Arbeitsmappe, einschließlich kalibrierter Textmessung, Umbruch, Zeilenabstand, Zellrändern und der tatsächlich sichtbaren XLSX-Schriftarten
- Die Paginierung erfasst nun für jeden Aufbau arbeitsmappenlokale Geometrie, entfernt prozessglobalen Zustand für Standardschrift und maximale Ziffernbreite und wendet kalibrierte implizite Spaltenbreiten an, ohne gespeicherte Zeilenhöhen oder Spaltenbreiten zu ändern
Version 2.361.55
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen erstellen nun unveränderliche, vorgangseigene Geometrie- und Schriftmessdienste mit begrenzten lokalen Caches, gemeinsam genutzten Breitenumrechnungen und ohne prozessglobalen AutoFit-DPI- oder Basisbreiten-Cache
Version 2.361.54
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun validierte
TXLSRenderCalibration-Werte sowie unabhängigeCaptureRenderCalibration-Snapshots undResetRenderCalibration-Standards für künftige Renderingvorgänge offen
Version 2.361.53
Hinzugefügt
- Das Laden von XLSX meldet nun
xlsDiagnosticPrinterSettingsRelationshipInvalid, wenn eine Druckereinstellungs-Beziehung eines Arbeitsblatts fehlt, falsch typisiert ist oder ins Leere zeigt
Geändert
SaveXLSWorkbookAsXLSXundSaveXLSXWorkbookAsXLSführen typisierte Seiteneinrichtungsfelder und opake Druckertreiber-Bytes nun unabhängig voneinander, wobei Standardfeldern Vorrang vor doppelten privaten Standardwerten eingeräumt wird
Behoben
- Das Laden von XLSX bindet keinen nicht zugehörigen Druckereinstellungsteil mehr, wenn die von
pageSetupbenannte Beziehung ungültig ist - Die XLSX-zu-BIFF8-Konvertierung weist überdimensionale oder nicht darstellbare Druckereinstellungen nun zurück, bevor irgendein Zielbyte geschrieben wird
Version 2.361.52
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsblätter legen nun kopieisolierte
PrinterDriverData- undHasPrinterDriverData-Eigenschaften sowieClearPrinterDriverDatafür direkte Kontrolle der opaken Druckertreiber-Payload offen
Behoben
- Das Löschen von XLSX-Druckertreiberdaten entfernt nun die zugehörige Arbeitsblattbeziehung und den binären Paketteil, auch wenn die Beibehaltung nicht unterstützter Teile aktiviert ist
Version 2.361.51
Geändert
- Das Laden und Speichern von XLSX bewahrt nun die binären Druckereinstellungen jedes Arbeitsblatts über die
pageSetup-Beziehung, die Inhaltstyp-Deklaration und denprinterSettingsN.bin-Paketteil - Druckereinstellungen überleben Arbeitsblattkopien innerhalb derselben und über Arbeitsmappen hinweg mit byte-exaktem, unabhängigem Besitz, während unveränderte Quellteile ihre ursprüngliche komprimierte Payload behalten können
Version 2.361.50
Geändert
- Das Laden und Speichern klassischer XLS-Dateien bewahrt nun die vollständige BIFF-
PLS-Druckertreiber-Payload zusammen mit jedem unmittelbar folgendenContinue-Segment - Druckertreiber-Payloads werden zusammen mit Arbeitsblättern tief kopiert, in exakt BIFF-großen Blöcken vor
Setupausgegeben und zurückgewiesen, wenn sie strukturell unvollständig oder größer als die Sicherheitsgrenze von 1 MiB sind
Version 2.361.49
Hinzugefügt
- Die Seiteneinrichtung klassischer XLS-Dateien legt nun schreibgeschützte
HasSetupRecord- undPrinterSettingsInitialized-Eigenschaften offen, damit Aufrufer fehlende oder nicht initialisierte Druckereinstellungen von definierten Werten unterscheiden können
Geändert
- Das Speichern eines unangetasteten klassischen Arbeitsblatts bewahrt nun einen fehlenden BIFF-
Setup-Datensatz und behält jedes Byte eines vorhandenen 34-Byte-Datensatzes, einschließlich reservierter und nicht modellierter Flag-Bits - Seiteneinrichtungs-Setter erzeugen einen fehlenden
Setup-Datensatz nun nur bei Bedarf und initialisieren druckerabhängige oder Ausrichtungsfelder gemäß der betroffenen Eigenschaft
Version 2.361.48
Hinzugefügt
SaveXLSXWorkbookAsXLSkonvertiert nun eine Arbeitsmappe im XLSX-Modell über Datei- und Stream-Overloads zu BIFF8 und bewahrt dabei geladene Werte, Formeln, Kernstile, verbundene Bereiche, Zeilen- und Spaltendimensionen, den Arbeitsmappen-Datumsmodus und den Zustand des aktiven Blatts
Geändert
- Die XLSX-zu-XLS-Konvertierung baut vor dem Schreiben von Stilen eine deterministische 56-Farben-Palette auf, bewahrt bereits verwendete indizierte Slots und wendet gewichtete OKLab-Quantisierung an, wenn direkte Farben die BIFF8-Kapazität übersteigen
- Der Konvertierungspfad durchläuft geladene dünn besetzte oder gepackte Zellen, ohne das Quellraster zu materialisieren, weist Koordinaten außerhalb der BIFF8-Grenzen zurück, bevor das Ziel angerührt wird, und ist nun in den Delphi- und C++Builder-ConversionWorkbench-Beispielen verfügbar
Version 2.361.47
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun passende
ApplyBiffPalettePlan-Methoden offen, die einen aktuellen 56-Slot-Palettenplan validieren und atomar anwenden - Klassische Arbeitsmappen legen nun
BiffPaletteSavePolicyoffen, mit einer expliziten BIFF8-Optimierungsoption und einem Standard, der die historische Palettenausgabe bewahrt
Geändert
- Die Anwendung des Palettenplans validiert nun Quellgeneration, Quellen-Hash, alle Slot-Identitäten und -Farben, aggregierte Anzahlen, Bewahrungs-Sperren, Änderungsflags und opake Ziele vor der ersten Änderung und baut dann den zwischengespeicherten OKLab-Matcher einmal neu auf
- Optimierte BIFF8-Speicherungen lassen die angewandte Palette nach Erfolg in der Arbeitsmappe, stellen aber alle 56 Quellfarben und die ursprüngliche Generation wieder her, wenn die Ausgabe fehlschlägt oder abgebrochen wird; BIFF5- und Nicht-BIFF-Ausgabepfade bleiben unverändert
Version 2.361.46
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun passende
BuildBiffPalettePlan-Methoden offen, die einen änderungsfreien 56-Slot-Plan mit Quellen-Palettenidentität, gesperrten Slots, vorgeschlagenen Farben, aggregierten True-Color-Zuordnungen, exakter Abdeckung und wahrnehmungsbasierten Fehlerstatistiken zurückgeben
Geändert
- Die BIFF-Palettenplanung bewahrt nun indizierte Verbraucher und vorhandene exakte Farben, bevor freie Slots zugewiesen werden, und nutzt nur dann deterministisches, frequenzgewichtetes OKLab-Clustering, wenn direkte und aufgelöste Designfarben die verbleibende Kapazität übersteigen
- Der Aufbau des Palettenplans liest gespeicherte Stil- und Metadaten bedingter Formatierung, ohne Paletteneinträge, Anzahlen benutzerdefinierter Farben, Zellen, Speicherverhalten oder Sparse-Speicherung zu ändern
Version 2.361.45
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun passende
ScanIndexedColorUsage-Methoden offen, die ein deterministisches 56-Slot-Inventar mit öffentlichen und physischen Indizes, normalisierten ARGB-Werten, Definitions- und Verweiszählern, Verbraucherarten und Bewahrungs-Sperren zurückgeben
Geändert
- Die Erfassung der Nutzung indizierter Farben deckt nun Arbeitsmappen-Stilpools, dünn besetzte Zellverweise, benannte Stile, Bereichs-Overlays, Arbeitsblatt-Gitternetzlinien, Formen, Kommentare, Rich-Text, Diagrammschriftarten, differenzielle Stile, Datenbalken und Farbskalen ab, ohne ungenutzte Zellen zu materialisieren oder den Arbeitsmappenzustand zu ändern
- Indizierte Farben bedingter Formatierungen durchlaufen nun klassische BIFF- und OpenXML-differenzielle Stile, Datenbalken und Farbskalen per Roundtrip, einschließlich Streaming-Speicherungen, die differenzielle Stil-Bezeichner vor den Arbeitsblattteilen ausgeben
Version 2.361.44
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun passende
NearestIndexedColor-Methoden offen, die den nächsten öffentlichen Palettenindex, den physischen Slot, den normalisierten ARGB-Wert, die quadrierte wahrnehmungsbasierte Distanz und den Exakt-Treffer-Status zurückgeben
Geändert
- Das Matching des nächsten indizierten Farbwerts nutzt nun eine zwischengespeicherte OKLab-Implementierung gemeinsam über beide Arbeitsmappen-Engines und den Legacy-Farbmanager, mit deterministischem Tie-Breaking über den niedrigsten Index und Cache-Aktualisierungen nur bei tatsächlichen Palettenänderungen
- Abfragen der nächsten Farbe durchsuchen nur die 56 physischen BIFF-Paletteneinträge, weisen teilweise transparente Eingaben zurück und ändern niemals den Paletten- oder Arbeitsmappenzustand
Version 2.361.43
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsmappen legen nun passende
ResolveIndexedColor-Overloads offen, die öffentliche Farbindizes, BIFF-icv-Werte und OOXML-Indexfarben klassifizieren und dabei Paletten-, Automatisch-, System- oder Ungültig-Metadaten zurückgeben - Das typisierte Indexfarben-Ergebnis meldet den Rohindex, den Palettenslot, die Systemfarben-Rolle, den normalisierten ARGB-Wert und ob eine konkrete Farbe aufgelöst wurde
Geändert
- Automatische und Systemfarben-Token fragen den aktuellen Windows-Desktop nicht mehr implizit ab; Aufrufer können einen expliziten Resolver angeben, wenn eine konkrete Umgebungsfarbe benötigt wird
- Design-Systemfarben verwenden nun ihren gespeicherten Fallback-RGB-Wert, wodurch Laden, Speichern und Headless-Verarbeitung über Maschinen hinweg deterministisch bleiben
Behoben
- Ungültige OOXML-Indexfarbenwerte lösen nicht mehr zu opakem Schwarz auf, und die Standardwerte des Legacy-Farbmanagers verwenden nun die exakten 128-Kanal-Palettenwerte
Version 2.361.42
Hinzugefügt
TXLSWorksheetundTXLSXWorksheetlegen nun passendeTryGetOutlineNode-,SetOutlineNodeCollapsed- undSetOutlineDisplayLevel-Methoden für 1-basierte Zeilen- oder Spalten-Ergebnisknoten offen
Geändert
- Gliederungsabfragen und -aktualisierungen von Arbeitsblättern passen dünn besetzte Engine-Metadaten nun an komprimierte Pläne an, bewahren verschachtelte Kindzustände standardmäßig und wenden Änderungen von Verborgen und Zusammengeklappt an, ohne ungenutzte Arbeitsblattkoordinaten zu durchsuchen
- OpenDocument-Zeilen- und Spaltengruppen bewahren nun ihren nativen verschachtelten Anzeigezustand über direkte Metadatenänderungen, strukturelle Bearbeitungen, ODS-Roundtrips und die Konvertierung zu XLSX-Ergebnisknoten-Markern hinweg
TXLSXWorksheet.ToggleRowGroupedundToggleColGroupedbleiben als richtungsbewusste Kompatibilitätswrapper um die Ergebnisknoten-API verfügbar
Version 2.361.41
Hinzugefügt
TXLSOutlineGeometrykann nun komprimierteTXLSOutlineMutationPlan-Instanzen für idempotentes Zusammen- oder Auseinanderklappen von Knoten sowie 1-basierte Änderungen der Gliederungsanzeigeebene aufbauen- Gliederungsänderungspläne legen explizite Kind-Modi für Bewahren, Zusammenklappen und Ausklappen offen und halten verschachtelte Zusammenklapp-Marker standardmäßig unabhängig
Geändert
- Das Ausklappen eines verschachtelten Gliederungsknotens berücksichtigt beim Ableiten der Sichtbarkeit nun zusammengeklappte Vorfahren und Nachfolger, und die Massenermittlung von Knoten durchläuft nur materialisierte Spannen mit einem linearen, monotonen Stack-Durchlauf
Version 2.361.40
Hinzugefügt
- Die neue Engine-unabhängige Einheit
lxOutlinebaut Zeilen- oder Spalten-Gliederungsgeometrie aus sortierten dünn besetzten Spannen auf und ermittelt Ergebnis-vor- und Ergebnis-nach-Knoten, verschachtelte Detailbereiche, Ergebnisebenen, verborgene Zustände und explizite Zusammenklapp-Marker, ohne ungenutzte Arbeitsblattkoordinaten zu durchsuchen
Version 2.361.39
Hinzugefügt
- Die Spaltenmetadaten klassischer XLS-Dateien legen nun den unabhängigen Gliederungs-Zusammenklapp-Marker über
TXLSColumnInfo.CollapsedundTXLSColumnInfoList.Collapsedoffen
Behoben
- Zusammenklapp-Marker der Spaltengliederung klassischer XLS-Dateien überleben nun BIFF-Roundtrips, Spaltenformat-Kopien, Arbeitsblattkopien und das Zusammenfassen benachbarter Datensätze, während definierte Breite, beste Anpassung und phonetische Flags intakt bleiben
Version 2.361.38
Behoben
- Gliederungsergebnisspalten klassischer XLS-Dateien bewahren nun ihre logische linke oder rechte Position über Links-nach-rechts- und Rechts-nach-links-Arbeitsblattansichten hinweg, statt das entgegengesetzte
WSBOOL-Richtungsbit zu schreiben
Version 2.361.37
Hinzugefügt
- Klassische XLS- und XLSX-Arbeitsblätter legen nun
EvaluateFormulaAtfür schreibgeschützte A1- oder R1C1-Formelauswertung in einem expliziten Zielzellen-Kontext offen IXLSFormulaEvaluationTemplatekompiliert einen unveränderlichen Formelanker einmal und wertet ihn wiederholt an anderen Zellen überEvaluateAtoderEvaluateAtWithOptionsaus- Die Optionen der Formelauswertung umfassen nun Grenzen für Formellänge, Syntaxelement-Schritte, Rekursionstiefe und erzeugte Array-Bytes; Erschöpfung wird als
xlfeResourceLimitgemeldet
Geändert
- Einmal- und wiederverwendbare Auswertung teilen sich nun arbeitsblattlokale Namen, strukturierte Verweise, nicht zwischengespeicherte Formelabhängigkeiten, Array-Wurzeln, Volatilitätsstatus, Abbruch und ausdrücklich autorisierte externe Verweise, ohne Arbeitsmappenzustand zu schreiben
- Die vorhandenen
Calculate-Methoden von Arbeitsmappe und Arbeitsblatt bleiben Kompatibilitätsfassaden über dem typisierten kontextbezogenen Auswerter
Behoben
- Die kontextbezogene Auswertung bewahrt nun Formelfehler-Varianten und unterscheidet Analysefehler, nicht unterstützte Funktionen, Zirkelverweise, externe Verweise, Abbruch, Arbeitsblatt-Lebensdauer und Ressourcengrenzen als Fehlerursachen
- Wiederverwendbare R1C1-Vorlagen übersetzen relative Zeilen- und Spalten-Offsets nun von ihrem Kompilierungsanker aus, wenn sie an einer anderen Zielzelle ausgewertet werden
Version 2.361.36
Hinzugefügt
ConvertExternalDefinedNamesToRefErrorssteht nun für klassische XLS- und XLSX-Arbeitsmappen bereit, um bestätigte definierte Namen externer Arbeitsmappen abzukoppeln, ohne gewöhnliche Zellformeln umzuschreiben- Übersprungene fehlerhafte oder nicht unterstützte Definitionen werden über
xlsDiagnosticDefinedNameConversionSkippedgemeldet
Geändert
- Die Konvertierung ersetzt ausgewählte Definitionen atomar durch natives
#REF!und behält dabei Arbeitsmappen- oder Arbeitsblattgeltungsbereich, Sichtbarkeit, Kommentare, Makro- und eingebaute Flags, unbekannte Attribute und externe Verknüpfungsteile bei
Behoben
- Slot-Syntax externer definierter Namen wie
=[1]!RemoteNamelöst nun über die deklarierte Arbeitsmappenverknüpfung auf, und abhängige Formeln behalten den resultierenden Excel-Fehlerwert bei der Neuberechnung
Version 2.361.35
Hinzugefügt
TXLSWorkbookWorkspace.Recalculatewertet registrierte Formelknoten klassischer XLS-, XLSX- und ODS-Arbeitsmappen nun in einem arbeitsmappenübergreifenden topologischen Durchlauf aus, mit Erkennung stark zusammenhängender Komponenten und Weitergabe geänderter GenerationenTXLSWorkspaceRecalcResultmeldet Graph-Wiederverwendung, geänderte und ausgewertete Knoten, Zyklen, blockierte Abhängige, Ungültigmachungen sowie Treffer und Fehlschläge im Laufzeit-Cache
Geändert
- Der Arbeitsbereich behält seinen Abhängigkeitsgraphen, bis Registrierungen oder die Formeltopologie sich ändern, während gewöhnliche Wertänderungen nur die betroffenen Arbeitsmappenknoten und deren transitive Abhängige als geändert markieren
- Wiederholte Lesezugriffe auf externe Zellen in einem Berechnungsdurchlauf teilen sich einen exakten Cache über Arbeitsmappe, Arbeitsblatt, Zeile und Spalte, der vor jeder geplanten Formelaktualisierung ungültig gemacht wird
Behoben
- Bidirektionale Verknüpfungen zwischen Arbeitsmappen werden nicht länger als zirkulär behandelt, es sei denn, der Formelzellen-Graph enthält einen echten Zyklus; Zyklusmitglieder und deren blockierte Abhängige werden ungültig gemacht, statt veraltete zwischengespeicherte Werte zurückzugeben
- Eine fehlgeschlagene oder zyklusbedingt ungültig gemachte Arbeitsbereichsitzung behält nun den engine-lokalen Änderungszustand, sodass eine spätere Arbeitsmappen-Neuberechnung unfertige Formeln erneut versucht, statt einen teilweisen Durchlauf als vollständig zu behandeln
Version 2.361.34
Hinzugefügt
TXLSWorkbookWorkspace.BuildDependencyGrapherstellt nun einen Abhängigkeitsgraphen über registrierte klassische XLS-, XLSX- und ODS-Arbeitsmappen hinweg und behält dabei Arbeitsmappen-, Arbeitsblatt-, Zellen-, rechteckige Bereichs- sowie bereichsbezogene definierte-Namen-IdentitätenTXLSWorkspaceDepGraphbietet Formelknoten-, Verweis-, Kanten-, Zellenabhängigkeits- und definierte-Namen-Abhängigkeitsabfragen sowie Kandidatenprüf-Diagnosen zur Leistungsüberprüfung
Geändert
- Große Formelbereiche bleiben kompakte Intervalle, statt sich in einzelne Zellen auszudehnen, während Zeilenintervallbäume sowohl die Suche nach Abhängigen als auch den Kantenaufbau beschneiden, ohne gepackte Arbeitsblattwerte zu materialisieren
- Lokale definierte Namen behalten sowohl ihre symbolische Abhängigkeit als auch statisch aufgelöste Zell- oder Bereichsabhängigkeiten, während externe definierte Namen ihren deklarierten Slot in der externen Arbeitsmappe, ihren Namen und ihren Arbeitsblattbereich bewahren
Behoben
- Gewöhnliche definierte Namen werden nicht mehr gelöscht, während der Formelparser auf ein optionales Präfix einer externen Arbeitsmappe prüft
Version 2.361.33
Hinzugefügt
TXLSWorkbookWorkspace.OnLoadWorkbookkann nun über eine vom Aufrufer gesteuerte Richtlinie eine externe Arbeitsmappe höchstens einmal pro normalisierter Identität anfordern, währendResolveWithLoadertypisierte Diagnosen für nicht gefunden, Fehler, Zyklus und Ressourcengrenzen meldetMaxLoadDepth,MaxWorkbookCountundResetLoadAttemptsbieten explizite Grenzen und Wiederholungssteuerung für das Laden externer Arbeitsmappen
Geändert
- Gleichzeitige Anforderungen externer Arbeitsmappen teilen sich nun ein laufendes Ladeergebnis, und verschachtelter Wiedereintritt wird abgelehnt, ohne in einem threadübergreifenden Ladezyklus zu warten; der Standard-Arbeitsbereich führt weiterhin keine Dateisystem- oder Netzwerkzugriffe aus
Version 2.361.32
Hinzugefügt
- Klassische XLS-Arbeitsmappen legen nun
CreateWorkspaceWorkbook,RegisterExternalWorkbook,UnregisterExternalWorkbookundExternalWorkspaceoffen, sodass klassische, XLSX- und ODS-Arbeitsmappen externe Formelwerte über einen Engine-unabhängigen Arbeitsbereich bereitstellen können - Externe Verknüpfungs-Caches klassischer XLS-Dateien dekodieren Zahlen-, Zeichenfolgen-, Boolean-, Fehler- und Leerwerte aus typisierten XCT- und CRN-Datensätzen nun in eine dünn besetzte Suche mit konstanter Zeit, ohne Arbeitsblätter zu materialisieren
Geändert
- Die externe Formelauswertung löst Arbeitsblattnamen nun vor positionellen Rückfalloptionen auf und liest konsequent zuerst eine explizit registrierte Live-Arbeitsmappe, dann einen typisierten Datei-Cache, und gibt anschließend
#REF!zurück, während zerstörte Registrierungen widerrufen werden, ohne impliziten Datei- oder Netzwerkzugriff - In Anführungszeichen gesetzte externe Arbeitsmappen-Identitäten können URI-Schemata, Windows-Laufwerksbuchstaben und andere Doppelpunkte enthalten, ohne für einen dreidimensionalen Arbeitsblattbereichs-Trenner gehalten zu werden, sodass ODF-IRIs externer Quellen beim Formelimport intakt bleiben
Version 2.361.31
Hinzugefügt
TXLSWorkbookWorkspace,IXLSWorkspaceWorkbookundTXLSXWorkbook.CreateWorkspaceWorkbookbieten eine thread-sichere Grundlage für externe Arbeitsmappen-Identitäten und Registrierungen mit explizitem Auflösungsstatus, Generationen-Verfolgung und widerrufbaren Arbeitsmappen-Adaptern
Geändert
TXLSXWorkbook.RegisterExternalWorkbookbewahrt nun Pfade und Erweiterungen, löst relative Beziehungsziele gegen die besitzende Arbeitsmappe auf, weist mehrdeutige Aliase oder Ziele mit gleichem Basisnamen zurück, statt stillschweigend eines zu wählen, widerruft Registrierungen, wenn eine Ziel-Arbeitsmappe zerstört wird, und behält den typisierten Fallback des externen Verknüpfungs-Caches ohne impliziten Datei- oder Netzwerkzugriff
Version 2.361.30
Hinzugefügt
- Schreibgeschützte Arbeitsmappenansichten klassischer und XLSX-Dateien können Formeln nun bei Bedarf über
xlsvEvaluateFormulasauswerten und das unabhängige Ergebnis überFormulaEvaluationmelden, ohne gespeicherte Formel-Caches zu ersetzen
Geändert
- Gleichzeitige schreibgeschützte Ansichten isolieren nun Formel-Rekursionsflags, skalare Ergebnisse, kompilierte XLSX-Formeln und Array-Matrizen, während externe XLSX-Formeln nur dateilokale externe Verknüpfungs-Caches verwenden und niemals Live-Arbeitsmappen-Registrierungen dereferenzieren
Behoben
- Zwischengespeicherte Werte externer XLSX-Verknüpfungen lösen nun den 1-basierten Arbeitsblattindex externer XTI-Datensätze zum richtigen 0-basierten Eintrag des zwischengespeicherten Blatts auf
Version 2.361.29
Hinzugefügt
- XLSX-Arbeitsmappen legen nun
IXLSXWorkbookOwner.CreateReadOnlyViewoffen, mit ansichtslokalen aktiven Blättern, wertbasierten materialisierten und gepackten Zell-Snapshots, zwischengespeicherten Formelergebnissen, optionaler Formeltext-Ausgabe, sicherer Freigabereihenfolge von Besitzer oder Ansicht und Fail-fast-Schreibausschluss
Geändert
- Schreibgeschützte XLSX-Ansichten verwenden nur lokal gespeicherte externe Formel-Caches und dereferenzieren niemals schwache Live-Arbeitsmappen-Registrierungen
Version 2.361.28
Hinzugefügt
- Klassische Arbeitsmappen legen nun
CreateReadOnlyViewundIXLSReadOnlyWorkbookViewfür Ansichten mit konstanter Zugriffszeit auf ein gemeinsames Modell offen, mit unabhängigen aktiven Blättern, wertbasierten Zell-Snapshots, zwischengespeicherten Formelergebnissen, optionaler Formeltext-Ausgabe, referenzgezählter Besitzer-Lebensdauer und Fail-fast-Schreibausschluss
Version 2.361.27
Hinzugefügt
- Klassische, XLSX- und ODS-Arbeitsmappen legen nun
CreateFormulaCacheReaderund das gemeinsameIXLSFormulaCacheReader-Interface für Engine-unabhängige Formel-Cache-Inspektion mit sicherer Lebensdauer-Ungültigmachung offen
Geändert
- Die Inspektion gemeinsamer Formel-Caches bewahrt nun das unabhängig gespeicherte Ergebnis jedes Mitglieds, sodass ein Nachfolger ohne zwischengespeicherten Wert fehlend meldet, statt den Wert des Wurzelmitglieds zu übernehmen
Version 2.361.26
Hinzugefügt
TXLSXWorkbook.TryGetCachedFormulaValuemeldet nun Vorhandensein, Herkunft und Wertart des XLSX- und ODS-Formel-Caches, ohne zu berechnen oder die Arbeitsmappe zu verändern
Behoben
- XLSX- und ODS-Formel-Caches bewahren nun fehlende und explizit leere Ergebnisse, leere Zeichenfolgen, Boolean false, numerische Null, typisierte Fehler und explizite Datumsangaben über Speichern und erneutes Öffnen hinweg, während geänderte Formeln keine veralteten zwischengespeicherten Ergebnisse mehr serialisieren
Version 2.361.25
Hinzugefügt
- Klassische Arbeitsmappen legen nun
TryGetCachedFormulaValuemit expliziter Cache-Präsenz, Herkunft und Wertart offen, sodass ein gespeichertes Formelergebnis ohne Berechnung, Benutzerfunktions-Callbacks, Token-Dekompilierung oder Arbeitsmappenänderung gelesen werden kann
Behoben
- Boolean- und Fehler-Caches klassischer XLS-Formeln verwenden nun das vorgegebene BIFF-Payload-Byte in gewöhnlichen und gemeinsamen Formeln, und geladene Fehlerergebnisse bleiben über Speichern und erneutes Öffnen hinweg typisierte
varError-Werte
Version 2.361.24
Hinzugefügt
- Klassische und XLSX-Arbeitsmappen bieten nun einen
CreateLoadedCellCursor(Boolean)-Overload, der unabhängig formatierte gespeicherte Leerzellen alsxlckBlank-Snapshots einschließen kann
Geändert
- Die optionale Leerzellen-Durchquerung bewahrt die Reihenfolge von Arbeitsblatt, Zeile und Spalte, hält gepackte XLSX-Speicherung komprimiert und schließt Koordinaten geerbter Formatierung sowie unformatierte Empty- und Null-Platzhalter aus
Version 2.361.23
Hinzugefügt
- XLSX-Arbeitsmappen legen nun
TXLSXWorkbook.CreateLoadedCellCursorfür zeilenweise Durchquerung gespeicherter Wert- und Formelzellen über Arbeitsblätter hinweg im konstanten Zustand offen TXLSLoadedCellKindumfasst nunxlckError, sodass gespeicherte XLSX-Fehlerwerte ihre eigene Wertart behalten
Geändert
- XLSX-Cursor durchqueren materialisierte dünn besetzte Zeilenblöcke oder gepackte Speicherung direkt, ohne Zellen zu sortieren oder gepackte Werte zu materialisieren, und Formel-Snapshots geben den aktuell gespeicherten Cache-Wert ohne Neuberechnung zurück
- Arbeitsmappenweite Topologieänderungen und die Freigabe der Arbeitsmappe machen XLSX-Cursor über eine gemeinsame Lebensdauer-Leihgabe ungültig, während Bearbeitungen bestehender Zellinhalte die Durchquerung gültig halten und erfasste Snapshots im Besitz bleiben
Version 2.361.22
Hinzugefügt
- Klassische Arbeitsmappen legen nun
IXLSWorkbook.CreateLoadedCellCursorfür zeilenweise Durchquerung gespeicherter Wert- und Formelzellen über Arbeitsblätter hinweg im konstanten Zustand offen TXLSLoadedCellSnapshotgibt eigene Blattidentität, 1-basierte Koordinaten, Stil, Wertart, Wert und Formeltext zurück, ohne interne Zellobjekte offenzulegen
Geändert
- Cursor für geladene Zellen schlagen sofort fehl, wenn sich die Zelltopologie ändert, die Arbeitsblattsammlung verändert wird oder das Arbeitsmappenmodell ersetzt wird, während Bearbeitungen bestehender Zellinhalte die Durchquerung gültig halten und zuvor erfasste Snapshots unverändert lassen
Version 2.361.21
Hinzugefügt
- Zellenspeicher und Arbeitsblattsammlungen klassischer und XLSX-Arbeitsblätter legen nun unabhängige strukturelle Generierungszähler für eine sichere lang laufende Durchquerung offen
XlsValidateStructureGenerationundEXLSLoadedCellCursorInvalidatedbieten einen gemeinsamen Fail-fast-Validierungsvertrag für Leser geladener Zellen
Geändert
- Zellenerstellung, -entfernung, -löschung, Koordinatenumordnung, Übergänge der gepackten Speicherung, der Neuaufbau von Indizes sowie das Hinzufügen, Löschen oder Verschieben von Arbeitsblättern erhöhen die jeweils relevante Generation, während Bearbeitungen des Inhalts bestehender Zellen, das Umbenennen oder Aktivieren von Arbeitsblättern und No-op-Änderungen sie stabil halten
Version 2.361.20
Hinzugefügt
TXLSForwardReaderakzeptiert nun ODS-Eingaben über dieselbe Callback-Oberfläche wie XLS, XLSX, CSV und TSVPeakRowBufferedBytesundSheetPassesStartedlegen den maximalen Arbeitssatz logischer Zeilen des gemeinsamen Zeilen-Backends und die Anzahl erfolgreicher Arbeitsblattdurchläufe offen
Geändert
TXLSForwardReaderadaptiert nunTXLSRowCursorfür jedes unterstützte Format und teilt Zeilengrenzen, Spaltenprojektion, Formelzustand, Rich-Text, Passwort, übersprungene Datensätze und Stream-Positionsverhalten, statt separate Scan-Pfade zu pflegen- Blattindizes des Forward-Readers sind durchgängig 1-basiert, und durch
OnSheetübersprungene Arbeitsblätter werden nicht geöffnet oder dekomprimiert
Version 2.361.19
Hinzugefügt
TXLSRowCursorlegt nun explizite Zustände für geschlossen, vor dem Ersten, aktiv, EOF, abgebrochen und fehlerhaft offen, dazu eine idempotenteCancel-Methode, die den aktiven Arbeitsblatt-Stream freigibt, ohne die Quelle zu schließenCurrentRowViewbietet eine generationsgeprüfte geliehene Ansicht der aktuellen Zeile, ohne ihr Zellarray zu duplizieren; Weiterbewegen, Blattauswahl, Abbrechen, Schließen oder Zerstören des Cursors macht frühere Ansichten mitEXLSRowCursorViewInvalidatedungültig- Stream-Öffnungen akzeptieren nun
xsoBorrowedoderxsoOwnedund übertragen den Besitz erst nach erfolgreicher Öffnung, undPeakRowBufferedBytesmeldet den geschätzten größten logischen Zeilenpuffer seit der letzten Öffnung
Geändert
- Fehler bei Arbeitsblattteilen und Durchlaufstart bewahren nun ihre ursprüngliche Leseausnahme und versetzen den Cursor in den fehlerhaften Zustand, statt als Abbruch oder normales EOF zu erscheinen; die explizite Auswahl eines Blatts setzt den Durchlauf für einen Wiederholungsversuch zurück
Version 2.361.18
Hinzugefügt
TXLSDirectCellundTXLSRowCursorCelllegen nunHasFormulaundFormulaTextAvailableoffen und unterscheiden einfache Werte, Formeln mit verfügbarem Text und Formeln, deren Text unterdrückt oder nicht verfügbar istTXLSDirectReader,TXLSForwardReaderundTXLSRowCursorbieten nunIncludeFormulaText; die Deaktivierung bewahrt zwischengespeicherte Werte, Koordinaten, Stile und Formelpräsenz und vermeidet die Ansammlung von Formeltext in XLSX- und ODS-Streams
Geändert
- Zeilengrenzen und Spaltenprojektion werden nun in die XLS-, XLSX-, ODS-, CSV- und TSV-Backends übernommen, bevor Werte, Formeln und Rich-Text zugewiesen werden; wiederholte ODS-Spaltenspannen springen direkt zwischen ausgewählten Spalten, und wiederholte Zeilenblöcke werden auf den angeforderten Bereich beschnitten
- Optionen des Zeilen-Cursor-Durchlaufs sind eingefroren, während ein Arbeitsblattdurchlauf aktiv ist, und werden nach EOF, Blattauswahl oder Schließen wieder änderbar, sodass ein Durchlauf keine inkompatiblen Filter- oder Dekodierungseinstellungen mischt
Version 2.361.17
Hinzugefügt
TXLSRowCursoröffnet nun ODS-Dateien und Streams im Besitz des Aufrufers, erkennt ODS-Pakete automatisch am Mimetype oder ancontent.xml, lädt Arbeitsblattnamen vorab und streamt die ausgewählte Tabelle überFindFirstundFindNext, ohne eine Arbeitsmappe zu materialisieren
Geändert
- Die ODS-Zeilendurchquerung expandiert wiederholte Zeilen und Spalten verzögert, lässt überdeckte Zellen als eigenständige Werte weg, bewahrt formatierte Leerzellen und zwischengespeicherte Formelwerte, stellt geliehene Stream-Positionen wieder her und meldet ungültige oder rasterbegrenzte Wiederholungszählungen über
OnSkippedRecord
Version 2.361.16
Hinzugefügt
TXLSRowCursorstreamt nun CSV- und TSV-Dateien oder Streams im Besitz des Aufrufers, mit UTF-8- und UTF-16-BOM-Erkennung, mehrzeiligen Datensätzen in Anführungszeichen, escapten Anführungszeichen, Erkennung von Komma-, Semikolon-, Tabulator- oder Pipe-Trennern, optionaler Trennzeichen-Überschreibung sowie optionaler Erkennung von Zahlen-, ISO-Datums-, Boolean- und Fehlertypen
Geändert
TXLSForwardReaderundTXLSRowCursorteilen sich nun ein pausierbares Textzeilen-Backend und bewahren identische Callback- und Pull-Ergebnisse, während die Variant-, Formel- und Rich-Text-Payloads der vorherigen Zeile vor dem Weitergehen freigegeben werden
Version 2.361.15
Hinzugefügt
TXLSRowCursoröffnet nun klassische.xls-Arbeitsmappen aus Dateien oder Streams, erkennt BIFF-Compound-Container automatisch und gibt zwischengespeicherte numerische oder Zeichenfolgen-Formelergebnisse sowie gespeicherteBlank- undMulBlank-Zellen zurück, während nur die aktuelle logische Zeile vorgehalten wird
Geändert
Open-Overloads des Zeilen-Cursors akzeptieren ein optionalesTXLSForwardFormat; Dateiöffnungen besitzen ihren internen BIFF-Stream, Stream-Öffnungen leihen den Stream des Aufrufers und stellen dessen Ausgangsposition beiClosewieder her, und wiederholteFindFirst-Durchläufe springen direkt zum ausgewählten Arbeitsblatt
Version 2.361.14
Hinzugefügt
- Die Formelberechnung unterstützt nun
ISFORMULAfür einzelne Zellen, blattübergreifende Verweise und rechteckige Bereiche und gibt bei Bereichseingaben ein Boolean-Array gleicher Form zurück, ohne die referenzierten Formeln auszuwerten
Geändert
- Prüfungen auf Formelpräsenz unterscheiden gewöhnliche Werte und Leerzellen, Mitglieder gemeinsamer Formeln, Mitglieder klassischer und XLSX-Matrixformeln, dynamische Array-Anker und dynamische Spill-Nachfolger; erzeugte Arrays sind durch
FormulaArrayMemoryLimitbegrenzt - XLSX speichert
ISFORMULAmit dem_xlfn.-Präfix, ODS schreibt die standardmäßige OpenFormula-Schreibweise, und klassische XLS-Speicherungen weisen die nicht unterstützte Zukunftsfunktion zurück, ohne einen unvollständigen Stream festzuschreiben
Behoben
- Das Parsen von Formeltext erkennt nun die sieben standardmäßigen Excel-Fehlerliterale, sodass
#REF!durch rein referenzierende Funktionen hindurch weitergereicht werden kann, während ein definierter Name, der zu einem Skalar auflöst,#VALUE!statt#NAME?meldet
Version 2.361.13
Hinzugefügt
- Die Formelberechnung unterstützt nun
UNICHARüber den gesamten Unicode-Skalarbereich, einschließlich ergänzender und privat genutzter Zeichen, mit Excel-kompatiblen Fehlern für Null, Werte außerhalb des Bereichs, Surrogat-Codepunkte und Unicode-Noncharacters - Die Formelberechnung unterstützt nun
BAHTTEXTmit thailändischem Baht- und Satang-Text, kaufmännischer Rundung von Null weg auf zwei Nachkommastellen, negativen Werten, wiederholten Millionengruppen und endlichen Eingaben in wissenschaftlicher Notation
Geändert
UNICHARundBAHTTEXTmappen Bereiche und erzeugte Arrays elementweise und bewahren dabei lokale Fehler; XLSX speichertUNICHARmit seinem Zukunftsfunktions-Präfix, währendBAHTTEXTin XLS und XLSX eine Standardfunktion ohne Präfix bleibt
Version 2.361.12
Hinzugefügt
- Die Formelberechnung unterstützt nun
COMBINAundPERMUTATIONAmit abgeschnittenen nicht-negativen Argumenten, geprüftem Überlauf, Singleton-Array-Broadcasting und elementweisen Fehlern, dazuMUNIT-Einheitsmatrizen ohne feste Dimensionsgrenze - Klassische und XLSX-Arbeitsmappen bieten
FormulaArrayMemoryLimitmit einem Standardwert von 64 MiB, um erzeugte Formelarray-Payloads zu begrenzen, einschließlich paralleler XLSX-Neuberechnungs-Worker
Geändert
PERMUTATIONAverwendet logarithmische Potenzierung,COMBINAverkürzt seine multiplikative Rekurrenz, undMUNITalloziert eine kompakte numerische Matrix, während nur ihre Diagonale geschrieben wird
Behoben
- Numerische Formelarrays werden nicht länger als skalare Zahlen klassifiziert, und neu erstellte klassische Arbeitsmappen wenden BIFF97-Rastergrenzen bereits vor dem ersten Speichern während der Formelberechnung an
Version 2.361.11
Hinzugefügt
- Die Formelberechnung unterstützt nun
COT,ACOT,COTH,ACOTH,CSC,CSCH,SECundSECHmit Regeln für Hauptwerte, Definitionsbereiche, Singularitäten, endliche Eingaben und große Argumente über skalare und Broadcast-Array-Operanden hinweg
Behoben
- Zugeordnete Formelfunktionen bewahren direkte skalare Fehlschläge nun als Tabellenkalkulations-Fehlerwerte, verwenden abbruchresistente Kehrwert- und Exponentialschwanz-Zweige für große gültige Eingaben, schreiben exakte
_xlfn.-Namen ohne_xlws.und weisen nicht unterstützte klassische BIFF-Formeln sauber zurück
Version 2.361.10
Hinzugefügt
- Die Formelberechnung unterstützt nun
CEILING.MATHundFLOOR.MATHmit ausgelassenen Signifikanz- und Modusargumenten, vorzeichenunabhängiger Signifikanz, präzisen Grenzen an dezimalen Vielfachen und den vorgegebenen Richtungen des Modus für negative Zahlen
Geändert
- Array-Funktionen auf Formelebene können sich nun einen linearen Element-Mapper teilen, mit Singleton-Zeilen- und Singleton-Spalten-Broadcasting, einmaligen Bereichs-Snapshots und elementweisen Konvertierungs- oder Berechnungsfehlern; XLSX verwendet das
_xlfn.-Präfix für beide neuen Funktionen, während klassische BIFF-Speicherungen nicht unterstützte Formeln sauber zurückweisen
Version 2.361.9
Hinzugefügt
- Die Formelberechnung unterstützt nun
SORTBYmit stabiler Mehrschlüssel-Sortierung nach Zeilen oder Spalten, unabhängigen Richtungen für aufsteigend oder absteigend, Standardwerten bei ausgelassener Richtung, Bereichs- oder erzeugte-Array-Schlüsseln sowie einmaligen Quellen- und Schlüssel-Snapshots, gefolgt von O(n log n)-Sortierung
Behoben
- Klassische BIFF-Speicherungen schlagen nun sauber fehl, wenn eine Formel nicht darstellbar ist, statt Erfolg zu melden, nachdem ein interner Bezeichner einer Zukunftsfunktion zurückgewiesen wurde, während XLSX
SORTBYmit_xlfn.schreibt und niemals_xlws.hinzufügt
Version 2.361.8
Geändert
- Der Nullwertanzeige-Modus von Arbeitsblättern verwendet nun eine einzige Entscheidung auf Rohwertbasis über Arbeitsmappen-Viewer, Vorschau, Druck, Bitmap-, EMF-, SVG-, PDF-, klassische HTML- und XLSX-HTML-Pfade hinweg; eine tatsächliche numerische Null wird vor Zahlenformatierung und Textmessung verborgen, während der Formelanzeige-Modus Vorrang behält
Behoben
- XLSX-Arbeitsblattansichten parsen, schreiben und kopieren den Nullanzeige-Zustand nun über eine einzige Einstellung, behandeln die Datumsbasis 1904 korrekt, bewahren Visualisierungen bedingter Formatierung und Hyperlink-Geometrie für verborgene Nullzellen und lassen gespeicherte Werte, öffentlichen formatierten Text sowie CSV- und ODS-Ausgabe unverändert
Version 2.361.7
Geändert
- Der Formelanzeige-Modus von Arbeitsblättern verwendet nun eine einzige Textentscheidung, die geschützte Zellen berücksichtigt, über Arbeitsmappen-Viewer, Vorschau, Druck, Bitmap-, EMF-, SVG-, PDF-, klassische HTML- und XLSX-HTML-Pfade hinweg; Formeltext verwendet Textausrichtung bei der Standardausrichtung, bewahrt explizite Ausrichtung und erhält eine nicht persistente, doppelte effektive Layoutbreite, ohne in Nachbarzellen hineinzufließen
Behoben
- XLSX-Arbeitsblattansichten akzeptieren nun sowohl
showFormulas="1"als auchshowFormulas="true", bewahren die Einstellung bei Arbeitsblattkopien innerhalb derselben und über Arbeitsmappen hinweg und geben den erforderlichensheetView-Zustand aus, ohne Formel-Caches, CSV-Ausgabe, ODS-Persistenz oder den öffentlichen Vertrag formatierter Werte zu ändern
Version 2.361.6
Geändert
- Externe Arbeitsmappenformeln in XLSX teilen sich nun einen grammatikbewussten Lexer für Arbeitsmappen-Präfixe über
OnlyExternal-Konvertierung, Formeldiagnosen, Berechnungsbindung, arbeitsmappenübergreifendes Kopieren und die Serialisierung erzeugter Formeln hinweg; numerische Verknüpfungs-Slots sind kanonisch, während strukturierte Verweise, Zeichenfolgenliterale, fehlerhafte Indizes und mehrdeutige Dateinamen-Präfixe sicher abgewiesen werden TXLSXExternalLinklegt nun seine Quell-RelationshipId, den 1-basiertenSourceSlotund den typisiertenLinkKindoffen, sodass Einträge von Arbeitsmappen-, DDE-, OLE- und unaufgelösten externen Verweisen geprüft werden können, ohne die Identität aus Sammlungsreihenfolge oder Zieltext abzuleiten
Behoben
- Das Ändern eines XLSX-Ziels einer externen Verknüpfung oder einer Blattliste macht kompilierte externe Formelbindungen nun pro Revision ungültig, statt jede Zelle neu zu durchsuchen, und unveränderte DDE- oder OLE-Verknüpfungsteile ohne Beziehungsdateien bleiben beim Speichern byte-exakt erhalten
Version 2.361.5
Behoben
- Formel-Slots externer Arbeitsmappen in XLSX folgen nun der Dokumentenreihenfolge der externen Verweise in
workbook.xmlstatt der Reihenfolge der Beziehungsdateien; fehlende, unaufgelöste und falsch typisierte Beziehungen behalten leere Slots, sodass sich spätere[N]-Verweise nicht verschieben
Version 2.361.4
Geändert
- Das Einfrieren klassischer XLS-Formeln mit
OnlyExternalklassifiziert nun bewahrte BIFF-Verweise und konvertiert nur bestätigte Formeln externer Arbeitsmappen, während interne, Add-in-, DDE/OLE- und fehlerhafte Verweise Formeln bleiben
Behoben
- Formelergebnisse, die mit einem Gleichheitszeichen oder Apostroph beginnen, bleiben nun während der Wertkonvertierung Literalzeichenfolgen, und Matrixformel-Gruppen werden in einem Snapshot gesichert, bevor eine Wurzel- oder Spill-Formel freigegeben wird
Version 2.361.3
Geändert
- Hilfsverknüpfungen und externe Blattindizes klassischer XLS-Dateien verwenden nun eine begrenzte, typisierte Klassifizierung für Selbst-, Gleiches-Blatt-, Add-in-, externe Arbeitsmappe-, DDE/OLE-, ungenutzte und unbekannte Datensätze
Behoben
- Fehlerhafte Hilfsverknüpfungs-Payloads werden byte-exakt bewahrt, statt als anderer Verknüpfungstyp rekonstruiert zu werden, und abgeschnittene externe Blatttabellen lesen nicht mehr über ihre Datensatzdaten hinaus
Version 2.361.2
Behoben
- Klassische XLS-Formeln lösen nun den 0-basierten XTI-Index in Tokens externer definierter Namen zum richtigen internen Eintrag des externen Blatts auf, einschließlich des ersten Eintrags
Version 2.361.1
Behoben
- Der direkte XLSX-Schreiber gibt das Basis-SpreadsheetML-
showDropDown-Unterdrückungsflag nun nur aus, wennShowDropDowndeaktiviert ist, und bewahrt damit die öffentliche anzeigeorientierte API-Semantik
Version 2.361.0
Hinzugefügt
- Diagrammdatenreihen haben
CategoriesMultiLevelerhalten: Beim Setzen geben sie die Kategorien alsmultiLvlStrRef(hierarchische Achsenbeschriftungen) statt als flache Zeichenfolgenreferenz aus, mit Roundtrip-Wiederherstellung aus gespeicherten Diagrammen
Version 2.360.0
Behoben
- Namenskommentare klassischer XLS-Dateien verwenden nun die korrekte
NAMECMT-Datensatzkennung ($0894); die zuvor verwendete Kennung ($0019) gehört laut den BIFF-Spezifikationen zuWINDOWPROTECT
Hinzugefügt
WindowProtectedbei klassischen Arbeitsmappen überträgt das Fenster-Schutzflag der Arbeitsmappe per Roundtrip durch denWINDOWPROTECT-Datensatz ($0019), wobei roh erfasste Datensatzkörper gewinnen, sofern die Eigenschaft nicht explizit geschrieben wird
Version 2.359.0
Hinzugefügt
- Diagrammdatentabellen legen unabhängige Schalter
showHorzBorder/showVertBorder/showOutlineoffen, statt stets jede Begrenzungslinie zu zeichnen - Liniendiagramme haben Drop-Linien (
HasDropLines) erhalten und gestapelte Balkendiagramme Reihenlinien (HasSeriesLines), beide mit Roundtrip; Datenreihen lassen sich einzeln überLegendDeletedaus der Legende entfernen, während sie weitergezeichnet werden
Version 2.358.0
Hinzugefügt
- Berichtsbänder haben Semantik für festes Verhalten und leere Datensätze erhalten:
EmptyBandPolicybehält, leert oder löscht die Vorlagenzeilen, wenn der Datensatz leer ist (keine unaufgelösten Platzhalter mehr),FixedBandschreibt die Kopien für Formbänder im Overlay-Stil über die darunterliegenden Zeilen, ohne etwas einzufügen, undDeleteLastRowzieht die letzte Kopie zusammen, sodass nachfolgende Inhalte bündig anschließen (Verhalten wie beim X-Bereich)
Version 2.357.0
Hinzugefügt
- Der PDF-Export kann eigenständige OpenType-Schriftarten mit CFF-Umrissen über einen
FontFile3-OpenType-Stream und einenCIDFontType0-Nachfahren einbetten; die Modi Automatisch und Vollständig behalten das komplette Programm, während ein nicht verfügbarer erforderlicher Subset fehlschlägt, bevor die Ausgabe festgeschrieben wird OnGetFontDirectoriesliefert durch Semikolons getrennte Verzeichnisse für eine angefragte Schriftfamilie und einen Schriftstil; akzeptierte Bäume werden einmal rekursiv durchsucht und über interne Schriftmetadaten indexiert, um Fallback-Auflösung aus dem Cache zu ermöglichen
Geändert
- Eingebettete Schriftarten mit OpenType-GPOS- oder Legacy-Kerning-Daten verwenden nun positionierte Glyphenvorschübe für einfachen Text ebenso wie für komplexe Schriften und halten Messung, Umbruch, Ausrichtung und die Glyphenplatzierung im PDF konsistent
Version 2.356.0
Hinzugefügt
- Das Einbetten von PDF-Schriftarten wurde zu einer konfigurierbaren Richtlinie mit vier Modi:
FontEmbeddingwählt das automatische historische Verhalten, erforderliches Subsetting, die Einbettung des vollständigen Programms oder Map-only-Schriftarten, deren Programme entfernt werden, während CID-Zuordnung und ToUnicode-Tabellen erhalten bleiben; PDF/A weist Map-only-Ausgabe zurück - Das
OnFontEmbed-Ereignis wird pro Unicode-Schriftart einmal ausgelöst, bevor Metriken und Glyphenzuordnungen aufgelöst werden, empfängt deren Namen und Dateipfad und kann über den explizitenHandled-Vertrag einen schriftartspezifischen Modus oder Ersatz-Schriftbytes akzeptieren
Version 2.355.0
Hinzugefügt
- Die Neuberechnung klassischer XLS-Dateien verwendet nun einen verzögert aufgebauten Abhängigkeitsgraphen, gibt Eingabeänderungen nur an transitive Abhängige weiter, berechnet volatile Formeln bei jedem Durchlauf neu und wertet Formeln in Abhängigkeitsreihenfolge aus, statt den gesamten dünn besetzten Zell-Heap neu zu durchsuchen
- Zirkuläre Verweise in klassischen XLS-Dateien folgen nun
EnableIteration,MaxIterationsundMaxIterationChange; stark zusammenhängende Komponenten isolieren unabhängige Zyklen, iterieren sie deterministisch und berechnen anschließend die nachgelagerten Formeln - Zugeordnete Dateien in PDF/A-3 haben einen detaillierten
AddAttachment-Overload mit Unicode-Anzeigenamen, Beschreibungen, Änderungszeiten, escapten MIME-Namen, Metadaten zur Bytegröße sowie Source-, Data-, Alternative-, Supplement- oder Unspecified-Beziehungen erhalten TXLSPDFWritererstellt eigenständige PDF-Dokumente ohne Arbeitsmappe, mit expliziten Seitengrößen, mehrseitiger Ausgabe, Rechtecken, Linien, Ellipsen, gemessenem formatiertem Text, Koordinatentransformationen, rechteckigem Clipping und Grafikzustandssteuerung
Geändert
- Das Deaktivieren von
UseFullPrecisionbei klassischen XLS-Dateien rundet zwischengespeicherte Ergebnisse von Formeln und Was-wäre-wenn-Datentabellen nun auf die effektive angezeigte numerische Genauigkeit, bevor abhängige Formeln sie verwenden, einschließlich Prozentformaten und kaufmännischer Rundung von Null weg
Behoben
- Die Neuberechnung klassischer Formeln verwendet nun die nativen 0-basierten Zellkoordinaten, hält Berechnungsfehler aus dem Erfolgs-Cache heraus und bewahrt die Fehlerweitergabe durch abhängige Array-Funktionen
Version 2.354.0
Hinzugefügt
- Diagrammachsen haben die Aufzählung für den Schnittpunktmodus erhalten (
Crosses: autoZero / max / min, ausgegeben alscrosses, wenn kein explizitesCrossesAtgesetzt ist) sowie Achsenstile für Haupt- / Nebenteilstriche (in,out,cross), alles mit Roundtrip AutoTitleDeletedan Diagrammen ersetzt das hart codierte Flag für automatische Titel und unterdrückt den aus den Datenreihen abgeleiteten Titel, wenn es gesetzt ist
Version 2.353.0
Hinzugefügt
- Diagrammdatenreihen haben
Smooth/SmoothSetfür die Darstellung geschwungener Linien sowieMarkerFillColor/MarkerBorderColorfür explizite Markerfarben erhalten; beides bleibt über Speichern und Öffnen erhalten, und der gemeinsame Renderer zeichnet geglättete Segmente als quadratische Kurven und verwendet die Markerfarben
Version 2.352.0
Hinzugefügt
- Die Formatierung des Diagrammbereichs läuft per Roundtrip:
RoundedCorners, explizite Hintergrund- und Randfarben des Diagramms sowie die Hintergrundfarbe der Zeichenfläche bleiben über Speichern und Öffnen erhalten, und der gemeinsame Diagramm-Renderer verwendet die Hintergrund- und Randfarben, statt stets Weiß auf Grau zu zeichnen - Diagrammschutz-Schalter laufen hinter einer gemeinsamen Master-Schaltfläche per Roundtrip:
ProtectionEnabledzusammen mitProtectedChartObjects,ProtectedDataEditing,ProtectedFormatting,ProtectedSelectionundProtectedUserInterfacegibt das OOXML-Elementprotectionaus und parst es
Version 2.351.0
Geändert
- Balken- und Säulendiagramme im gemeinsamen Paginierungsrenderer folgen nun den Layoutoptionen der Diagrammgruppe: GapWidth dimensioniert das Cluster, Overlap verbreitert und zieht benachbarte Balken zusammen, und gestapelte bzw. prozentual gestapelte Gruppierungen akkumulieren einen vollständigen Cluster-Balken pro Kategorie, statt die Datenreihen nebeneinander zu zeichnen
Version 2.350.0
Hinzugefügt
- Das Kopieren von Bereichen zwischen Arbeitsmappen ordnet nun jeden Zellstil wertbasiert in die Schrift-, Füll-, Rahmen-, Zahlenformat-, Ausrichtungs- und Schutz-Pools der Ziel-Arbeitsmappe um, sodass
CopyRangeToundCloneRangeTozwischen zwei geöffneten Arbeitsmappen ihre Formatierung unabhängig von der Pool-Reihenfolge behalten - Klassische XLS-Arbeitsmappen übertragen die integrierten numerischen und Datums-Dokumenteigenschaften per Roundtrip:
CreatedDate,LastSavedDate,RevisionNumberundEditTimeMinutesbleiben über den OLE-SummaryInformation-Stream erhalten, wobei Nullwerte übersprungen werden und ein vollständiges Löschen sie entfernt
Version 2.349.0
Hinzugefügt
- Klassische XLS-Arbeitsmappen legen den Revisions-Schutzstatus der freigegebenen Arbeitsmappe hinter strukturierten Eigenschaften offen:
SharedRevisionProtectedundSharedRevisionPasswordHashlaufen per Roundtrip, während roh erfasste Datensatzkörper aus geparsten Dateien weiterhin gewinnen, sofern die Eigenschaften nicht explizit geschrieben werden - Unterstützung für Berichtsverschlüsselung:
TXLSCompiledReportTemplate.CreateEncryptedöffnet eine kennwortgeschützte Vorlage direkt, undRunToEncryptedFileführt den Bericht aus und schreibt ein ECMA-376-verschlüsseltes Ergebnis in einem einzigen Aufruf
Version 2.348.0
Hinzugefügt
- Einfügeoptionen aus der Zwischenablage für beide Engines:
PasteFromClipboardakzeptiert einen Nur-Werte-Modus (zwischengespeicherte Ergebnisse behalten, Formeln, Formate und Verbünde überspringen) sowie Zeilen-Einfügen- / Spalten-Einfügen-Modi, die vorhandene Inhalte verschieben, bevor der Block abgelegt wird - Forward-Reader melden übersprungene Inhalte: Der direkte Leser, der Zeilen-Cursor und der Forward-Reader bieten
OnSkippedRecord, ausgelöst, wenn ein fehlerhafter Zellverweis übersprungen wird oder ein BIFF-Blattscan bei abgeschnittenen oder nicht passenden Datensätzen abbricht
Version 2.347.0
Hinzugefügt
- Kombinatoren zur Formung von Berichtstabellen:
Filterstreamt passende Zeilen verzögert,Sortführt eine stabile Sortierung nach mehreren Schlüsseln durch, undDistinctbehält die erste Zeile pro Schlüsseltupel - Adapter für Datenquellen:
FromDataSetlegt eine geöffneteTDataSetals Snapshot in einer Berichtstabelle ab (Feldnamen werden zu Spalten, die Datensatzposition wird wiederhergestellt), undFromObjectsbildet published-Eigenschaften beliebiger Objektlisten und Arrays auf Spalten ab - Bidirektionale Berichtsbänder:
RunBidirectionalermöglicht jeder Master-Zeile, ihre eigenen Spalten aus einer zugehörigen Kindtabelle zu befüllen, wodurch gezackte Spaltenlayouts entstehen, bei denen kürzere Zeilen die zusätzlichen Klone leer lassen PreprocessAndRunführt eine Vorlage zweimal aus: Der erste Durchlauf füllt Werte und führt strukturelle Direktiven aus, sodass sich die Vorlage an die Daten anpasst, der zweite Durchlauf kompiliert die umgeformte Arbeitsmappe neu und füllt die verbleibenden Platzhalter
Version 2.346.0
Hinzugefügt
- Berichtsplatzhalter akzeptieren einen Standardwert:
{{name;fallback}}schreibt den Fallback-Text, wenn der Schlüssel fehlt oder leer ist - Berichtsausdrücke haben
dbvalue(table, row, field[, default])unddbcount(table)erhalten, um jede registrierte Datenkontext-Tabelle nach Zeile und Spalte zu lesen, dazutonumber(text)zur Umwandlung von Zeichenfolgen in Zahlen und relative Verweise viaref(rowOffset, colOffset), die Bandkopien folgen; Vorlagen, Runner und Bänder bieten eineDataContext-Eigenschaft - Eine nackte
{{=formula(...)}}-Zelle schreibt nun eine Live-Formel in die Zelle statt reinen Text, und andere nackte Ausdrücke behalten ihren ausgewerteten Typ (Zahlen bleiben numerisch) - Neue strukturelle Berichtsdirektiven:
{{#imgsize zoom=150}}skaliert das an der Direktivenzelle verankerte Bild um,{{#comment text}}hängt einen Zellkommentar an,{{#html <b>bold</b>}}speist ein Fragment in den Rich-Text, und{{#sheetvisible Sheet false}}/{{#deletesheet Sheet}}steuern Sichtbarkeit und Entfernung von Arbeitsblättern
Version 2.345.0
Hinzugefügt
- XLSX-Arbeitsmappen haben eine Neuberechnungsrichtlinie beim Speichern erhalten:
RecalcBeforeSavewählt manuell (Standard), Neuberechnung bei Änderung oder ständige Neuberechnung, wenn eine Datei gespeichert wird RecalcNeededmeldet, ob momentan irgendeine Formelzelle oder erfasste Änderung als geändert gilt, undRecalcCellberechnet die Arbeitsmappe neu und gibt den frisch berechneten Wert einer einzelnen Zelle nach Blatt, Zeile und Spalte zurück
Version 2.344.0
Hinzugefügt
- Berichtsvorlagen unterstützen strukturelle Direktiven im Zelltext:
{{#delete A2}}leert den benannten Bereich,{{#format fmt=0.00 bold fill=FFFF00}}wendet Zahlenformate, Fett, Kursiv, Schrift- und Füllfarben auf die Spalte über der Direktivenzelle an, und{{#aggregate sum A2:A99}}schreibt Formeln im Stil von=SUM(A2:A99)– alles wird ausgeführt, nachdem die Wertplatzhalter gefüllt sind, Direktivenzellen werden anschließend verbraucht, und unbekannte Direktivenverben werden weiterhin als Vorlagendiagnosen gemeldet
Version 2.343.0
Hinzugefügt
- Der ZIP-Schreiber erzeugt ZIP64-Archive: Einträge an oder jenseits der 32-Bit-Größengrenzen reservieren in ihrem lokalen Header ein ZIP64-Extrafeld, wobei die klassischen Felder Sentinel-Werte erhalten, Datensätze des zentralen Verzeichnisses geben 64-Bit-Größen und -Offsets mit erhöhter Version-Needed-Angabe aus, und dem End-of-Central-Directory-Datensatz gehen der ZIP64-EOCD-Datensatz und der Locator voraus, sobald irgendein klassisches Feld erschöpft ist
- Die Obergrenzen für Eintrags- und Archivgröße auf der Schreibseite steigen auf 16 GB bzw. 64 GB; die Schutzvorkehrungen bei der Dekomprimierung auf der Leseseite bleiben unverändert
Version 2.342.0
Hinzugefügt
- Eingebettete Bilder tragen Metadaten zur Barrierefreiheit:
AltTextundAltTextTitlean jedem Bild werden als die Zeichnungsattributedescrundtitleserialisiert und für Arbeitsmappen, die das rohe Anker-XML nicht wiedergeben, wieder in das typisierte Modell geladen
Geändert
- Slicer- und Timeline-Teile durchlaufen die opake Paketschicht bereits verlustfrei per Roundtrip (in dieser Version Ende-zu-Ende verifiziert); der Roundtrip-Vertrag ist nun durch einen Regressionstest abgesichert, der das Öffnen und erneute Speichern von Paketen mit Slicern abdeckt
Version 2.341.0
Hinzugefügt
- Berichts-Runner können die fertige Ausgabe automatisch anpassen:
AutofitModewählt Zeilen-, Spalten- oder beide Durchläufe über jedes Blatt, nachdem alle Ziele angewandt wurden und vor der Serialisierung, undAutofitAdjustmentergänzt optionalen Spielraum oberhalb der gemessenen Größen - Umgebrochene Zeilen erhalten ihre Größe aus der gemessenen Zeilenanzahl gegenüber der Spaltenbreite, sodass mehrzeiliger, von Vorlagen erzeugter Zelltext die Zeile so wachsen lässt, wie es Excels eigener AutoFit täte
Version 2.340.0
Hinzugefügt
- PDF-Exporte können den anfänglichen Viewer-Modus – Lesezeichen, Miniaturen, Vollbild, optionaler Inhalt oder Anlagen – über den Katalogeintrag
/PageModefestlegen - PDF-Exporte können eine Öffnungsaktion definieren, die zu einer gewählten Seite mit einem expliziten Zoomfaktor springt oder beim Laden des Dokuments das Lesezeichen-Panel öffnet
- XMP-Metadaten führen nun
DocumentID- undInstanceID-Bezeichner, einxmpMM:History-Ereignis, Änderungs- und Metadatumsangaben sowie diedc:format-Deklaration, die Archivierungs-Validatoren erwarten
Version 2.339.0
Hinzugefügt
- Eine physische Druckpipeline: Das neue
TXLSPrintDocumentdruckt Arbeitsblätter, Arbeitsmappen oder alle sichtbaren Blätter über das gemeinsame Paginierungsmodell, mit Seitenfenstern, Kopiensortierung, einem Dokumenttitel sowie Ereignissen vor neuer Seite und nach erzeugter Seite - Die Vorschau des Arbeitsmappen-Viewers erhält Zoom-Modi – Seite einpassen, Breite einpassen oder ein expliziter Faktor von 25 % bis 400 % – mit Strg+Mausrad-Zoom, dem Blättern von Seiten per Mausrad und horizontalem Schwenken, wenn die gezoomte Seite das Fenster übersteigt
Version 2.338.0
Hinzugefügt
- Das Diagrammrendering zeichnet nun die Wertachse: Teilstriche und rechtsbündige numerische Beschriftungen am linken Rand, große Gitternetzlinien bei Aktivierung, Skalierung in Anzeigeeinheiten, umgekehrte Ausrichtung und logarithmische Begrenzung
- Datenreihen, die der sekundären Wertachse zugeordnet sind, werden gegen ihre eigene Skala abgebildet, sodass Kombinationsdiagramme unabhängige primäre und sekundäre Größenordnungen behalten
- Blasendiagramme rendern flächenskalierte Blasen, abgeleitet aus der Blasengröße-Spalte, statt fester Markerpunkte
- Diagramme im Speicher lösen ihre Wert-, Kategorie- und Blasenbereiche gegen das besitzende Blatt auf, wenn die Caches leer sind, sodass frisch erstellte Diagramme identisch zu geladenen gerendert werden
- Das Diagrammmodell erhält bearbeitbare Angaben für die Lochgröße von Ringdiagrammen, den Winkel des ersten Segments, den Netzstil und den Typ der Torte-aus-Torte-Darstellung, Aufteilungsposition, Aufteilungsmodus, die Größe der sekundären Zeichenfläche und die Abstandsbreite, alles persistent über Speichern und Laden
Behoben
- Kategoriediagramme, deren Punkte zwar Werte, aber keine numerischen Kategorien tragen, brechen das Rendering nicht mehr mit einem Platzhalter ab, was zuvor Teilstriche, Gitternetzlinien und die Datenreihen-Ausgabe für jedes Säulen-, Balken- und Liniendiagramm unterdrückte
Version 2.337.0
Hinzugefügt
- Die paginierte Ausgabe kann Zellkommentare als Auflistung am Ende rendern, über den neuen
PrintComments-Modus am SVG-Exporter und Paginierungsmodell: Zelladresse, Autor und Text erscheinen unter der letzten Datenzeile des Blatts - Benannte Zeichnungsobjekte werden über
ExportObjectAsPNGals PNG-Bilder mit der konfigurierten DPI und Skalierung exportiert, mit einem nur messendenGetObjectSize-Gegenstück, das die Punktdimensionen des Objekts ohne Rendering zurückgibt - Anker von Textformen außerhalb des benutzten Bereichs erweitern nun die bedruckte Fläche, so wie es Diagramme und Bilder bereits taten
Geändert
- Der Paginierungsrenderer legt aufgelöste Zellenschriftarten pro Durchlauf im Cache ab und merkt sich wiederholte Textmessungen, wodurch redundante Schrift-Pool-Lesezugriffe und GDI-Messaufrufe aus Shrink-to-fit-Schleifen und Wortumbruch entfallen
Version 2.336.0
Hinzugefügt
- Die Rotation von Zelltext wird nun in Seitenbild-, SVG-, Druck- und Vorschauausgabe gerendert: Winkel von 1–90 Grad gegen und im Uhrzeigersinn rotieren um den Zellmittelpunkt, und die 255-stapelnde Form gibt einen Buchstaben pro Zeile aus
- Tief- und hochgestellte Zellen rendern mit verschobener Grundlinie und verringerter Glyphengröße, statt ihre vertikale Ausrichtung zu verlieren
- Kopf- und Fußzeilenabschnitte beachten ihre
&nn-Punktgrößen- und&K-Farbformatcodes in jeder paginierungsgesteuerten Ausgabe - Spaltenbreiten in paginierter Ausgabe leiten sich aus der gemessenen maximalen Ziffernbreite der Normal-Schriftart der Arbeitsmappe ab, sodass Arbeitsmappen auf Basis anderer Schriftarten als Calibri 11 mit Excel-genauen Spaltengrenzen paginieren
- Arbeitsblätter mit einer benutzerdefinierten klassischen Gitterfarbe rendern ihre Gitternetzlinien in diesem Paletteneintrag statt im festen grauen Standard
Version 2.335.0
Hinzugefügt
- Etwa siebzig klassische Arbeitsblattfunktionen werden nun zusätzlich zum Parsen auch ausgewertet: die Gruppe Mathematik und Trigonometrie
ATAN2 ASIN ACOS SINH COSH TANH ASINH ACOSH ATANH EVEN ODD, die Gruppe Datum und UhrzeitTIME HOUR MINUTE SECOND DATEVALUE TIMEVALUE DAYS360, die FinanzgruppeMIRR IRR IPMT PPMT DB,TRANSPOSE TYPE N ADDRESS ROMAN HYPERLINK MAXA MINAsowie die Schreibweisen vor 2010 der Verteilungs- und Statistikfamilie wieNORMSDIST TDIST CHIDIST FDIST POISSON QUARTILE PERCENTILE PERCENTRANK COVAR CHITEST GAMMALN, die an die Implementierungen mit Punktnamen weiterleiten, die ihre Argumentlisten teilen
Behoben
- Legacy-Formen der Normalverteilungs-CDF mit einem Argument wie
NORMSDISTberechneten eine falsch skalierte Näherung der Fehlerfunktion MIRRverzinst positive Cashflows mit einem um eins versetzten Periodenexponenten, wodurch Ergebnisse von den Excel-Werten abwichen
Version 2.334.0
Hinzugefügt
- Platzhalter in Berichtsbändern, die aus einem einzelnen Wertfeld bestehen, schreiben nun den Rohdatentyp in die Zielzelle: Zahlen bleiben numerisch, Datumswerte bleiben Datumszellen und erhalten das Standard-Datumsformat, wenn die Zelle auf Standard steht, und Booleans behalten ihren Zelltyp, sodass nachgelagerte SUM-, Sortier- und Diagrammverweise in erzeugten Berichten funktionieren
- Benutzerdefinierte Tabellenstile haben den vollständigen Abschnittssatz erhalten, einschließlich Pivot-Teilergebnis-, Zwischenüberschriften-, Leerzeilen- und Seitenfeld-Abschnitten, mit abschnittsspezifischem Schriftartnamen, Größe, Kursiv, Streifengröße und Rahmen an vier Seiten über
SetSectionEx, dazupivot/table-Flags, die ArbeitsmappeneigenschaftenDefaultTableStyleName/DefaultPivotStyleNamesowie einen vollständigen Lese-Roundtrip von Stilen, Abschnitten und dxf-Attributen - Das Öffnen einer verschlüsselten XLSX-Arbeitsmappe ohne Kennwort löst nun
TXLSXWorkbook.OnPasswordmit demselben Wiederholungsvertrag wie die klassische Engine aus, sodass GUI-Kennwortabfragen möglich sind, ohne im Voraus zu wissen, dass die Datei verschlüsselt ist - Das Speichern klassischer BIFF5-Arbeitsmappen mit Kennwort wendet nun XOR-Verschleierung an, und BIFF8-Arbeitsmappen können über
EncryptionTypeStandard-RC4 wählen, womit die klassische Verschlüsselungsmatrix neben dem bestehenden RC4-CryptoAPI-Standard vervollständigt wird - Die Textdarstellung von Arbeitsblättern in Seitenbild-, SVG-, Druck- und Vorschauausgabe beachtet nun vertikale Ausrichtung und WrapText-Zeilenumbruch mit gierigem Umbruch, statt umgebrochene Zellen auf eine einzelne zentrierte Zeile abzuschneiden
Behoben
- Fehlerzellen zeigen nun ihr Excel-Fehlerliteral wie #DIV/0! oder #REF! in jedem Darstellungspfad an, statt eines undefinierten leeren Texts
- Abschnitte benutzerdefinierter Tabellenstile werden in der Schemaform
tableStyleElementgeschrieben, damit Excel den Stil erkennt, und eine Abschnitts-Schriftfarbe verwirft ihre Fett-Einstellung nicht mehr - Snapshots von Berichtsbändern behalten jeden gebundenen Spaltenwert, wenn ein Band über seine anfängliche Kapazität hinauswächst
Version 2.333.0
Hinzugefügt
TXLSPDFSignature.CertificationPolicykann eine DocMDP-Zertifizierungssignatur erstellen, die keine Änderungen, das Ausfüllen und Signieren von Formularen oder das Ausfüllen, Signieren und Annotieren erlaubt; zertifizierte Kataloge verweisen über/Permsauf die Signatur, gewöhnliche zertifizierte Ausgabe verwendet PDF 1.5, und inkompatible PDF/A-1-Zertifizierung wird zurückgewiesen, bevor der Zielstream geändert wird
Version 2.332.0
Geändert
- Automatisches getagtes PDF gibt nun eine vollständige Tabellenstruktur aus, mit Zeilen, semantischen Kopf- und Datenzellen, dichten Marked-Content-Bezeichnern pro Seite, exakten Elternbaum-Zuordnungen, Zeilen- und Spaltenspannen verbundener Zellen sowie Artefakt-Isolation für Seitenverzierung, Diagramme, Bilder, Kopf- und Fußzeilen
Behoben
- Die Wiederverwendung eines PDF-Exporteurs leert nun binäre Objektplätze zwischen Dokumenten, wodurch verhindert wird, dass ein ICC-Profil, ein Bild oder ein anderer Stream aus einem früheren Export ein neu zugewiesenes Objekt ersetzt, wenn sich die Objektnummerierung ändert
Version 2.331.0
Hinzugefügt
- Eine vereinheitlichte XLSX-Zeichnungsfassade legt gemischte Bild-, Diagramm-, Textfeld-, beibehaltene Anker- und Gruppenreihenfolge offen, mit Vorwärts-, Rückwärts-, Vorder-, Hinter-, transformierungsbewussten Gruppen- sowie Speichern-Neuöffnen-Gruppenaufhebungsoperationen, die Zeichnungsbeziehungen beibehalten
- Benannte Stile unterstützen automatische oder explizite verknüpfte Formatteile unter Beibehaltung lokaler Überschreibungen, und alle 60 integrierten hellen, mittleren und dunklen Tabellenstile werden über die gemeinsamen HTML-, PDF-, Bild-, Vorschau- und Viewer-Formatierungspfade aufgelöst
TXLSPDFBookmarkunterstützt hierarchische Unicode-Lesezeichen, Geschwister- und Kindbeziehungen, Farben, fette oder kursive Titel sowie erweiterte oder eingeklappte NachfolgerTXLSPageImageExporter.ExportAllAsTiffschreibt ausgewählte Seiten in einen Stream oder eine Datei als ein LZW-komprimiertes mehrseitiges TIFF mit Fortschritt, Abbruch und atomarem Dateiaustausch- Klassische XLS-Öffnungen können nach den globalen Metadaten anhalten oder direkt zu ausgewählten Arbeitsblättern über validierte
BOUNDSHEET-Offsets springen, einschließlich Neupositionierung im verschlüsselten Stream TXLSFormatSnapshoterfasst ein vollständiges klassisches Zellformat unabhängig von seiner Quellarbeitsmappe, undIXLSRange.ApplyFormatwendet es auf Zell-, Zeilen- oder Spaltenbereiche an- Kompatible zeilenweise typisierte XLSX-Massen-Schreibvorgänge verwenden gepackte RLE-Speicherung mit öffentlichen gepackten Zell- und Byte-Statistiken sowie transparenter einmaliger Materialisierung für stabile Objekt-Handles
Geändert
- Nur formatierte leere XLSX-Zellen teilen referenzgezählte Payloads mit Copy-on-Write-lokalen Bearbeitungen, automatischer Kompaktierung über Massenformatierung, benannte Stilaktualisierungen, Kopier-, Sortier-, Format-Patch-, Speicher- und Ladepfade sowie messbar vermiedenen Payload-Bytes
- Dynamische Arrays streamen direkt in skalare Aggregate, wiederholte exakte Nachschlagevorgänge verwenden typisierte inkrementelle Bereichscaches wieder, und unveränderliche zustandslose Formel-Tokens werden über Kompilierungen hinweg gemeinsam genutzt
- Elliptische Bögen verwenden eine flachheitsgesteuerte adaptive kubische Bezier-Unterteilung, die von PDF-, SVG- und Bitmap-Ausgabe gemeinsam genutzt wird, und erhöhen die Präzision nur dort, wo Maßstab oder Exzentrizität es erfordern
- Die XLSX-Paketausgabe stabilisiert jetzt freigegebene Zeichenfolgen, Hyperlinks, Beziehungen und Teilanordnung, sodass die umgekehrte Konstruktion byteidentische deterministische Pakete erzeugt
- Der vereinheitlichte XLS-, XLSX-, CSV- und TSV-Vorwärtsleser hält den Speicher begrenzt; BIFF8-Fortsetzungen freigegebener Zeichenfolgen überschreiten einen konfigurierbaren Schwellenwert, während Projektion, ausgewählte Blätter, Verschlüsselung und Schutz vor fehlerhaften Eingaben erhalten bleiben
Behoben
- Die C++Builder-Win64-Paketverknüpfung erzeugt keine doppelten Delphi-Generic-Objektlisten-Vtables mehr aus Arbeitsmappenvergleichs- und Importprüfungs-Einheiten
Version 2.330.0
Hinzugefügt
TXLSXWorksheet.Subtotalfügt gruppierte Zwischensummenzeilen, eine konfigurierbare Gesamtsummenzeile, Formeln, geerbte sichtbare Formatierung und Excel-kompatible Gliederungsebenen für sortierte Datenbereiche einGetCellVisibleFormatlöst Arbeitsblatt-, Zeilen-, Spalten-, Bereichsüberlagerungs- und explizite Zellformatierung auf, ohne eine leere Zelle zu materialisierenCheckDataValidationprüft einen Kandidatenwert gegen die Regeln, die eine Zelle abdecken, und kann ihn nur bei Gültigkeit atomar übernehmen
Geändert
- Nachschlage-Scan-Memos verwenden kompakte exakte binäre Schlüssel und einen einzelnen Payload-Nachschlagevorgang pro Cache-Treffer, wodurch Neuberechnungszuweisungen und Hash-Tabellenarbeit reduziert werden, ohne die Nachschlagevergleiche zu ändern
- CSV-Export mit fester Breite füllt jedes Feld in einem Vorgang auf und hält die Auffüllzeit linear zur konfigurierten Ausgabebreite
Behoben
- Rückwärtige
ReplaceTextIn-Scans rufen Ersetzungs-Callbacks jetzt in der angeforderten umgekehrten Scan-Reihenfolge auf - Formatierte Zellen ohne Wert oder Formel blockieren nicht mehr den Überlauf von benachbartem Text in SVG-, Bild- und Vorschau-Rendering
- Die klassische XLS-Zahlenausgabe normalisiert negative Null zusätzlich zu nicht-endlichen und subnormalen Werten, bevor BIFF-Zahlenrecords geschrieben werden
Version 2.329.0
Hinzugefügt
A1ToR1C1konvertiert Formeln im A1-Stil in die R1C1-Notation (relative Offsets, absolute$-Formen, Bereiche und Roundtrips überR1C1ToA1) und vervollständigt damit beide Richtungen der Referenzstil-Konvertierung
Geändert
- Das Nachschlage-Memo der Neuberechnung überspringt Suchvektoren mit weniger als fünf Zellen in
VLOOKUP,XLOOKUP/XMATCHundMATCH, wo ein roher Scan billiger ist als der Wörterbuch-Roundtrip
Version 2.328.0
Hinzugefügt
- Der gemeinsame Seiten-Renderer hinter SVG-, Bild- und Vorschauausgaben zeichnet jetzt XLSX-Zellstile: einfarbige Füllungen (mit Alpha), Schriftarten und Farben pro Zelle, horizontale Ausrichtung mit Excels numerischer Rechts-Standardeinstellung, Excel-artiges Zusammenfallen von Rahmen, bei dem die stärkere gemeinsame Kante gewinnt, An Größe anpassen, das die Schrift auf die Spalte skaliert, und Überlauf von langem Text in aufeinanderfolgende leere Nachbarzellen
Version 2.327.0
Hinzugefügt
- Der CSV/TSV-Loader erhält spaltenweise Importanweisungen (
cctText,cctNumber,cctDate,cctBoolean,cctSkip), die Excels Textimport-Assistenten widerspiegeln, sodass einzelne Spalten als Text erzwungen werden können, um führende Nullen zu erhalten, in einen Typ umgewandelt oder aus dem Import entfernt werden können - Textimport mit fester Breite: Durch das Zuweisen von Feldbreiten wechselt der Loader von der Trennzeichen-Analyse zum Schneiden nach Zeichenposition, und der Speicher kann mit Leerzeichen aufgefüllte Spalten fester Breite mit Abschneiden ausgeben
Version 2.326.0
Hinzugefügt
- Die XLSX-Arbeitsblattsuche erhält fensterbasierte Methoden
FindTextInundReplaceTextIn, die den Scan auf einen rechteckigen Zellbereich begrenzen, sowie ein Flag für die Spalten-Haupt-Scanreihenfolge, das den Modus Search: By Columns des Excel-Dialogs Suchen und Ersetzen widerspiegelt; der Rückwärtsscan akzeptiert jetzt einen Null-Anker, um in der unteren rechten Ecke zu beginnen - Beim Speichern wird jetzt gegen Formeln vorgegangen, die länger als Excels Grenze von 8192 Zeichen sind, mit schnellem Fehlschlag und identifizierter problematischer Zelle, statt eine Arbeitsmappe zu schreiben, die Excel im Reparaturmodus öffnen würde
Behoben
- Nicht-endliche numerische Zellwerte (NaN sowie positive oder negative Unendlichkeit) können keine unparsbaren Tokens mehr in gespeicherte XLSX-Teile einsickern lassen; sie werden jetzt als
#NUM!-Fehlerzellen serialisiert, und subnormale Doubles werden in beiden Schreibern, XLSX und BIFF8, auf null gesetzt, passend zu dem, was Excel speichern und anzeigen kann
Version 2.325.0
Hinzugefügt
- APIs für das Arbeitsmappenformat umfassen jetzt bearbeitbare XML-Zuordnungen (XML Maps) und Schemabindungen, geordnete mehrere Arbeitsmappenfenster, Mehrbereichs- und pro Fensterscheibe getrennte Auswahlen sowie aufrufereigene verlustfreie Formel-Token-Inspektion, Rekonstruktion, Referenzersetzung und atomaren Rückschreibvorgang für XLS und XLSX
- Die Arbeitsmappenverarbeitung umfasst jetzt stabile horizontale oder vertikale Sortierung mit benutzerdefinierten Vergleichern und expliziter Formelverschiebung, Stil- und Formelkonvertierung von BIFF2 bis BIFF4, eine projizierte Vorwärtsleser-Fassade für XLS, XLSX, CSV und TSV, typisierte benutzerdefinierte Ansichten sowie bearbeitbare Untermodelle für OLAP-, Webtabellen-, Festtext- und Parameterverbindungen
- Berechnung und Inspektion umfassen jetzt strukturierte Diagnosen für fehlende Funktionen, externe Referenzen und zirkuläre Abhängigkeiten, globale und arbeitsmappenlokale UDF-Registries, bidirektionale visuelle Unicode-Sortierung, AutoFit-Strategien für verbundene Zellen, typisierte Erhaltung von Excel-4-Makroblättern und Befehlsprüfung sowie die Funktionen
ISOMITTED,ARRAYTOTEXT,VALUETOTEXT,PDURATIONundRRI - Kompiliertes Reporting deckt jetzt arbeitsmappenweite Platzhalter, benannte Zeilen-, Spalten- und Kreuztabellenbänder, erweiterbare Excel-Tabellenbänder, eine gemeinsame Tabellen- und Cursor-Abstraktion, exakte Verzeichnisindizes mit zusammengesetzten Schlüsseln, verzögerte Datenkontexte, Streaming-Tabellenkombinatoren, gesteuerte benannte Abfrageanbieter, Blattbänder pro Datensatz, Überlauf-Folgeblätter und unveränderliche rekursive Einschlüsse ab
- Die Berichtserstellung umfasst jetzt kompilierte Bedingungen, Nachschlagefunktionen, reguläre Ausdrücke, dynamische Formeln und Formate, Bildfelder, Neubindung von Diagrammserien, wiederverwendbare Runner mit Stream- oder atomarem Dateiausgang, abhängigkeitsbewusstes Bereichsklonen, Planung mit festen Fußzeilen und ausgewogenem Seitenumbruch, adressierte Diagnosen, strikte Ausführung, Vorlagenprüfung und sichere Migration unterstützter Legacy-Platzhalter
- Der PDF-Ausgang umfasst jetzt automatische getaggte Strukturbäume, sichtbare oder unsichtbare hostsignierte Felder, explizite Konformitätsprofile für PDF/A-1, PDF/A-2 und PDF/A-3 auf den Stufen a und b, atomaren Fortschritt und Abbruch, stilbewussten zwischengespeicherten Schrift-Fallback, kontextuelles komplexes Text-Shaping, native Verläufe mit mehreren Stopps, Alpha pro Stopp, Zellfüllmuster, Schatten und positionierte Kommentaranmerkungen
- Gemeinsames Rendering umfasst jetzt natives SVG für Bereiche, Seiten, Arbeitsmappen und benannte Objekte, inkrementelle PNG- und JPEG-Seiten, backendneutrale Layoutgeometrie, eingebettete Vektordiagramme und -formen in HTML, zustandsbehaftete partielle HTML-Sitzungen mit gemeinsam genutztem CSS, gerenderte Bildeffekte, Geometrie für vordefinierte Vektorformen und WordArt, erweiterte wissenschaftliche und finanzielle Diagrammdetails sowie deterministisches Kollisions- und Führungslinienlayout für Datenbeschriftungen
Geändert
- Alle 55 geprüften Fähigkeitspunkte F01 bis F18, R01 bis R19 und V01 bis V18 verfügen jetzt über vollständige unterstützte Implementierungen mit expliziten Grenzen für Eigentum, Formatsicherheit, Abbruch und Ausgabe
- Große Berichtsvorlagen kompilieren Objektziele und Ausdrücke einmal, materialisieren nur gebundene Achsenfelder, verbrauchen Daten-Cursor einmal, hashen Beziehungs- und Verknüpfungsschlüssel, frieren Präfixe von Quellensammlungen für wiederholtes disjunktes Klonen ein und vermeiden das erneute Scannen generierter Arbeitsmappenobjekte
- Rendering-Pfade teilen sich Seitenumbruch, Geometrie, Objektplatzierung, Effektzustand und Caches für Dokumentressourcen, während PDF-, SVG-, HTML-, Bitmap-, Metadatei-, Vorschau- und Druckausgaben nur ihre formatspezifischen Encoder behalten
Behoben
- XLSX-Zellschreib-Ereignisse serialisieren jetzt ihre effektiven Ersatzwerte, ohne veraltete Rich-Text-Läufe beizubehalten, BIFF-Tokens für externe Namen bewahren den vollständigen 4-Byte-Namensindex, und Verbindungsquellen der obersten Ebene machen Roundtrips unabhängig von Textimport-Quellen, während der Legacy-Quell-Fallback erhalten bleibt
- Legacy-BIFF-Stil und -Formelbedeutung, Neuabbildung von Arbeitsmappenfenstern und Auswahlen, gemischte absolute Formelreferenzen, Formel-Token-Eigentum und ungültiger Token-Rückschreibvorgang behalten jetzt über Laden, Bearbeiten und Speichern hinweg deterministisches verlustfreies Verhalten bei
- Die Berichtserweiterung lehnt jetzt deterministische Konflikte bei Tabellen, Filtern, Namen, Überlappungen, Teilobjekten, Gittern und abfragegestützten Layouts vor strukturellen Schreibvorgängen ab, bewahrt die Kardinalität von Tabellen mit null Zeilen, wo darstellbar, hält exakte ganzzahlige Verknüpfungsschlüssel über 2^53 hinaus und meldet deterministische angewendete Zählwerte nach Abbruch oder Fehler
- PDF- und Vektor-Export bewahren jetzt Unicode-Zuordnungen von Fallback-Schriften, Graphem- und Shaping-Cluster, Einschränkungen des Archivprofils, Verlaufs-Alpha, Bildeffekte, Diagrammverzierungen, dichte Beschriftungsplatzierung und die Atomarität der Ausgabe, ohne dass die Ressourcen durch wiederholten Inhalt anwachsen
Version 2.324.0
Hinzugefügt
- Verlustfreie Formel-Token-Inspektion und geschützter Rückschreibvorgang für XLS und XLSX über
TXLSFormulaTokenStream,ParseFormulaTokens,GetFormulaTokens,FormulaTokensToTextundSetFormulaTokenslegen RPN-Token-Arten und -Klassen, rohe BIFF-Token- und Zusatznutzlasten, unabhängige Referenzflags, Klonen, Referenzersetzung, Kontextherkunft und exakte kompatible BIFF-Wiederverwendung offen, während fehlerhafte, inkompatible, array-eigene oder nicht unterstützte Streams vor der Zellmutation abgelehnt werden - Erweiterbare Excel-Tabellenberichtsbänder über
TXLSCompiledTableReportBandverwenden eine begrenzte Cursor-Momentaufnahme, um eine einzelne Datenvorlagenzeile zu erweitern, während Kopfzeilen, Summen, Tabellen- und AutoFilter-Bereiche, Filter- und Sortierzustand, Spaltenmetadaten, berechnete Formeln und Summenformeln, Stile, strukturierte Referenzen und abhängige Arbeitsblattobjekte erhalten bleiben; darstellbare Ergebnisse mit null Zeilen entfernen die Datenvorlagenzeile, während abfragegestützte, widersprüchliche, ungültige und überlaufende Layouts vor Schreibvorgängen fehlschlagen - Stilbewusste PDF-Schrift-Fallback-Ketten über
SetFontFallbackChain,AddFontFallbackundClearFontFallbackChainslösen Quellfamilien- und Stilebenen anhand der Glyphenabdeckung auf, cachen geladene Schriftgesichter und Auswahlen, bewahren ergänzende Skalare und Graphem-Cluster über Abschnitte hinweg, weisen geteilten Glyphen-Unicode-Sequenzen unterschiedliche CIDs zu, betten eigenständige TTC-Schriftgesichter ein und lehnen die PDF/A-Ausgabe atomar ab, wenn kein eingebettetes Glyph verfügbar ist
Version 2.323.0
Hinzugefügt
- Wiederverwendbare Arbeitsmappen-Berichtsvorlagen über
TXLSCompiledReportTemplate: Platzhalter werden einmal kompiliert und können wiederholt angewendet werden, ohne die Arbeitsmappe erneut zu scannen, mithilfe einer sortierten Wertsuche und vorab aufgeteilter Textfragmente über Zellen, Rich Text, Kommentare, Thread-Kommentare, Hyperlinks, Textfelder, Diagrammtitel und Seriennamen, Kopf- und Fußzeilen, Arbeitsblattnamen, definierte Namen und Dokumenteigenschaften hinweg - Berichtsdatenbindung über
IXLSReportTable,IXLSReportCursor, verzögertes Laden vonIXLSReportTableProvider, Speichertabellen mit wahlfreiem Zugriff undTXLSReportRelationIndex, das einen Kinder-Hash mit zusammengesetztem Schlüssel einmal erstellt und Zeilennummern statt kopierter Zeilennutzlasten für wiederholte Master-Detail-Suchen behält - Die Formelberechnung wertet jetzt
PDURATIONfür die Anzahl der Perioden aus, die zum Erreichen eines Zielinvestitionswerts benötigt werden, undRRIfür die äquivalente periodische Wachstumsrate, einschließlich Excel-kompatibler numerischer Fehlergrenzen und des erforderlichen OOXML-Speicherpräfixes_xlfn. - Die Formelberechnung wertet jetzt
ISOMITTED,ARRAYTOTEXTundVALUETOTEXTaus, einschließlich eines eigenen Werts für weggelassene Argumente, der sich von einer leeren Zelle unterscheidet, BIFF-Round-Trips von Token für fehlende Argumente, ein- und zweidimensionale Arrays, striktes Escaping von Zeichenfolgen, lokalisierte Trennzeichen, Fehlerkonvertierungsregeln und OOXML-Präfixe für zukünftige Funktionen - Strukturierte Formelprüfung über
TXLSXWorkbook.AnalyzeFormulaIssuesmeldet fehlende Funktionen, externe Arbeitsmappenreferenzen und exakte zirkuläre Abhängigkeitskomponenten mit Zellkoordinaten und begrenzten Memberlisten, während Zeichenfolgenliterale und lokale strukturierte Referenzen von falschen Übereinstimmungen ausgeschlossen werden - Abhängigkeitsbewusstes Bereichsklonen über
TXLSXWorksheet.CloneRangeTokopiert ausgewählte Zellen, verbundene Bereiche, bedingte Formate, Datenvalidierungen, Hyperlinks, Kommentare, Bilder und Diagramme in einem Vorgang, verlegt angewendete Bereiche und Anker und übersetzt Formelnutzlasten mit gemischter relativer und absoluter Referenzsemantik; Berichtsbänder verwenden denselben Pfad für abhängige Objekte - PDF-Export-Fortschritt und -Abbruch über
TXLSPDFExport.OnProgress,OnProgressExundCancel: Benachrichtigungen zu Beginn, pro Seite und am Ende fügen vernachlässigbaren Callback-Overhead hinzu, der Abbruch wird zwischen Zeilendurchläufen und Seitenobjekten geprüft, abgebrochene Streams erhalten kein partielles PDF, und der Exporter bleibt wiederverwendbar - Diagnosen kompilierter Berichte über
TXLSCompiledReportTemplate.Analyze, strikte Ausführung undWriteDiagnosticsidentifizieren fehlende Werte, leere Platzhalter und nicht geschlossene Platzhalter mit Zieltyp sowie Arbeitsblatt- und Zellkoordinaten vor der Mutation oder schreiben dieselben Befunde in ein Diagnosearbeitsblatt - Wiederverwendbare Berichtsausführung über
TXLSCompiledReportRunnerbietet Fortschritt zu Beginn, pro Ziel und am Ende mit den Zuständen abgeschlossen, abgebrochen und fehlgeschlagen, unterstützt Abbruch vor dem ersten Schreibvorgang oder zwischen kompilierten Zielen, meldet die exakte angewendete Anzahl und bleibt nach Abbruch oder Ausnahmen wiederverwendbar, ohne die Arbeitsmappe erneut zu scannen - AutoFit-Strategien für verbundene Zellen bei klassischem XLS und XLSX erlauben es, dass die erste oder letzte Zeile oder Spalte das erforderliche Wachstum aufnimmt oder es gleichmäßig über die verbundene Spanne verteilt, während das Verhalten der Legacy-Überladungen, ausgeblendete Zustände, explizite Grenzen und deterministische wiederholte Aufrufe erhalten bleiben
- Optionale PDF-Kommentaranmerkungen über
TXLSPDFExport.ExportCommentsAsAnnotationsplatzieren Unicode-Autor und Kommentartext auf dem Rechteck der Ursprungszelle, während die vorhandene Seite mit Kommentaren am Ende erhalten bleibt; Kommentarindizes pro Blatt werden in ungefähr O(C log C) Zeit aufgebaut und unterstützen O(log C) Zellsuche - Hierarchische Registries für benutzerdefinierte Funktionen lassen XLS- und XLSX-Arbeitsmappen prozessweite Handler gemeinsam nutzen, während arbeitsmappenlokale Überschreibungen, Ersetzung, Entfernung, Leerung und der vorhandene Arbeitsmappen-Ereignis-Fallback erhalten bleiben; die durchschnittliche Suche ist O(1), lokale Übereinstimmungen maskieren globale Namen, und Handler laufen außerhalb von Registry-Sperren für sichere parallele Neuberechnung und Selbstentfernung
- Verzögerte Berichtstabellen-Kombinatoren über
TXLSReportTableFactorybieten oberste Zeilen, Spaltenprojektion, Zeilenanzahl, minimale und mehrfache Aggregatdefinitionen, schemazugeordnete Vereinigung, zusammenhängende Split-Partitionen sowie duplikaterhaltende innere oder linke Hash-Verknüpfungen, ohne vollständige Zwischenzeilen-Nutzlasten zu materialisieren - Inkrementeller PNG- und JPEG-Seitenexport über
TXLSPageImageExporterunterstützt XLS- und XLSX-Bereiche, Arbeitsblätter und Arbeitsmappen mit Seitenauswahl, DPI, Skalierung, JPEG-Qualität, Fortschritt, Abbruch und wiederverwendbaren Sitzungen; pro Sitzung wird ein Seitenumbruchmodell erstellt, und der Bitmapspeicher wird nach jeder Seite freigegeben - Mehrere XLSX-Arbeitsmappenfenster über
TXLSXWorkbook.WorkbookViewsbewahren unabhängige aktive Registerkarten, erste sichtbare Blätter, Sichtbarkeit, minimierten Zustand, Geometrie, Registerkartenanzeige, Scrollen, unbekannte Attribute, Erweiterungen und korrekt neu zugeordnete Arbeitsblatt-Ansichtsbindungen, während die vorhandenen Einzelfenster-Eigenschaften weiterhin die erste Ansicht ansprechen - Benannte Zeilen-, Spalten- und Kreuztabellenberichtsbänder über
TXLSCompiledReportBanderweitern eine Vorlage mit definiertem Namen strukturell aus einmaligen begrenzten Daten-Momentaufnahmen, bewahren Formeln und abhängige Arbeitsblattobjekte, kacheln explizite Zeilen- und Spaltenmetadaten ohne Erstellung von Standardwerten mit der Größe null und verwenden feste Grenzen der Quellensammlung wieder, sodass wiederholtes Klonen auf demselben Blatt generierte Nutzlasten nicht erneut scannt - Der PDF-Export schreibt jetzt axiale oder radiale Verläufe mit zwei oder mehr Stopps als native PDF-Schattierungen, verwendet identische Funktions-, Schattierungs- und Transparenzressourcen erneut, beschneidet jede Füllung auf ihre Zelle und wendet festes oder gleichmäßiges Verlaufs-Alpha ohne die frühere Näherung durch gestreifte Rechtecke an
Behoben
- Benutzerdefinierte Überschreibungen der Papierbreite und -höhe in Punkten nehmen jetzt an der Berechnung der Seitenumbruchbänder sowie am endgültigen Seitenobjekt teil, sodass Seitenumbrüche und gerenderte Abmessungen dieselbe verfügbare Fläche verwenden
Version 2.322.0
Hinzugefügt
- Die Formelberechnung wertet jetzt die Besselfunktionen erster Art
BESSELJ(oszillierend) undBESSELI(modifiziert) aus, die über die Potenzreihe mit Termrekursion für numerische Stabilität über den praktischen Argumentbereich berechnet werden
Version 2.321.0
Behoben
- Der XLSX-RTF-Export erstellt jetzt eine echte Schriftartentabelle, statt Calibri fest zu codieren: Die Vorsuche sammelt jeden einzelnen Zellschriftnamen,
\fonttbllistet jede Schrift mit eigenem\fN-Index auf, und der Text jeder Zelle verweist auf ihre tatsächliche Schriftart — Arbeitsmappen, die mit Times New Roman, Courier New oder einer anderen Schriftart formatiert sind, fließen beim Öffnen in Word oder WordPad nicht mehr visuell zu Calibri um
Version 2.320.0
Behoben
- Der PDF-Export rendert jetzt Textdrehungen auf dem klassischen XLS-Engine-Pfad: Zellen mit 90-Grad- oder 270-Grad-Ausrichtung zeichnen ihren Text vertikal über eine PDF-Textmatrix, die um das Zellzentrum dreht, und entsprechen damit dem vorhandenen Verhalten des XLSX-Pfads; zuvor wurden vertikale Kopfzeilen und gedrehte Beschriftungen in PDFs, die aus
.xls-Arbeitsmappen erzeugt wurden, horizontal gerendert
Version 2.319.0
Hinzugefügt
- Die Formelberechnung wertet jetzt die LAMBDA-abhängigen Array-Kombinatoren von Excel 365 aus:
MAP(elementweise Transformation),REDUCE(Faltung auf einen einzelnen Wert),SCAN(Faltung, die jeden Zwischenschritt ausgibt),MAKEARRAY(Aufbau aus Zeilen- und Spaltenindizes),BYROW(zeilenweise Aggregation, die eine Spalte ausgibt) undBYCOL(spaltenweise Aggregation, die eine Zeile ausgibt) — damit ist die LAMBDA-Familie der funktionalen Programmierung neben der vorhandenenLAMBDA- undLET-Unterstützung vollständig
Version 2.318.0
Hinzugefügt
- Die Formelberechnung wertet jetzt die Anleihe- und Schatzfinanzfunktionen aus:
COUPDAYBS,COUPDAYS,COUPDAYSNC,COUPNCD,COUPPCD,COUPNUM(Kupon-Tagezählungs-Primitive),PRICE/YIELD(Standard-Anleihebewertung mit Bisektions-Renditelöser),PRICEDISC/YIELDDISC(abgezinste Wertpapiere),PRICEMAT/YIELDMAT(laufzeitbasiert),DURATION/MDURATION(Macaulay und modifiziert),TBILLEQ/TBILLPRICE/TBILLYIELD(Schatzwechsel),DISC/INTRATE/RECEIVED(Diskont und Zinsen),ACCRINTM(aufgelaufene Zinsen bei Fälligkeit),DOLLARDE/DOLLARFR(Umrechnung von Dollar-Brüchen),EFFECT/NOMINAL(effektive und nominelle Zinssätze),CUMIPMT/CUMPRINC(kumulative Zinsen und Tilgung),FVSCHEDULE(Zukunftswert mit variablem Zinssatz) sowieAMORDEGRC/AMORLINC(französische Abschreibung); alle nutzen eine in sich geschlossene verschachtelte Kupon-Datums-Engine mit den fünf Standard-Tagezählungs-Basen
Version 2.317.0
Hinzugefügt
- Das Laden verschlüsselter Arbeitsmappen akzeptiert jetzt Agile-Encryption-Dateien, die den SHA-256-Hash-Algorithmus deklarieren (von einigen Drittanbieter-Werkzeugen erzeugt): Die Passwort-Schlüsselableitung, die Spin-Schleife, der Passwort-Verifizierer sowie die IVs und HMACs des Datenintegritätsschlüssels/-werts folgen alle dem deklarierten Hash, während Dateien, die zwischen den Schlüsseldaten und dem Schlüsselverschlüsseler abweichende Hashes deklarieren, weiterhin abgelehnt werden; das Speichern schreibt weiterhin die Standardvariante SHA-512 von Excel
Version 2.316.0
Hinzugefügt
SortRangebewahrt Formeln auf beiden Arbeitsmappen-Engines: Formelzellen wandern mit ihren Zeilen, und ihre relativen Referenzen verankern sich gemäß der Excel-Sortiersemantik neu ($-absolute Teile bleiben, vom Raster geschobene Referenzen bleiben am Rand), sodass sortierte Tabellen weiter berechnet werden, statt zu Werten zu kollabieren- Hintergrundbilder für Blätter:
SetBackgroundImagekachelt ein Bild hinter die Zellen eines XLSX-Arbeitsblatts (nur zur Anzeige, wie bei Excel) und führt es durch daspicture-Element des Arbeitsblatts, seine Medienbeziehung und die Inhaltsarten des Pakets im Rundlauf
Behoben
- Die Neuberechnung einer arithmetischen Formel, die eine nie berührte leere Zelle referenziert, bricht nicht mehr mit einem Konvertierungsfehler ab — leere Operanden tragen wie in Excel 0 bei
Version 2.315.0
Hinzugefügt
CopyToClipboardveröffentlicht das native Biff8-Zwischenablageformat neben Text und HTML auf beiden Arbeitsmappen-Engines, sodass Bereiche, die in Excel oder andere HotXLS-Arbeitsmappen eingefügt werden, Werte, Formeln, Zahlenformate, Schriften, Füllungen, Rahmen, Ausrichtung und verbundene Zellen statt nur einfachem Text übertragenPasteFromClipboardbevorzugt die Biff8-Nutzlast, wenn sie vorhanden ist: Aus Excel eingefügter Text behält seine ursprünglichen Werte ohne ortsabhängiges Neu-Parsen von Datums- und Zahlenwerten, Formeln verankern ihre relativen Referenzen am Einfügeziel neu, und verbundene Bereiche werden am Zielort neu aufgebaut; beide Engines fügen auch gegenseitig ihre Blöcke mit vollständiger Formatierung ein
Geändert
- In Excel eingefügte Formeln erscheinen als ihre berechneten Werte (eine Einschränkung der Biff8-Zwischenablage-Analyse von Excel für Drittanbieter); alles andere — Text, Zahlen mit Formaten, Füllungen, Rahmen und Verbindungen — wird verlustfrei in Excel eingefügt, und Formeln überleben vollständig in den Richtungen Excel-zu-HotXLS und HotXLS-zu-HotXLS
Version 2.314.0
Hinzugefügt
- Kameraobjekte auf XLSX-Arbeitsblättern:
AddCameraplatziert ein Live-Momentaufnahme-Bild, das an einen Zellbereich gebunden ist — das verknüpfte Bild des Excel-Kamera-Tools — wobei die Bereichsbindung in die dokumentierte Zeichnungserweiterung geschrieben und ein Platzhalterbild auf die Ankerposition skaliert wird; von Excel erstellte Kameraobjekte werden beim erneuten Öffnen mit ihrer Bereichsbindung erhalten
Version 2.313.0
Hinzugefügt
- In-place-Arbeitsblatt-Patching für XLSX-Pakete:
BeginPatchauf dem Streaming-Writer öffnet eine vorhandene Arbeitsmappe und schreibt genau ein Arbeitsblatt neu — jeder andere Teil (Stile, Zeichnungen, Diagramme, Pivot-Tabellen, benutzerdefinierte Teile) wird mit seinen komprimierten Bytes wortwörtlich kopiert, ohne etwas zu dekomprimieren oder neu zu erstellen, sodass eine große Vorlage ihr Datenblatt in einem Bruchteil eines vollständigen Neuaufbaus aktualisiert bekommt - Der Patch-Modus kann auch ein neues Arbeitsblatt anhängen: Das Blatt wird in der Arbeitsblattliste des Pakets, in den Beziehungen und Inhaltstypen mit einer Nummerierung registriert, die nie mit vorhandenen Teilen kollidiert, und folgt dabei der eigenen strikten oder transitional Beziehungskonvention des Pakets
- Gepatchte Pakete verwerfen die veraltete Berechnungskette automatisch (Excel baut sie beim Laden neu auf), und Funktionen, die neue Paketteile erfordern würden (Tabellen, Diagramme, Bilder, Kommentare, definierte Namen), melden einen klaren Fehler, statt ein ungültiges Paket zu schreiben
Version 2.312.0
Hinzugefügt
- Strikte Open-XML-Ausgabe: Die Einstellung
StrictOOXMLauf einer XLSX-Arbeitsmappe speichert das Paket in strikter ISO/IEC-29500-Konformität — jede Namespace-Deklaration und Beziehungstyp wechselt von den transitional Vokabularen zu den striktenpurl.oclc.org-Vokabularen über Arbeitsblätter, gemeinsame Zeichenfolgen, Stile, Designs, Zeichnungen, Diagramme, Kommentare, Dokumenteigenschaften und erhaltene Teile hinweg, während Inhaltstypen, Teilnamen und die VML-Vokabulare so bleiben, wie sie beide Konformitätsklassen gemeinsam nutzen - Das Lesen strikt konformer Arbeitsmappen ist jetzt vollständig: In strikter Form geschriebene Beziehungstypen lösen zu denselben Zielen auf wie ihre transitional Entsprechungen und ergänzen die Akzeptanz strikter Element-Namespaces, sodass im Modus „Strict Open XML Spreadsheet“ von Excel gespeicherte Dateien wie jede andere Arbeitsmappe geöffnet werden
- Beim Speichern mit aktivierter strikter Ausgabe wird für Funktionen, die nur als Microsoft-Erweiterungen existieren (VBA-Projekte, Formularsteuerelemente, Thread-Kommentare, Metadaten für dynamische Arrays), ein klarer Fehler gemeldet, statt ein Paket zu schreiben, das nicht validieren würde
Behoben
- Benutzerdefinierte Dokumenteigenschaften deklarierten einen falsch geschriebenen Namespace für Werttypen, wodurch der Eigenschaften-Teil bei externen Werkzeugen die Validierung nicht bestehen konnte
Version 2.311.0
Hinzugefügt
- Beim Lesen einer XLS-Arbeitsmappe werden nicht erkannte Arbeitsblattdatensätze bewahrt: Jeder Datensatz, den der typisierte Parser nicht modelliert, wird wortwörtlich erfasst und beim Speichern wieder ausgegeben, sodass Dateien mit herstellerspezifischen oder neueren Datensätzen HotXLS ohne Verlust im Rundlauf durchlaufen
Version 2.310.0
Hinzugefügt
- Formen mit vordefinierter Geometrie auf XLSX-Arbeitsblättern:
AddPresetShapeschreibt jedes der 187 OOXML-ST_ShapeType-Voreinstellungs-Token (rightArrow,flowChartDecision,star5, …) wortwörtlich in das<a:prstGeom>der Zeichnung, und die EigenschaftPrstTokenlässt vorhandene Formen die Geometrie wechseln — Token überstehen Speichern und erneutes Öffnen im Rundlauf
Version 2.309.0
Hinzugefügt
- Vorlagenverarbeitung auf Arbeitsblättern:
ApplyTemplateersetzt{{key}}-Platzhalter über alle Zellen hinweg — Werte behalten ihre nativen Typen, Formelplatzhalter werden vor dem Parsen ersetzt — undFillTemplateBandklont einen Vorlagenblock einmal pro Datensatz mit Formelzeilen-Übersetzung pro Klon, Klonen verbundener Bereiche und einem#skip-Feld für bedingte Logik auf Zeilenebene, wodurch jedes handgefertigte Blatt in einen datengetriebenen Berichtsgenerator verwandelt wird
Version 2.308.0
Hinzugefügt
- Der PDF-Export kann Dateien anhängen:
AddAttachmentbringt Rohdokumente als/EmbeddedFiles-Einträge in das exportierte PDF ein (Dateispezifikation, eingebetteter Stream mit optionalem MIME-Untertyp und der Katalog-Namensbaum), sodass Berichte zusammen mit ihren unterstützenden Daten in einer einzigen in sich geschlossenen Datei versendet werden
Geändert
- Beim Lesen einer XLS-Arbeitsmappe mit einem nicht erkannten BIFF-Versionswort wird der gesamte Stream nicht mehr abgelehnt: Der Leser fällt auf das BIFF8-Layout zurück, sodass Dateien von Werkzeugen, die ungewöhnliche Versionsnummern ausgeben, weiterhin laden, wenn ihre Datensätze geparst werden können
Version 2.307.0
Hinzugefügt
- Zentrale Verwaltung temporärer Dateien: Jede temporäre Datei, die die Bibliothek erstellt, wird registriert und bereinigt, sodass ein abgebrochener Export oder eine Ausnahme zwischen Erstellen und Löschen keine verwaisten temporären Dateien mehr hinterlässt
VerifyEncryptedSaveöffnet einen gerade geschriebenen verschlüsselten Container erneut durch die vollständige Entschlüsselungspipeline und schlägt das Speichern fehl, wenn das Passwort ihn nicht entsperren kann — beschädigte Container treten sofort zutage statt erst beim nächsten Öffnen durch den Benutzer- Der Datensatz-Export löst ein
OnExportLimit-Ereignis aus, wenn die Zeilenaufteilung greift, und die Arbeitsblatt-Rastergrenzen pro Formatversion werden als Konstanten offengelegt (65536×256 für BIFF8, 1048576×16384 für die Formate ab 2007) für die Fähigkeitsaushandlung
Version 2.306.0
Hinzugefügt
- XLSX-Arbeitsblätter erhalten die Erstellung von Formularsteuerelementen:
AddFormButton,AddFormCheckBox,AddFormRadioButton,AddFormComboBoxundAddFormListBoxschreiben Schaltflächen-, Kontrollkästchen-, Optionsfeld-, Dropdown- und Listensteuerelemente mit Beschriftungen, verknüpften Zellen, aktiviertem Zustand und Makrobindung — der Speicherpfad gibt die VML-Formen, diectrlProps-Teile pro Steuerelement, ihre Beziehungen und die Inhaltstyp-Einträge aus, und Dateien mit Steuerelementen führen ihre Teile beim erneuten Öffnen wortwörtlich im Rundlauf
Version 2.305.0
Hinzugefügt
- Der PDF-Export erhält einen optionalen
UsePDFA-Modus, der als PDF/A-2b identifizierte Dokumente erzeugt: Das sRGB-IEC61966-2.1-Profil wird als GTS_PDFA1-Ausgabeabsicht eingebettet, die XMP-Metadaten tragen diepdfaid-Teil-/Konformitätsidentifikation, und der Kopf kündigt PDF 1.7 an — kombinieren Sie es mit einer eingebetteten TrueType-Schrift (UnicodeFontFileoder die automatisch ausgewählte installierte Schrift) für archivierbare Ausgabe
Version 2.304.0
Hinzugefügt
- Live-übergreifende Arbeitsmappenauswertung:
RegisterExternalWorkbookkoppelt ein Arbeitsmappenobjekt mit einem Buchnamen, sodass Formeln wie[Book.xlsx]Sheet!A1kompilieren (das[Book]Sheet!Ref-Präfix parst jetzt in eine echte externe Referenz) und bei jeder Neuberechnung den aktuellen Zustand des registrierten Objekts lesen; das Aufheben der Registrierung verwirft die Live-Verbindung und fällt auf den Cache externer Verknüpfungen zurück
Version 2.303.0
Hinzugefügt
- Arbeitsmappenvergleich über
TXLSXWorkbookCompare: Paart Blätter nach Namen und meldet hinzugefügte/entfernte Blätter, hinzugefügte/entfernte Zellen, geänderte Werte, geänderte Formeln sowie hinzugefügte/entfernte verbundene Bereiche — als strukturierte Diff-Liste für Werkzeuge und als eine menschenlesbare Zeile pro Unterschied überReport
Version 2.302.0
Hinzugefügt
- Der Streaming-Direktschreiber erhält eine Pull-Modus-Zeilenversorgung:
OnNeedRowfeuert einmal pro erwarteter Zeile, und der Lieferant schreibt diese Zeile direkt durch den Schreiber und deklariert das Datenende zum Stoppen — Datenpipelines können einen Export treiben, ohne Zeilenlisten vorab zu puffern
Version 2.301.0
Hinzugefügt
- Der ODS-Export schreibt Zellformeln: Referenzen innerhalb desselben Blatts werden in die Standard-OpenFormula-Schreibweise
of:=übersetzt (Klammerreferenzen, Semikolon-Argumenttrennzeichen, Zeichenfolgenliterale unverändert), während blattqualifizierte und strukturierte Referenzen denmsoxl:-Passthrough nutzen, den Excel selbst für übergreifende Rundläufe zwischen Suiten verwendet — gespeicherte Pakete öffnen sich mit dem ursprünglichen Excel-Formeltext erneut
Version 2.300.0
Hinzugefügt
- Rechts-nach-links-Arbeitsblätter werden jetzt überall gespiegelt gerendert: Der PDF-Export spiegelt die Spaltengeometrie über die Druckbreite (Spalte A rechts, Zellinhalt unverändert), und beide HTML-Exporteure geben
dir="rtl"auf der Tabelle aus, sodass der Browser die Spaltenreihenfolge spiegelt — das Blatt-Flag durchläuft XLSX und BIFF bereits im Rundlauf
Version 2.299.0
Hinzugefügt
- Der Datensatz-Export (
TDataToXLS) erhält einen Titelband und einen Fußband:Titlerendert eine verbundene, fett formatierte Zeile über der Kopfzeile (eigeneTitleFontund optionalesTitleColor), undFooterfügt eine Zeile unter der letzten Daten- oder Summenzeile hinzu ForEachFormattedCellauf einem Arbeitsblatt durchläuft jede befüllte Zelle in Zeilen-/Spaltenreihenfolge und liefert deren Anzeigetext — mit angewendetem Zahlenformat — über einen Callback, bereit für Indizierung und Textextraktion
Version 2.298.0
Hinzugefügt
- Das ApiTour-Beispiel öffnet jetzt direkt in eine Live-Showcase: Ein In-Memory-Vertriebs-Dashboard mit KPI-Kacheln, blattübergreifenden
SUMIF/COUNTIF-Formeln, Datenbalken, einer Farbskala, einem Symbolsatz und zwei Diagrammen rendert im eingebetteten Arbeitsmappen-Viewer, sobald das Beispiel startet, jede Rasterzelle bleibt editierbar mit sofortiger Neuberechnung und aktualisierten bedingten Formaten, und Ein-Klick-Aktionen exportieren die Showcase nach PDF, HTML und CSV oder übergeben sie mit Live-Bau- und Exportzeiten an Excel - Das C++Builder-ApiTour-Beispiel spiegelt die neue Delphi-Showcase, den eingebetteten Viewer, die Formelleiste, die Exportaktionen und das Aktivitätsprotokoll
Geändert
- Die ApiTour-Beispiele ersetzen modale Ergebnisfenster durch ein Aktivitätsprotokoll im Fenster, während der klassische Erstellen-, Ändern- und Export-Walkthrough sein Verhalten behält
Version 2.297.0
Hinzugefügt
- Der PDF-Export erhält einen optionalen
UseXRefStream-Modus, der PDF-1.5-Dateien mit komprimierten Objektströmen und einem binären Querverweis-Stream erzeugt: Kleine Wörterbuchobjekte reisen in einem Flate-komprimierten Container, und die klassische xref-Tabelle und der Trailer werden durch einen kompakten Stream ersetzt, wodurch exportierte Dokumente schrumpfen, während der Seiteninhalt byte-identisch bleibt
Version 2.296.0
Hinzugefügt
- Der Streaming-Direktschreiber erhält einen optionalen
AutoSplitRows-Modus: Eine Zeile über dem Arbeitsblattlimit (1048576) schließt das aktuelle Blatt ab und fährt auf einem neu erstellten Blatt<name>_2,<name>_3… fort, sodass unbegrenzte Exporte niemals einen ungültigen Zeilenindex ausgeben FillTableCalculatedColumnauf einem Arbeitsblatt schreibt die Berechnete-Spalten-Formel einer Tabellenspalte in jede Datenzeile, pro Zelle zeilenübersetzt, wie es Excels eigene Autorenumgebung tut, und berechnet danach natürlich neu
Version 2.295.0
Geändert
- Der XLSX-HTML-Export zentralisiert die Zellformatierung: Identische Stilkombinationen werden einmal als
td.cN-Klassen in einem Stylesheet ausgegeben statt als wiederholtes Inline-style-Attribut auf jeder Zelle, wodurch die HTML-Ausgabe für einheitlich formatierte Tabellen schrumpft; die visuellen Überlagerungen bedingter Formate bleiben inline, damit sie ihren zellspezifischen Charakter behalten
Version 2.294.0
Behoben
- Strukturierte Referenzen in aktueller-Zeile-Form (
Table[@Col]) werden jetzt bei der Neuberechnung gegen die eigene Zeile der Formelzelle ausgewertet, sowohl im seriellen als auch im parallelen Auswertungspfad; zuvor las jede solche Formel Zeile 1 der Spalte — typischerweise den Kopfzeilentext — und die Neuberechnung schlug sofort mit einem Typumwandlungsfehler fehl, wenn diese Zeile Text enthielt
Version 2.293.0
Geändert
- Der optionale Cache
RecalcAggregateCachedeckt jetzt auch unbedingte Einzelbereichs-Aggregate ab —SUM,AVERAGE,MIN,MAX,COUNTundCOUNTAüber einen einfachen Einzelblattbereich — sodass wiederholte Summen über denselben Block das Ergebnis des ersten Durchlaufs unter derselben Referenzstabilitätskontrolle wie die bedingte Familie wiederverwenden
Version 2.292.0
Hinzugefügt
- Arbeitsmappen-zu-Code-Generator (
TXLSCodeGen): Durchläuft eine Arbeitsmappe und gibt die Quellanweisungen aus, die sie wieder aufbauen — Blatterstellung, Zellwerte, Formeln, Zahlenformate, Spaltenbreiten und verbundene Bereiche — in Delphi- oder C++Builder-Dialekten, sodass eine handgefertigte Datei zu einem gebrauchsfertigen API-Beispiel wird - Spaltenregel-Importprüfer (
TXLSImportCheck): Pflicht-, Textlängen-, Regex-Muster- und Eindeutigkeitsregeln pro Spalte plus ein Aufrufer-Callback laufen über die Datenzeilen eines Arbeitsblatts; Verstöße können mit roter Schrift und einem Begründungskommentar annotiert zurückgeschrieben werden, undKeepOnlyViolationsverdichtet das Blatt auf die Kopfzeile plus fehlerhafte Zeilen für eine „Bitte korrigieren und zurücksenden“-Arbeitsmappe
Version 2.291.0
Hinzugefügt
- Der CSV-Import akzeptiert einen Optionsdatensatz:
OpenCSV-Überladungen nehmen das Überspringen führender Zeilen (SkipRows, für Titelbanner über dem Raster) und das Entfernen von Leerzeichen (AutoTrim) neben den Umschaltern für Trennzeichen und Typerkennung an FillMergedCellValuesauf einem Arbeitsblatt kopiert den Ankerwert jedes verbundenen Bereichs in jede abgedeckte Mitgliedszelle, sodass berichtsartige Blätter mit verbundenen Beschriftungen als ein flaches Raster gelesen werdenAddListValidationerhält eine Überladung mit Zeichenfolgen-Array, die die Einträge in einem einzigen Aufruf zu einer Dropdown-Liste verbindet- Der Datensatz-Export (
TDataToXLS) erhält Zebrastreifen (AlternatingColor, auf ungeraden Detailzeilen gemalt) und eine Summenzeile (SummaryRow), die echteSUM-Formeln für die exportierten numerischen Felder oder eine vom Aufrufer benannte Feldliste anhängt, mit einer fett formatierten Beschriftungszelle
Behoben
- Der Datensatz-Export wendet jetzt den konfigurierten
DetailColor-Hintergrund auf Detailzellen an; zuvor wurde die Eigenschaft akzeptiert, aber nie gemalt
Version 2.290.0
Geändert
- Der optionale Cache
RecalcLookupCachedeckt jetzt auchVLOOKUP-Exakt- und Näherungssuchen,HLOOKUPundMATCH-Vergleichstypen 0 und 1 ab, sodass Arbeitsmappen, die diese klassischen Nachschläge über denselben Bereich wiederholen, das Ergebnis der ersten Suche während eines Neuberechnungsdurchlaufs unter derselben Referenzstabilitätskontrolle wieXLOOKUP/XMATCHwiederverwenden
Version 2.289.0
Hinzugefügt
- Der Streaming-Direktschreiber erhält einen optionalen
TrackColumnWidths-Modus: Das Arbeitsblatt wird im Speicher zwischengepuffert, während Zeilen streamen, sodass die gespeicherte Datei den<dimension>-Hinweis zum verwendeten Bereich und pro Spalte Breiten trägt, die auf den längsten gesehenen Anzeigetext bemessen sind (Zeichen plus Auffüllung, bei 255 begrenzt) und damit AutoFit für Exporte annähern, deren Daten erst beim Streamen bekannt werden; explizit gesetzte Spaltenbreiten gewinnen immer
Version 2.288.0
Hinzugefügt
- Das Öffnen von XLSX-Paketen toleriert nicht-kanonische Namespace-Präfixe: Arbeitsblätter, Diagramme, Zeichnungen und Dokumenteigenschaften-Teile, die ihre Elemente an einen anders präfixierten (oder ISO 29500 strikten) Namespace binden, werden beim Parsen auf das Standardvokabular normalisiert, sodass Dateien von Drittanbieter-Generatoren und Speichern im strikten Modus korrekt laden
- Arbeitsblätter, deren Zellen das
r-Positionsattribut weglassen, platzieren jede Zelle in Scan-Reihenfolge nach ihrem Vorgänger, und Zeilen ohner-Attribut setzen die Zeilensequenz fort — die Konvention, die mehrere Streaming-Schreiber verwenden
Version 2.287.0
Hinzugefügt
Openliest Excel-2.0/3.0/4.0-Arbeitsmappen (BIFF2-4): Rohe BIFF-Streams ohne OLE-Hülle laden mit ihren Zahlen, Texten, Booleschen Werten, Fehlern und gecachten Formelergebnissen; Zeichenfolgen-Ergebnisse von Formeln kommen über den BIFF2-4-String-Datensatz, und der Codepage-Datensatz des Streams steuert die Textdekodierung
Geändert
- BIFF2-4-Dokumente werden für Werte gelesen — Zahlenformate und Stile dieser Generationen sind nicht modelliert, sodass Daten als rohe Seriennummern und Formeln als ihre zuletzt berechneten Werte erscheinen
Version 2.286.0
Hinzugefügt
- Zahlenformate mit Vergleichsabschnitten (
[>=100],[<0], …) wählen den Abschnitt überall dort nach Wert aus, wo Anzeigetext gerendert wird, und entsprechen damit dem Verhalten von Excels bedingtem Format - Textabschnitte von Zahlenformaten (
"ID:"@) schablonieren Zeichenfolgenwerte, statt das Format zu ignorieren SetCellFromHtmlfüllt eine Zelle aus einem leichten HTML-Fragment:<b>/<strong>,<i>/<em>,<u>,<br>und<font color=...>werden zu Rich-Text-Läufen; andere Tags fallen weg, während ihr Text erhalten bleibt- Das
TaggedText-Markup akzeptiert<br>-Zeilenumbrüche,<strong>/<em>-Aliasse, die<font color=...>-Attributform und die Entitäten"/ - Spalten-Zusammenhaltblöcke (
KeepColumnsTogether) verhindern vertikale Seitenumbrüche innerhalb einer Spaltengruppe und spiegeln damit das Zeilenmerkmal in Paginierung, Vorschau und PDF-Ausgabe - Klassische Spinner- und ScrollBar-Formularsteuerelemente können mit Min/Max/Inc/Page-Einstellungen und einer verknüpften Zelle in XLS-Dateien geschrieben werden, ausgegeben über den OBJ-FtSbs-Unterdatensatz
WriteAutoValueerkenntm/d/yyyy- undd.m.yyyy-Daten mit optionalen Zeiten (einschließlich AM/PM) über die ISO-Form hinaus und weist unmögliche Kalenderdaten zurückConvertFormulasToValueserhält einenOnlyExternal-Modus, der nur Formeln einfriert, die andere Arbeitsmappen referenzieren, und die klassische XLS-Fassade erhält die Methode für das gesamte Blatt- Der Zeilen-AutoFit misst verbundene Zellen gegen ihre kombinierte Spaltenbreite und verteilt die benötigte Höhe über die verbundenen Zeilen
Version 2.285.0
Hinzugefügt
- Der PDF-Export zeichnet Arbeitsblattdiagramme als native Vektorgrafiken: gruppierte, gestapelte und prozentual gestapelte Säulen und Balken, Liniendiagramme mit Markierungen, Flächendiagramme, Kreis- und Ringdiagramme mit Prozentbeschriftungen, Punktdiagramme und Netzdiagramme — jeweils mit beschriftetem Rahmen, automatisch skalierten Achsen, Skalenbeschriftungen, Gitternetzlinien, einer Legende, optionalen Datenbeschriftungen pro Punkt, einfarbigen Füllungen pro Serie und Excels Standard-Akzentpalette; 3D-Diagrammtypen werden als ihre 2D-Projektion gerendert
- Diagramme, die jenseits der letzten Zelle verankert sind, erweitern jetzt die Druckfläche, sodass ein unterhalb der Datenzeilen platziertes Diagramm weiterhin in der PDF- und Vorschauausgabe erscheint, statt abgeschnitten zu werden
Version 2.284.0
Hinzugefügt
- PDF-Kopf- und -Fußzeilen rendern Excels Stilcodes:
&Bfett,&Ikursiv,&U/&Eeinfach/doppelt unterstrichen,&Sdurchgestrichen,&X/&Yhoch-/tiefgestellt,&nnSchriftgröße,&KFarbe und die Schlüsselwörter&"Font,Style"für die Schriftgewichtung - Der PDF-Export berücksichtigt den Schwarzweiß-Druckmodus des Arbeitsblatts, indem Füllungen, Schriften, Rahmen, Datenbalken und Symbole auf Luminanzgrau reduziert werden
- Gedruckte Zeilen- und Spaltenüberschriften (Zeilennummern und Spaltenbuchstaben) werden neben dem Raster gerendert, wenn das Blatt sie anfordert
- Druckzentrierung:
CenterHorizontally/CenterVerticallyverschieben das gedruckte Raster zwischen den Rändern, während Kopf- und Fußzeilenbänder an ihrem Platz bleiben - Zellkommentare werden entweder als roter Eckindikator gedruckt (Anzeige-Modus) oder über die neue Arbeitsblatteigenschaft
PrintCommentsAtEndals Kommentarliste auf einer Seite nach dem Blatt, was ExcelscellComments="atEnd"-Seiteneinrichtungswert im Rundlauf übernimmt - Interne Hyperlinks (
Sheet!Cell-Ziele) werden zu klickbaren GoTo-Links im Dokument, die zur Seite des Zielblatts springen - Der Exporteur legt eine
PageLayout-Einstellung für den Viewer offen und schreibt ein XMP-Metadatenpaket neben dem Dokumentinformationen-Wörterbuch - TrueType-Sammlungsschriften (
.ttc) können als eingebettete Unicode-Schrift dienen; die fetten und kursiven Schnitte der eingebetteten Schrift werden synthetisiert, wenn nur ein regulärer Schnitt existiert
Geändert
- Spaltenbreiten werden über Excels Maximum-Ziffernbreiten-Formel (Calibri-11-Metriken) statt über eine feste Schätzung pro Zeichen umgerechnet, sodass die Breiten in PDF und Vorschau Excels gespeicherten Pixelbreiten entsprechen
- Umbrochene Zeilen werden vom ersten Zeichen ihrer eigenen Zeile neu gemessen, wodurch umbrochene Zeilen korrigiert werden, die die Breite von Wörtern ignorierten, die durch einen früheren Umbruch nach unten verschoben wurden
Version 2.283.0
Hinzugefügt
- Der PDF-Export bricht
WrapText-Zellen mit echtem Wortumbruch, zeilenweiser horizontaler Ausrichtung, vertikaler Blockausrichtung und ausgerichtetem oder verteiltem Abstand um - Der PDF-Export rendert gedrehten Zelltext über PDF-Textmatrizen, einschließlich vertikal gestapeltem Text, und berücksichtigt
ShrinkToFit, indem die Schriftgröße schrittweise verringert wird, bis der Wert passt - PDF-Text, der eine Zelle überläuft, erstreckt sich jetzt über leere Nachbarzellen und wird an der ersten belegten Zelle abgeschnitten, entsprechend dem Druckverhalten von Excel; die allgemeine Ausrichtung richtet Zahlen wie Excel rechtsbündig aus
- Der PDF-Export zeichnet Rich-Text-Läufe mit Schriftstil, -größe, Farbe, Unterstreichung, Durchstreichung, Hoch- und Tiefstellung pro Lauf; umbrochene Zeilen behalten die Formatierung pro Lauf
- Der PDF-Export zeichnet diagonale Zellrahmen und echte Doppellinien-Rahmen
- Text, der verbundene Zellen überspannt, wird jetzt über das gesamte verbundene Rechteck gezeichnet, ausgerichtet, umbrochen und verankert Hyperlinks, und abgedeckte Verbundmitglieder malen ihren eigenen Hintergrund nicht mehr
Geändert
- PDF-Textbreiten stammen aus kalibrierten Pro-Zeichen-Vorlauftabellen statt aus einer festen durchschnittlichen Zeichenbreite, sodass Ausrichtung, Umbruch und Verkleinerung der gedruckten Seite entsprechen
- Der Zelleinzug verschiebt Text wie in Excel, und Symbolsatz-Zellen rücken ihren Wert neben dem Symbol ein
Version 2.282.0
Hinzugefügt
- Der PDF-Export bewahrt die PNG-Transparenz: Bilder mit Alphakanal geben jetzt eine Soft-Mask-Ebene aus, statt Transparenz zu verlieren, einschließlich Palettenbildern mit einem tRNS-Chunk
Geändert
- PDF-Seiteninhaltsströme sind jetzt Flate-komprimiert, wodurch exportierte Dokumente erheblich schrumpfen, ohne Anforderungen an den Viewer über PDF 1.4 hinaus
- Der PDF-Export bündelt aufeinanderfolgende Textoperationen in gemeinsame Textblöcke und überspringt redundante Schrift-, Größen- und Farbauswahl, wodurch sowohl die Ausgabegröße als auch die Erzeugungszeit reduziert werden
- Benachbarte Zellen mit derselben einfarbigen Füllung werden als ein verbundenes Rechteck gerendert, und kollineare Rahmenabschnitte mit demselben Stil werden als einzelner Lauf statt als Ränder pro Zelle gezeichnet
- PNG-Bilder werden ohne Dekodierung und Neukodierung in das PDF eingebettet, wobei der ursprüngliche komprimierte Stream und die exakten Pixel erhalten bleiben
- Bilder mit identischem Byteinhalt werden einmal eingebettet und gemeinsam genutzt, unabhängig davon, wie viele Bildobjekte sie referenzieren
Behoben
- Hyperlink-Anmerkungen werden jetzt auch für Linkzellen erstellt, deren Text über den Pfad der eingebetteten Unicode-Schrift gerendert wird
- PDF-Inhaltsbytes hängen nicht mehr von der aktiven System-Codepage ab, sodass westlicher Text auf jeder Windows-Gebietsschemaeinstellung identisch gerendert wird
Version 2.281.0
Behoben
- Zwischenablage-Leser kürzen den Datenhandle nicht mehr auf 32 Bit, wodurch
XLSGetClipboardBiff8und der XML-Spreadsheet-Einfügepfad in 64-Bit-Anwendungen leere Ergebnisse lieferten - Zwischenablageoperationen versuchen bis zu eine halbe Sekunde lang erneut, die Zwischenablage zu öffnen, wenn eine andere Anwendung sie hält, statt beim ersten Konflikt zu scheitern
Geändert
- Nachschlagevorgänge für Regeln bedingter Formate (
FindAt/IndexOfCell-Pfade) parsen den Zellbereich jeder Regel einmal statt bei jeder abgefragten Zelle, entsprechend dem Datenvalidierungs-Cache - Der PDF-Export erstellt einen Hyperlink-Index pro Blatt und ersetzt den linearen Scan pro Zelle durch eine binäre Suche
Version 2.280.0
Hinzugefügt
- Benutzerdefinierte Funktionen können per Name registriert werden:
RegisterUserFunctionleitet Formeln, die diesen Namen aufrufen, direkt an ihren Handler weiter (keine globale If-Kette in einemOnUserFunction), wobei das Arbeitsmappenereignis weiterhin nicht registrierte Namen bedient ScanUnknownFunctionsprüft eine Arbeitsmappe auf Formelfunktionen, die die Berechnungs-Engine nicht auswerten kann, und meldet jede Zelle und jeden Namen — ideal, bevor man die Neuberechnung bei fremden Dateien aktiviertRecoveryMode: Ein strukturell beschädigtes Arbeitsblatt-Teil wird mit einer Warndiagnose übersprungen, statt das gesamte Öffnen abzubrechen- Natives BIFF8-Zwischenablageformat:
XLSSetClipboardBiff8/XLSGetClipboardBiff8veröffentlichen und lesen denBiff8-Stream, den Excel selbst verwendet, sodass der Zwischenablage-Austausch Werte, Formeln und Formatierung behält
Geändert
- Die Datenvalidierungsprüfung parst den Zellbereich jeder Regel einmal statt bei jeder Zelle und beschleunigt
CheckDataValidationsüber große Blätter
Version 2.279.0
Hinzugefügt
- Der PDF-Export bettet Arbeitsblattbilder ein: PNG-/GIF-/BMP-Bitmaps werden in Flate-komprimierte RGB-XObjects umgewandelt, und JPEG-Dateien passieren unverändert über DCTDecode (ohne Neukomprimierung); identische Bilder auf mehreren Seiten teilen sich ein Objekt, und Bilder, die ohne explizite Größe hinzugefügt wurden, verwenden jetzt standardmäßig ihre Pixelabmessungen bei 96 DPI
- Zusammenhaltblöcke:
KeepRowsTogetherverhindert, dass die Druck-/PDF-Paginierung innerhalb eines Zeilenblocks bricht, der auf eine Seite passt, undXlsxAutoPageBreakswandelt die natürlichen (zusammenhaltbewussten) Seitengrenzen in explizite Zeilenumbrüche um, sodass Excel wie der Export paginiert - Konfigurierbare XLSX-Komprimierung:
ZipCompressionLevelwählt die Deflate-Stufe für Speichervorgänge (Standard -1 bis 9) - Reproduzierbare Speichervorgänge:
DeterministicOutputfixiert die Zeitstempel der Zip-Einträge, sodass das zweimalige Speichern derselben Arbeitsmappe byte-identische Dateien erzeugt
Behoben
- Beschädigte Verbunddateien mit zyklischen FAT-Ketten hängen den klassischen .xls-Lader nicht mehr auf — die Durchläufe von Verzeichnis- und Stream-Ketten tragen Zykluswächter
Version 2.278.0
Hinzugefügt
- Der PDF-Export gibt klickbare Link-Anmerkungen für Arbeitsblatt-Hyperlinks aus: Zellen mit einer URL erhalten ein unsichtbares /Link-Rechteck mit einer URI-Aktion über dem Zellbereich
- Der PDF-Export schreibt eine Dokumentgliederung (Lesezeichen): Jedes exportierte Arbeitsblatt wird zu einem Lesezeichen, das auf seine erste gerenderte Seite zeigt
Version 2.277.0
Hinzugefügt
- Datenvalidierung erhält eine Prüf-API:
CheckDataValidationsprüft befüllte Zellen gegen die Regeln des Arbeitsblatts (Listenmitgliedschaft, Grenzen für Ganzzahl/Dezimal/Datum/Uhrzeit, Textlänge, benutzerdefinierte Formeln über die Berechnungsengine) und meldet jede verletzende Zelle mit dem Regelindex und einem Grund - Typisierte benutzerdefinierte Dokumenteigenschaften durchlaufen
docProps/custom.xml: Text-, Zahlen-, Datums- und Boolean-Einträge aufWorkbook.CustomProperties - Benutzerdefinierte XML-Datenteile durchlaufen
Workbook.CustomXmlPartsmit Beziehungen auf Arbeitsmappenebene und Inhaltstypen - Bilder akzeptieren einen SVG-Begleiter:
AddImagePairspeichert die SVG-Bytes neben dem Raster-Fallback, schreibt diesvgBlip-Erweiterung und den zusätzlichen Medienteil, den Excel 2016+ konsumiert - Diagramme können Datenbeschriftungstext aus einem Zellbereich beziehen (“Wert aus Zellen”) über
DataLabelsRange, der als Diagrammerweiterung ausgegeben und beim Öffnen wiederhergestellt wird - Benutzerdefinierte Tabellenstile:
Workbook.CustomTableStylesdefiniert benannte Stile mit farbigen/fetten Abschnitten (Kopfzeile, Summenzeile, Streifen, Randspalten), geschrieben nachtableStylesmit eigenen Differenzialstilen, sodass Tabellen sie beim Namen referenzieren können
Version 2.276.0
Hinzugefügt
- Zellverlaufsfüllungen: lineare Verläufe nach Grad und Pfadverläufe mit Farben pro Stopp durchlaufen
gradientFill, rendern als CSS-Verläufe im HTML-Export, als bandinterpolierte Füllungen im PDF-Export und im Arbeitsmappen-Viewer und werden über dieTXLSXFills.AddLinearGradient-Konvention angeboten - Zahlenformate für verstrichene Zeit (
[h]:mm:ss,[mm]:ss,[s]) rendern jetzt laufende Summen statt wie eine Uhr umzubrechen, in jedem Anzeigepfad (FormattedText, HTML, PDF, Werte bedingter Formate) - Bruchzahlenformate (
# ?/?,# ??/??, feste Nenner wie0/8) rendern mit Exzells bester rationaler Näherung, einschließlich Ausblenden der Nullganzzahl und Ausrichtungsspationierung - Farbklammern im Stil von
[Red]werden jetzt überTXLSXCell.GetFormattedTextColorverfügbar gemacht und färben den Zelltext im PDF-Export neu TXLSXWorkbook.ValidateNumberFormatprüft eine benutzerdefinierte Formatzeichenfolge so, wie es der Dialog Benutzerdefiniertes Format von Excel tut — Abschnittsanzahl, Anführungszeichenbalance und Klammerinhalt (Farben, Bedingungen, Zeiteinheiten, Gebietsschema-Anweisungen)- Der Zustand eingefrorener Bereiche kann über
GetFrozenPaneszurückgelesen werden, und die Scrollposition des unteren rechten Bereichs durchläuftSetPaneScroll/GetPaneScroll(geschrieben alstopLeftCell) - Der Umschalter für die Anzeige von Zeilen-/Spaltenbeschriftungen
DisplayRowColHeadersdurchläuftshowRowColHeaders - Diagramme legen
DispBlanksAs(Lücke / überbrücken / Null) undPlotVisibleOnlyoffen, statt sie fest zu verdrahten, und stellen beide beim Öffnen aus dem erhaltenen ChartML wieder her - Kommentare tragen bearbeitbare Rahmengemetrie (
WidthPt/HeightPt, VML-Punkte) plus eine textgesteuerteAutoSizeFromText-Heuristik
Version 2.275.0
Hinzugefügt
- Suchen & Ersetzen versteht Excel-Platzhalter:
*(beliebige Zeichenfolge),?(genau ein Zeichen) und~als Escape für ein wörtliches*,?oder~— dieselbe Semantik, die Excel selbst in Suchen & Ersetzen, in Kriterien derCOUNTIF-Familie und in Autofiltern anwendet - Das
FindTextdes XLSX-Arbeitsblatts erhält eine Überladung mit Optionen: Groß-/Kleinschreibung beachten, ganzen Zellinhalt abgleichen, auch Formeltext durchsuchen, Platzhaltermodus und Rückwärtssuche, mit einem Startanker, sodass wiederholte Aufrufe durch die Treffer wandern ReplaceTexterhält denselben Optionssatz plus einen optionalen Callback pro Treffer, der jede Ersetzung Zelle für Zelle annehmen, umschreiben, überspringen oder abbrechen kann- Das klassische XLS-Arbeitsblatt
FindText/ReplaceTexterhält Überladungen für Platzhalter und ganze Zellen, sodass beide Fassaden die Excel-Suchsemantik teilen GetRangeStatisticsscannt ein Rechteck und meldet Minimum, Maximum, Summe, Durchschnitt, Anzahl numerischer Werte und Anzahl befüllter Zellen in einem DurchgangWriteAutoValueschreibt Text so, wie die eigene Zelleingabe von Excel ihn interpretiert:TRUE/FALSEwerden zu Booleans, Fehlerliterale wie#N/Awerden zu Fehlerwerten, eindeutige ISO-Datumsangaben werden zu Datumsangaben, einfache Zahlen im invarianten Format werden zu Zahlen, und alles andere — einschließlich führender Nullen und Tausendertrennzeichen — bleibt Text (beide Fassaden)GetHtmlFromCellrendert eine Zelle als gestyltes HTML-Fragment mit maskiertem Markup und ergänzt damit den HTML-Export des gesamten ArbeitsblattsSortRangeakzeptiert ein Flag für Groß-/Kleinschreibung, sodass Textschlüssel unabhängig von der Groß-/Kleinschreibung alphabetisch sortiert werden (XLSX-Fassade)
Version 2.274.0
Hinzugefügt
- Excel-Tabellen durchlaufen jetzt Tabellen ohne Kopfzeile und tabellenbezogene Kommentare über die neuen Tabelleneigenschaften
HasHeaderRowundComment, geschrieben alsheaderRowCount="0"und dascomment-Attribut - Diagramme können über die neue
ChartStyle-Eigenschaft einen Stil der Excel-Galerie auswählen (1–48 oder den erweiterten Bereich 101–148), durchlaufend über das Stilelement des Diagrammteils - Kombinationsdiagramme können die Schichtung des Plotbereichs über eine neue
ZOrder-Eigenschaft auf jeder Plotgruppe steuern, sodass eine Säulenserie hinter oder vor einer Linienserie gerendert werden kann - Arbeitsblätter und einzelne Zellen können Formeln über
ConvertFormulasToValuesundConvertFormulaToValuein ihre berechneten Werte einfrieren, wobei das zwischengespeicherte Ergebnis erhalten bleibt, während die Formel, der Link zur gemeinsamen Formel und die Array-Metadaten verworfen werden - Definierte Namen tragen jetzt einen optionalen Kommentar über die neue
Comment-Eigenschaft, der über den klassischen Namenskommentar-Datensatz und dascomment-Attribut des XLSX-definierten Namens durchläuft - Der PDF-Export akzeptiert benutzerdefinierte Papierabmessungen in Punkten über die neuen Eigenschaften
PaperWidthundPaperHeightund überschreibt die Papiergrößen-Enumeration für jedes gerenderte Arbeitsblatt - Der PDF-Export kann über die neue
HidePrintObjects-Menge die Kopf- oder Fußzeilenleiste unterdrücken - Die Kopf- und Fußzeilenfeldcodes
&F(Dateiname) und&Z(Pfad) des PDF-Exports werden jetzt mithilfe des Quell-Arbeitsmappenpfads erweitert, der von dateibasierten Exporten erfasst wird - Datenbalken unterstützen eine unabhängige Rahmenfarbe für negative Werte über die neuen Einstellungen
NegativeBorderColorundNegativeBarBorderColorSameAsPositive, ausgegeben in der Datenbalkenerweiterung von Excel 2010+ - Integrierte Zellstile, deren Bezeichner keinen Legacy-Datensatzplatz haben (Hyperlink, Titel, Überschriften, Akzente, Gut/Schlecht/Neutral, …), lösen jetzt beim Speichern ihre kanonischen Anzeigenamen auf, sodass die Stilgalerie von Excel einen Rundlauf übersteht
- Agile-verschlüsselte Arbeitsmappen tragen jetzt einen echten
dataIntegrity-Block: Der Writer gibt einen spezifikationskonformen HMAC über das vollständige verschlüsselte Paket aus, und das Öffnen verifiziert ihn und erkennt ein falsches Passwort oder ein manipuliertes Paket; Dateien von Writern ohne den Block öffnen weiterhin unverändert - Klassische Arbeitsmappen unterstützen die Schreibreservierung “Passwort zum Ändern” von Excel über
SetModifyPassword(Empfehlung der Schreibgeschützt-Flagge, Legacy-Passwort-Hash und reservierender Benutzername, ausgegeben als Datensatzpaar WRITEPROT + FILESHARING);IsWriteReservedmeldet den Zustand und ein leeres Passwort hebt ihn auf - Ein optionales
RecalcLookupCache-Memo beschleunigt die nachschlageintensive Neuberechnung: WiederholteXLOOKUP/XMATCH-Scans über denselben Bereich verwenden das Ergebnis des ersten Scans. Das Memo greift nur, wenn der Abhängigkeitsgraph nachweislich referenzstabil ist (keinOFFSET/INDIRECToder keine unauflösbaren Referenzen, keine zirkulären Ketten, keine What-If-Datentabellen) und bleibt andernfalls still deaktiviert, sodass die Ergebnisse immer identisch sind - Ein begleitendes
RecalcAggregateCache-Memo beschleunigt die Neuberechnung bedingter Aggregate: WiederholteSUMIF/COUNTIF/AVERAGEIF-Scans über denselben Bereich und dieselben Kriterien verwenden das erste Ergebnis wieder, unter derselben Referenzstabilitäts-Schranke und mit identischen Ergebnissen LAMBDA-Ausdrücke werden mit vollständigen Closures ausgewertet: Ein definierter Name, dessen RefersTo einLAMBDAist, kann namentlich mit Argumenten aufgerufen werden (=MyFunc(5)), Closures binden lexikalisch innerhalb vonLET(=LET(f, LAMBDA(x, x*2), f(21))), Parameter überdecken gleich geschriebene Spaltenreferenzen, und der Formeltext durchläuft unverändert; ein nacktesLAMBDA, das als Zellergebnis gespeichert wird, behält das Überspringen-ohne-Wert-VerhaltenLEThat jetzt vollständige Semantik: Jede Bindung ist für spätere Bindungen und den Rumpfausdruck sichtbar, einschließlich verschachtelterLET-Komposition — und ersetzt die bisherige Teilimplementierung- Formeltext akzeptiert jetzt das Komma als Argumenttrennzeichen neben dem klassischen Semikolon, passend zur kanonischen Syntax von Excel für eingefügte und importierte Formeln
- Strukturierte Referenzen in Formeln werden jetzt ausgewertet:
Table[Column],Table[[Column]], Spaltenbereiche und die Elementformen[#Data]/[#All]/[#Headers]/[#Totals]werden beim Parsen gegen die Excel-Tabellen der Arbeitsmappe aufgelöst, sodass=SUM(Table1[Amount])berechnet, während der ursprüngliche Formeltext weiterhin unverändert durchläuft; unauflösbare Referenzen behalten das bisherige Überspringen-ohne-Wert-Verhalten, und aktuelle-Zeile-Formen ([@Column]) bleiben nicht unterstützt
Geändert
- Wenn eine Arbeitsmappe die volle Genauigkeit deaktiviert, werden neuberechnete Ergebnisse jetzt auf die Anzahl der Dezimalstellen gerundet gespeichert, die das Zahlenformat jeder Zelle anzeigt, passend zum Verhalten “Genauigkeit wie angezeigt” von Excel für von HotXLS berechnete Werte
- In XLSX geschriebene Regeln für bedingte Formatierung erhalten jetzt blattweit eindeutige Prioritäten, wodurch Dateien mit doppelten Prioritäten entfallen, die Excel zur Reparaturaufforderung veranlassten
- Bedingte Formate, die über die neue
IsPivot-Eigenschaft als auf PivotTable beschränkt markiert sind, werden in den Erweiterungscontainer geleitet statt in den Hauptblock für bedingte Formatierung des Arbeitsblatts, wo Excel sie verwerfen oder falsch platzieren würde
Version 2.273.0
Geändert
TXLSXWorkbook.PreserveRawPartskopiert jetzt unveränderte Arbeitsblattbilder, Kopf- und Fußzeilenbilder und Diagrammteile mit ihren ursprünglichen komprimierten Nutzlasten, während Bilddatenbearbeitungen und Diagrammmodellbearbeitungen den Serialisierungspfad nehmen- Ein erfolgreicher Datei-SaveAs akzeptiert jetzt das festgeschriebene Paket als nächste Rohkopie-Basislinie, sodass nachfolgende Speichervorgänge neu serialisierte opake Daten, VBA, Verbindungen, externe Links, Bilder, Diagramme, Designs und Pivot-Nutzlasten wiederverwenden können, ohne das vorherige Quellpaket erneut zu öffnen
Behoben
- Unbekannte Arbeitsblatt- und Zeichnungsbeziehungen aus Paketen mit nicht standardmäßigen Teilpositionen werden jetzt gegen ihre generierten kanonischen Eigentümer neu basiert, einschließlich reiner Zeichnungspakete, deren einzige Anker erhaltene nicht unterstützte Formen sind
- Eine fehlgeschlagene Kopie eines komprimierten Elements rollt jetzt ihren partiellen lokalen Header, die Nutzlast-Bytes, die Einträge des übergeordneten Ordners und den Zentralverzeichnis-Zähler zurück, bevor der sichere Serialisierungs-Fallback greift, und verhindert so, dass unerreichbare Daten im Ausgabearchiv anwachsen
Version 2.272.0
Geändert
- XLSX-SaveAs öffnet jetzt für den vollständigen Speichervorgang ein validiertes Quellarchiv und kopiert jeden unveränderten, über Beziehungen erreichbaren opaken Teil mit seiner ursprünglichen komprimierten Nutzlast, wodurch wiederholte Zentralverzeichnis-Scans sowie Dekomprimierung und Rekomprimierung vermieden werden, während geänderte Nutzlasten weiterhin den Serialisierungspfad nehmen
Behoben
- Unbekannte Arbeitsmappenbeziehungen aus Paketen, deren Arbeitsmappe einen nicht standardmäßigen Teilnamen verwendet, werden jetzt gegen den generierten Arbeitsmappenspeicherort neu basiert, wodurch verhindert wird, dass ihre erhaltenen Zielteile nach SaveAs unerreichbar werden
- Projizierte Direktlesungen behalten jetzt die Masterdefinitionen gemeinsamer Formeln außerhalb der ausgewählten Zeilen- oder Spaltenmenge, sodass ausgewählte Folgezellen weiterhin ihre korrekt übersetzten Formeln erhalten, ohne nicht ausgewählte Werte oder Rich Text neu aufzubauen
- Das Bearbeiten eines Diagramms entfernt ein nicht modelliertes Achsen-Zahlenformat nicht mehr nur deshalb, weil die Erstellung des Zahlenformats von Datenbeschriftungen ein Element mit demselben lokalen Namen verwendet
Version 2.271.0
Behoben
- Der klassische HTML-Exporteur schreibt jetzt UTF-8 und deklariert es mit einem
<meta charset>plus einem HTML5-Doctype; zuvor wurde der Stream in der System-ANSI-Codepage geschrieben, was jeden Nicht-ASCII-Zellenwert beschädigte, und die fehlende Zeichensatzdeklaration überließ die Seite dem Browser
Version 2.270.0
Hinzugefügt
- Datenbeschriftungen von Diagrammen können jetzt über die neuen Serieneigenschaften
LabelNumFmtundLabelPos(mit ihren*Set-Flags) ein explizites Zahlenformat und eine Position tragen, ausgegeben als<c:numFmt>und<c:dLblPos>in sowohl den Standard- als auch den Kombinationsdiagramm-Writern — was Prozent- oder Währungsbeschriftungstext und Positionen wie Außenende oder Mitte ermöglicht; jede einzelne Einstellung aktiviert außerdem den Beschriftungsblock, und nicht gesetzte Serien bleiben byte-identisch
Version 2.269.0
Hinzugefügt
- Linien- und Punktdiagrammserien können jetzt über die neuen Eigenschaften
MarkerSymbol,MarkerSizeundMarkerSetein explizites Markersymbol und eine -größe tragen, ausgegeben als<c:marker>-Block der Serie in sowohl den Standard- als auch den Kombinationsdiagramm-Writern; nicht gesetzte Serien behalten automatische Marker - Wertachsen mit Anzeigeeinheiten können jetzt das Einheitenlabel (“Tausender”, “Millionen”, …) über die neue Achseneigenschaft
ShowDispUnitsLabelanzeigen
Version 2.268.0
Hinzugefügt
- XLSX-Diagrammtrendlinien unterstützen jetzt einen festen Achsenabschnitt plus Prognosezeiträume vorwärts und rückwärts über die neuen Eigenschaften
Intercept/InterceptSet,ForwardundBackward, ausgegeben als<c:intercept>/<c:forward>/<c:backward>; zuvor bot nur der klassische BIFF-Diagrammersteller diese Steuerungen, und nicht gesetzte Trendlinien bleiben byte-identisch
Version 2.267.0
Hinzugefügt
- Die Formelberechnung wertet jetzt die Funktionen für komplexe Zahlen
IMCOS,IMSIN,IMTAN,IMSEC,IMCSC,IMCOT,IMLOG2undIMLOG10aus und vervollständigt die technische FamilieIM*mit trigonometrischer, reziproker sowie Logarithmus-Abdeckung zur Basis 2/Basis 10 über Operanden als komplexe Zeichenfolgen
Version 2.266.0
Geändert
- Der Streaming-Direktleser wendet jetzt die Spaltenprojektion an, bevor Zellwerte gesammelt werden: Wenn eine projizierte Spaltenmenge konfiguriert ist, überspringen Zellen außerhalb dieser Menge den Aufbau von Wert, Formel und Rich-Text-Zeichenfolge, der zuvor für jede Zelle ausgeführt und am Zellende verworfen wurde, was breite Blatt-Lesevorgänge beschleunigt, die nur wenige Spalten projizieren
Version 2.265.0
Hinzugefügt
- Balken- und Säulendiagramm-Plotgruppen legen jetzt über die neuen Eigenschaften
BarGrouping,GapWidthundOverlapeinen konfigurierbaren Gruppierungsmodus (clustered,stacked,percentStacked), eine Cluster-Lückenbreite und eine Serienüberlappung offen; zuvor war jedes Balken-/Säulendiagramm fest aufclusteredverdrahtet, ohne Steuerung von Lücke oder Überlappung, und nicht gesetzte Gruppen bleiben byte-identisch, während die Bearbeiten-nach-Öffnen-Zusammenführungsliste die neuen Elemente als Eigentum behandelt
Version 2.264.0
Behoben
- PDF-Zellrahmen spiegeln jetzt den Rahmenstil und die Rahmendicke des Arbeitsblatts wider, statt jede Rahmenlinie als identische 0.75 pt durchgezogene Linie zu zeichnen: XLSX-Zellen rendern die Dicken dünn, mittel, dick, haardünn und doppelt sowie die Muster gestrichelt, gepunktet, Strich-Punkt, Strich-Punkt-Punkt und schräg Strich-Punkt, und BIFF-Zellen rendern die Stile dünn, mittel und gestrichelt/gepunktet
Version 2.263.0
Hinzugefügt
- Der PDF-Export kann jetzt Dokumentmetadaten über die neuen Eigenschaften
DocumentTitle,DocumentAuthor,DocumentSubjectundDocumentKeywordseinbetten; wenn eine davon gesetzt ist, trägt das PDF ein/Info-Wörterbuch mit diesen Feldern plus einerCreator/Producer-Identität und einemCreationDate, während Standardexporte ohne Metadaten byte-identisch bleiben
Version 2.262.0
Behoben
- Der CSV-Export setzt Felder nicht mehr übermäßig in Anführungszeichen: Ein internes Leerzeichen erzwingt keine Anführungszeichen mehr, sodass Werte wie
John Smithungequotet geschrieben werden, passend zu RFC 4180 und Excel; Felder mit dem Trennzeichen, einem doppelten Anführungszeichen, einem Zeilenumbruch oder führendem oder nachfolgendem Leerraum werden weiterhin wie zuvor gequotet
Version 2.261.0
Hinzugefügt
- Jede Diagrammserie kann jetzt über die neue
SolidFillHex-Eigenschaft eine Volltonfüllfarbe tragen, ausgegeben als Formeigenschaften<c:spPr>der Serie; das Zuweisen einer Hex-Farbe stempelt die Serie mit einer Marken- oder Palettenfarbe statt der automatischen Designfarbe von Excel, während nicht gesetzte Serien byte-identisch bleiben und die Bearbeiten-nach-Öffnen-ZusammenführungslistespPrals Eigentum behandelt, sodass es ersetzt statt dupliziert
Version 2.260.0
Geändert
- Das spärliche Zellspeicher-Backend lässt jetzt jeden Blockpuffer für 256 Zeilen geometrisch wachsen (Verdopplung), statt bei jeder angehängten Zelle neu zu allokieren, wodurch die quadratischen Kopierkosten beim Laden dichter Arbeitsblätter entfallen
Version 2.259.0
Behoben
- Die BIFF8-Datensätze für Objektschutz (
OBJECTPROTECT) und Szenarioschutz (SCENARIOPROTECT) des Arbeitsblatts werden jetzt zurück in den Blattschutzzustand gelesen, sodass die Sperrflags einen Rundlauf überstehen, statt geschrieben, aber beim erneuten Laden verloren zu gehen - Die BIFF8-Arbeitsmappen-Globals-Datensätze
MMS,RefreshAllundUseSelFSwerden jetzt durch einen Rundlauf erhalten, statt stillschweigend verworfen zu werden
Version 2.258.0
Hinzugefügt
- Formatierter Anzeigetext erkennt jetzt die Farbanweisungen
[Cyan]und[Magenta]sowie die indizierten Palettenanweisungen[Color1]bis[Color8], sodass formatierte Ausgabe im HTML-Stil diese Farben anwendet, statt sie zu verwerfen
Version 2.257.0
Hinzugefügt
- Die Formelberechnung wertet jetzt die technischen und mathematischen Funktionen
FACTDOUBLE,SQRTPI,DELTA,GESTEP,SERIESSUMundCONVERTaus, wobeiCONVERTMasse, Distanz, Zeit, Druck, Kraft, Energie, Leistung, Magnetismus, Temperatur und Volumen abdeckt und nicht passende Einheitenkategorien ablehnt
Version 2.256.0
Behoben
- Formatierter Anzeigetext rendert jetzt Minuten korrekt in Zeitmasken wie
hh:mm,mm:ssund[h]:mm:ss; zuvor wurde Delphismm(Monat) verwendet, sodass Minutenfelder die Monatsnummer anzeigten - Gebietsschema- und Währungsanweisungen wie
[$-409]und[$$-1009]werden jetzt aus der formatierten Ausgabe entfernt, statt als wörtliches$-409-Präfix durchzusickern, während ein in der Anweisung vorhandenes Währungssymbol erhalten bleibt
Version 2.255.0
Hinzugefügt
- Das Lesen von ZIP-Paketen versteht jetzt ZIP64-Archive und parst das Extra-Feld mit erweiterten Informationen sowie den ZIP64-End-of-Central-Directory-Datensatz und -Locator, sodass Arbeitsmappen, deren Teile oder Offsets die klassischen Grenzen von 4 GB / 65535 Einträgen überschreiten, korrekt geöffnet werden, statt den End-of-Central-Directory-Plausibilitätscheck zu verfehlen
Version 2.254.0
Sicherheit
- Die Passwortverifizierung verschlüsselter Arbeitsmappen vergleicht jetzt den Verifizierer-Hash für sowohl Agile als auch Standard Encryption in konstanter Zeit und schließt damit einen Timing-Seitenkanal, der verraten könnte, wie viele führende Bytes des Passwort-Hashes übereinstimmen
- Agile Encryption fällt nicht mehr auf einen zeitbasierten pseudozufälligen Generator für Salts, Verifizierer und Zwischenschlüssel zurück, wenn der systemseitige CSPRNG nicht verfügbar ist; sie schlägt jetzt sicher fehl, statt vorhersagbares Schlüsselmaterial zu erzeugen
Version 2.253.0
Hinzugefügt
- Die Formelberechnung wertet jetzt die Excel-365-Array-Formungsfunktionen
VSTACK,HSTACK,TOROW,TOCOL,WRAPROWS,WRAPCOLS,TAKE,DROP,CHOOSECOLS,CHOOSEROWS,EXPAND,RANDARRAYundTEXTSPLITaus, wobei ihre Ergebnisse über die vorhandene Mechanik dynamischer Arrays überlaufen (Spilling) - Die Formelberechnung wertet jetzt die modernen Textfunktionen
TEXTBEFOREundTEXTAFTERmit Behandlung von Instanznummer, Groß-/Kleinschreibung-Unempfindlichkeit, Übereinstimmungsende und nicht gefundenen Werten aus - Die Formelberechnung wertet jetzt
RANDBETWEEN,ISEVEN,ISODDund denFORECAST.LINEAR-Alias vonFORECASTaus
Version 2.252.0
Hinzugefügt
- Definierte Namen tragen einen optionalen Kommentar, der als BIFF8-Datensatz NAMECMT und als
comment-Attribut des OOXML-definedNameeinen Rundlauf durchläuft - Lokale Datei-Hyperlink-Ziele werden normalisiert (Umwandlung von Backslash in Schrägstrich,
file://- undfile:///-Präfixe, Prozent-Encoding reservierter Zeichen), sodass Excel sie wörtlich speichert - Die Füllungsarten von Formen, Bildern und Textfeldern (einfarbig, Bild, Verlauf, keine, automatisch) werden jetzt über die rohe Fülltyp-Eigenschaft typisiert und durchlaufen den Rundlauf verlustfrei
- Datenbalken bedingter Formate unterstützen unabhängige Rahmenfarben für negative Werte gemäß Excel 2010+
- Pivot-Cache-Felder durchlaufen mehrstufige Datums- und Zahlen-Gruppierungsverknüpfungen im Rundlauf
- Benutzerfunktions-Callbacks erhalten einen Deskriptor der Argumentart, sodass Handler Literalwerte, Zell- oder Bereichsreferenzen und Array-Konstanten unterscheiden können
- Die Formelkompilierung akzeptiert lokalisierte Funktionsnamen (Deutsch, Französisch, Spanisch), die vor dem Lexing in kanonisches Englisch umgeschrieben werden
- Passwort- und Verschlüsselungs-Helfer legen benannte Rückgabecode-Konstanten offen
Geändert
- Paket- und XLSX-Speichervorgänge laufen jetzt durch größere Deflate-Puffer mit einer höheren Komprimierungs-Speicherebene und überspringen einen redundanten Prüfsummendurchlauf über bereits komprimierte Bytes, wodurch CPU-Zeit und Wanduhrzeit beim Speichern reduziert werden
- Das interne Wachstum von String-Buildern, Listen und Hashtabellen nutzt jetzt geometrische (verdoppelnde) Allokation zusammen mit einem früheren Hash-Vergrößerungspunkt, wodurch Allokationsaufwand und Nachschlagekosten sinken, wenn eine Arbeitsmappe viele Stile, Namen, definierte Bereiche oder gemeinsame Zeichenfolgen trägt
- Nachschlagevorgänge in der Tabelle gemeinsamer Zeichenfolgen vergleichen jetzt die gespeicherten Bytes direkt, bevor eine vollständige Zeichenfolge materialisiert wird, wodurch die Nachschlage-Allokationen bei großen Tabellen gemeinsamer Zeichenfolgen reduziert werden
Version 2.251.0
Behoben
- XLSX-Öffnen und -Speichern behalten jetzt fremde Namespace-Deklarationen auf Arbeitsmappenwurzelebene, Markup-Kompatibilitätsattribute, vollständige
<extLst>-Nutzlasten auf Arbeitsmappenebene und deren unbekannte Beziehungen bei, während der typisierte Arbeitsmappenzustand neu erzeugt wird; erhaltener:id-Referenzen folgen der Neuvergabe der Beziehungs-IDs, statt veraltet zu werden, wenn sie mit generierten Arbeitsblatt- oder Arbeitsmappenbeziehungen kollidieren
Version 2.250.0
Geändert
- XLSX-Sparse-Zeileneinträge speichern jetzt nur ihre Spalte und einen stabilen Zell-Handle, wodurch ungenutzte Nutzlast-Tags sowie redundante Klassifizierung und eine zweite Zeilenindex-Suche entfallen, wann immer ein Zellwert, eine Formel oder ein Rich-Text-Objekt geändert wird
Version 2.249.0
Hinzugefügt
TXLSRTFImport.LoadFromRTF- undTXLSWorksheet.OpenRTF-Überladungen können Tabellen oder Absatzlisten an einer expliziten einsbasierten Zielzeile und -spalte importieren, während die ursprünglichen Überladungen weiterhin bei A1 beginnen
Geändert
- XLSX-typisierte Zeilenschreiber hängen jetzt strikt vorwärts gerichtete Stapel direkt an vordimensionierte Sparse-Zeilenvektoren an, und die Sparse-Zellsuche löst Treffer in der ersten und letzten Spalte ohne binäre Suche auf, während Überlappungsschreibvorgänge ihren vorhandenen Ersetzungspfad und die stabilen Zell-Handles behalten
Behoben
- Dateigestütztes XLSX-Rohteil-Kopieren und selektives Blattladen verwenden jetzt eine private Quellarchiv-Identität mit Größen- und Zeitstempelprüfung, sodass ein späteres Öffnen eines Streams oder eine öffentliche
FileName-Zuweisung erhaltene Teile nicht auf eine andere Arbeitsmappe umleiten kann RefreshPivotCachestellt jetzt aktualisierte Caches auf typisierte Serialisierung um, sodass neu aufgebaute Datensätze beim Speichern nicht von veralteten rohen Paketbytes überschrieben werden können- Rohes Kopieren komprimierter ZIP-Einträge erfordert jetzt, dass der Quellstream exakt die deklarierte Anzahl komprimierter Bytes enthält, und lehnt sowohl abgeschnittene als auch überlange Einträge vor der Registrierung im Zentralverzeichnis ab
- Die Wiederverwendung eines RTF-Importers setzt jetzt den Codepage- und Zeichenformat-Parserzustand zwischen Dokumenten zurück, sodass fett, kursiv, unterstrichen, durchgestrichen und Schriftgröße nicht in den nächsten Import auslaufen können
MetadataOnly-XLSX-Öffnungen vermeiden jetzt gemeinsame Zeichenfolgen-, Personen-, Arbeitsblattbeziehungs-, Kommentar-, Zeichnungs-, Diagramm-, Tabellen-, Abfragetabellen-, Pivot- und vom Arbeitsblatt erreichbare opake Nutzlasten, während Arbeitsmappeneigenschaften, Namen, Blattzustände, Stile, Design, Verbindungen und externe Links erhalten bleiben
Version 2.248.0
Geändert
- XLSX-SaveAs kopiert jetzt unveränderte
connections.xml-Teile roh aus dem Quellpaket, wenn das geparste Verbindungsmodell unverändert ist, bewahrt so die Quell-XML-Treue und vermeidet unnötige Dekomprimierung und Rekomprimierung, während bearbeitete Verbindungen weiterhin aus dem typisierten Modell neu geschrieben werden
Version 2.247.0
Geändert
- XLSX-SaveAs kopiert jetzt unveränderte External-Link-XML- und Beziehungsteile roh aus dem Quellpaket, wenn das geparste Modell unverändert ist, bewahrt unbekannte Erweiterungs-XML und vermeidet unnötige Dekomprimierung und Rekomprimierung, während bearbeitete Links weiterhin aus dem typisierten Modell neu geschrieben werden
Version 2.246.0
Hinzugefügt
TXLSHTMLImport.LoadFromHTML-Überladungen können an einer einsbasierten Zielzeile und -spalte importieren, eine nullbasierte Top-Level-Tabelle oder alle Tabellen auswählen und Zahlen mit einem expliziten Dezimaltrennzeichen parsen, ohne globale Formateinstellungen zu ändern
Geändert
- Das XLSX-Stilladen löst jetzt jeden Zellstil über ein gemeinsames unveränderliches cellXf-Array auf, statt wiederholter String-Schlüsselkonstruktion und linearer Map-Suchen, wodurch die Öffnungszeit formatierter Arbeitsmappen und temporäre Allokationen reduziert werden
Behoben
- Geänderte VBA-Projektbytes umgehen jetzt das Kopieren erhaltener Rohteile, sodass das Speichern einer bearbeiteten makrofähigen Arbeitsmappe die ursprüngliche
vbaProject.bin-Nutzlast nicht wiederherstellen kann - Rohes Kopieren von ZIP-Membern lehnt jetzt Komprimierungsmethoden außer STORE und DEFLATE ab, statt einen nicht übereinstimmenden Komprimierungsheader auszugeben, sodass Aufrufer sichere Dekomprimierungs- und Neuschreib-Fallbackpfade verwenden können
- Der HTML-Import ignoriert jetzt Zeilen- und Zell-Tags außerhalb von Top-Level-Tabellen und bewahrt das etablierte Alle-Tabellen-Verhalten der ursprünglichen Überladungen
Version 2.245.0
Hinzugefügt
- Bearbeitbare
TXLSWorkbookViewer-Zellen mit schutzbewusster Eingabe, Formeleingabe und Neuberechnung, rechteckiger Bereichsauswahl, Formelreferenz-Auswahl und begrenzter zirkulärer Rückgängig- und Wiederholen-Historie TXLSPivotDesignerbietet ein wiederverwendbares nicht-visuelles Feldlistenmodell mit Zeilen-, Spalten-, Filter- und Wertzonen, deterministischer Feldbewegung, Aggregationsauswahl, Layoutvalidierung und Ergebnisanwendung- Klassische XLS-Arbeitsmappen bieten jetzt
CalculateAndVerify-Diagnosen mit gemeinsamen Abweichungsdatensätzen, die Arbeitsblattidentität, einsbasierte Zellkoordinaten, zwischengespeicherte und frisch berechnete Werte sowie Formeltext enthalten - Klassische XLS- und XLSX-Arbeitsblätter bieten jetzt typisierte numerische, Zeichenfolgen- und Variant-Zeilen- und Spaltenschreiber mit einsbasierten Koordinaten, Beschneidung an den Rastergrenzen, direkten Zellmodell-Schreibvorgängen und einer zurückgegebenen Schreibanzahl
Geändert
- Das Zeichnen des XLSX-Viewers bewahrt jetzt spärliche Arbeitsblätter, indem bei Neuzeichnen und Stilauflösung die Materialisierung leerer Zellen vermieden wird
TXLSXWorksheet.ReplaceTextbesucht jetzt gespeicherte Zellen direkt in linearer Zeit, ohne die vollständige Zellsammlung zu kopieren und zu sortieren
Behoben
- Klassisches XLS-RC4- und RC4-CryptoAPI-Lesen und -Schreiben bewahrt jetzt jeden Klartext-Datensatzrumpf, den
[MS-XLS]erfordert, hältBoundSheet8.lbPlyPosunverschlüsselt, verbraucht übereinstimmende Keystream-Positionen und aktiviert die Entschlüsselung, bevor der erste verschlüsselte Datensatz nachFILEPASSgelesen wird - Die SpreadsheetML-Serialisierung wendet den symmetrischen
_xHHHH_-Codec jetzt nur auf Xstring-Felder an, während Formeln und Referenzsyntax gewöhnliches XML-Escaping verwenden, sodass tokenförmige Literale ihre exakte Formelbedeutung behalten
Version 2.244.0
Hinzugefügt
- Multi-Format-Zwischenablage-Import:
XLSPasteFromClipboardRichbevorzugt das XML-Spreadsheet-Zwischenablageformat (das Formeln, Stile und Verbindungen trägt) gegenüber einfachem Unicode-Text, mitXLSClipboardHasXmlSpreadsheet,XLSGetClipboardXmlSpreadsheetundXLSParseXmlSpreadsheetfür Formaterkennung, Extraktion und SpreadsheetML-2003-Parsing
Version 2.243.0
Hinzugefügt
- Externe definierte Namen:
TXLSXExternalLinkparst, speichert und durchläuft<definedNames>-Einträge (Name + refersTo) aus externen Arbeitsmappen-Links im Rundlauf, mitAddDefinedName,FindDefinedNameund indiziertemDefinedNames[]-Zugriff - Aktualisierungsfehlerzustand pro Blatt: jedes
TXLSXExternalSheetDataträgt einRefreshError-Flag, das aufzeichnet, ob der letzte Aktualisierungsversuch fehlgeschlagen ist, gelesen aus dem und ausgegeben in dasrefreshError-Attribut
Version 2.242.0
Hinzugefügt
TXLSXWorkbook.PreserveRawPartskopiert die komprimierte Darstellung unveränderter Teile (Design, VBA-Projekt, Pivot-Tabellen und Pivot-Caches) während SaveAs direkt aus dem Quellarchiv und vermeidet so die Dekomprimierung und Rekomprimierung erhaltener opaker Einträge
Version 2.241.0
Hinzugefügt
- Die Eigenschaft
TXLSXWorkbook.SelectedSheetsermöglicht selektives Arbeitsblattladen: Open parst Zell-XML nur für Blätter, die in der Liste genannt sind, während andere Blätter ihre Namen und Sichtbarkeitszustände mit null Zellen behalten. Rufen SieLoadSheet(Index)auf, um ein übersprungenes Blatt bei Bedarf aus dem ursprünglichen Archiv zu materialisieren
Version 2.240.0
Hinzugefügt
- Der
TXLSXWorkbook.MetadataOnly-Öffnungsmodus parst Arbeitsmappeneigenschaften, definierte Namen, Blattnamen und Sichtbarkeitszustände, Stile, Design, Verbindungen und externe Links, überspringt aber alle Arbeitsblatt-Zell-XML und Satellitenteile für eine schnelle Ermittlung von Eigenschaften und Namen aus großen Arbeitsmappen
Version 2.239.0
Hinzugefügt
- Kompakte 256-Zeilen-Block-Zellspeicherung mit stabilen öffentlichen Handles, zeilenweiser cachefreundlicher Serialisierung und Stilkomprimierung über alle Arbeitsmappen-Pools vor jedem Speichern
- Intervall-Stilüberlagerungen halten Zeilen-, Spalten- und Rechteckformatierung kompakt, ohne leere Zellobjekte zu materialisieren, lösen beim Zellzugriff verzögert auf, überstehen strukturelle Bearbeitungen und durchlaufen den Rundlauf als kompakte Spalten-, Zeilen- und Nur-Stil-Zelleinträge
Geändert
- Der normale Arbeitsmappen-Speichervorgang streamt jetzt jede Arbeitsblattzeile direkt in den Deflate-Stream des Pakets, sodass der Speicherspitzenwert der größten einzelnen Zeile folgt statt der vollständigen Arbeitsblatt-XML
- Gemeinsame Zeichenfolgen und Hilfs-XML-Teile streamen jetzt jeweils einen Eintrag nach dem anderen durch einen einzigen wiederverwendbaren UTF-8-Serialisierer, wodurch der Speicherspitzenwert durch den größten Eintrag statt durch das gesamte Teil begrenzt wird
Version 2.238.0
Hinzugefügt
TXLSPaginationModelerstellt wiederverwendbare logische Seiten für XLS- und XLSX-Bereiche, Arbeitsblätter und Arbeitsmappen mit Papiergeometrie, Rändern, Kopf- und Fußzeilen, Zeilen- und Spaltenbändern, wiederholten Titeln, Seitenreihenfolge, Gitternetzlinien-Richtlinie und ZeichnungsplatzierungenTXLSWorkbookViewerbietet jetzt Druckvorschau mit gemeinsamem Modell, Seitenavigation per Tastatur und Scrollrad, zwischengespeichertenPaginationModel-Zugriff, explizitesRefreshPaginationund EMF-Ausgabe ausgewählter SeitenTXLSPDFExport.CreatePaginationModellegt das exakte eigene Seitenmodell offen, das von PDF-Zählung und -Rendering für alle sechs XLS- und XLSX-Eingabetypen verwendet wird
Geändert
- PDF-Export und Seitenzählung verwenden jetzt eine einzige Paginierungs-Engine statt getrennter XLS- und XLSX-Seitenschleifen
- Die Skalierung Anpassen an Breite und Anpassen an Höhe löst jetzt gegen die tatsächlichen Seitenbänder auf, einschließlich manueller Umbrüche und wiederholter Titel, innerhalb des 10%-bis-400%-Skalierungsbereichs von Excel
Version 2.237.0
Hinzugefügt
TXLSFormulaDebuggererstellt eine eigene interaktive Sitzung, die den geparsten Ausdrucksbaum, Quellspannen, Operatoren, Operandenknoten und -werte, Zwischenergebnisse, eine deterministische Auswertungsreihenfolge und einen navigierbaren Zustand des aktuellen Schritts enthält- Formel-Debug-Sitzungen legen Zell- und Bereichsabhängigkeiten mit aufgelösten Blattkoordinaten offen, melden ausgewählte und übersprungene Zweige für
IF,IFERROR,IFNA,CHOOSE,IFSundSWITCHund bewahren wiederhergestellte innere Fehler mit ihrem Ursprungsknoten
Geändert
Calculatevon Arbeitsmappe und Arbeitsblatt gibt jetzt Excel-Formelfehler als Standard-Variant-Fehlerwerte zurück, statt sie inNullumzuwandelnTXLSFormulaTracerzeichnet jetzt exakte Vorher-Nachher-Operandenstapel für Push- und Reduktionsschritte auf
Version 2.236.0
Hinzugefügt
TXLSXWorksheet.StructuralEditRegistrylässt jetzt anwendungseigene Arbeitsblatt-Metadaten überIXLSXStructuralEditParticipantan Zeilen- und Spalteneinfügungen oder -löschungen teilnehmen
Geändert
- XLSX-Strukturbearbeitungen führen ihre referenzsensitive Arbeit jetzt in einer einzigen geschützten Transaktion aus, die Formeln, Namen, Validierungen, bedingte Formate, Kommentare, Hyperlinks, Zeichnungen, Tabellen, Abfragen, Szenarien, Datentabellen, Druckeinstellungen, Sparklines, Pivot-Caches und -Ansichten sowie Arbeitsblatt-Erweiterungen abdeckt
Behoben
- Eingefügte oder gelöschte Zeilen und Spalten aktualisieren jetzt geschützte Bereiche, Thread-Kommentar-Anker, erneut geöffnete klassische Kommentar-VML, lokale und blattübergreifende Sparkline-Referenzen, typisierte Pivot-Quellen und -Anker, berechnete Pivot-Formeln und erkennbare Referenzen innerhalb erhaltener Arbeitsblatt-Erweiterungs-XML
Version 2.235.0
Hinzugefügt
TXLSDirectWriterfügt jetzt klassische Kommentare, verankerte Arbeitsblattbilder, formelgestützte Säulen-, Balken-, Linien-, Flächen-, Kreis-, Ring- und Punktdiagramme sowie vollständiges vom Aufrufer geliefertes ChartML hinzu, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen- Bilder können als Bytes, als seekbare Streams mit optionaler Eigentumsübertragung oder als Dateipfade geliefert werden und können PNG-, JPEG-, GIF-, BMP-, EMF- oder WMF-Inhalte verwenden
Geändert
- Umfangreiche Direktschreiber-Teile verwenden Seitenkanal-Deskriptoren des aktuellen Blatts, vergeben Arbeitsblattbeziehungs-IDs, bevor das Blatt geschlossen wird, und streamen Medien- und verwandte XML-Teile nach der Arbeitsblatt-XML, sodass der Zeilenspeicher unabhängig von der Blattgröße bleibt
Version 2.234.0
Hinzugefügt
TXLSDirectReaderlegt jetzt optionale Dimension-, Blattformat-, Spalten-, Zeilen-, Fenster- und Verbundbereich-Ereignisse mit typisierten Layoutdatensätzen offen- Spalten- und Zeilenereignisse melden Breiten oder Höhen, ausgeblendeten und eingeklappten Zustand, Gliederungsebenen und Quellstilindizes, ohne Arbeitsblatt-Zellobjekte zu erstellen
Geändert
- Zugewiesene Layout-Callbacks verwenden einen Metadaten-Durchlauf mit begrenztem Speicher vor der Zellauslieferung, sodass verbundene Bereiche und andere Layout-Fakten vor den Zellen eintreffen, die von ihnen abhängen, während gewöhnliche Nur-Zell-Scans den ursprünglichen Einzeldurchlauf-Pfad behalten
- Parallele Direktlesungen halten Layout-Callbacks auf dem aufrufenden Thread und schließen die Metadaten ausgewählter Blätter ab, bevor geordnete Worker-Zellwarteschlangen geleert werden
Version 2.233.0
Hinzugefügt
TXLSXChartTextStylebietet jetzt typisierte Schriftnamen, Punktgrößen, RGB-Farben, Hervorhebung und Textdrehung für Diagrammtitel, Legende, Achsentitel und AchsenbeschriftungenTXLSXChartLayoutbietet jetzt normalisierte manuelle Positionierung von Plotbereich, Diagrammtitel, Achsentitel und Legende mit expliziten Rand- oder Faktormodi sowie inneren oder äußeren Plot-Zielen- Diagramme legen jetzt typisierte Sichtbarkeit, Position, Überlagerung, Textstil und Layout-Steuerungen der Legende zusammen mit den Überlagerungseinstellungen des Diagrammtitels offen
Geändert
- Manuelle Layouts serialisieren immer vollständige x-, y-, Breiten- und Höhen-Gruppen mit Office-kompatiblen Standardmodi, sodass Excel partielle oder widersprüchliche Koordinaten nicht verwirft
Behoben
- Das Bearbeiten typisierter Diagrammschriften oder -layouts bewahrt nicht verwandte Erweiterungslisten und benutzerdefinierte Namespace-Inhalte, während das Löschen einer bekannten Farb- oder Hervorhebungseigenschaft den importierten Wert bei der Strukturzusammenführung nicht mehr wiederherstellt
Version 2.232.0
Hinzugefügt
TXLSXImagelegt jetzt prozentbasierte Beschnittkanten, Transparenz, Helligkeit, Kontrast, Drehung in Grad sowie Streck- oder Kachelfüllmodi offenTXLSXImage.HasPreservedXmlmeldet, ob importiertes DrawingML verfügbar ist, währendClearPreservedXmlein Bild für eine saubere Neu-Erzeugung des typisierten Modells optiert
Geändert
- Bildeffektwerte verwenden kompakte Festkomma-Speicherung und schreiben native DrawingML-Einheiten, ohne Hilfsobjekte pro Effekt zu allokieren
Behoben
- Das Bearbeiten einer unterstützten Eigenschaft an einem importierten Bild bewahrt jetzt nicht verwandte Erweiterungen, Markup-Kompatibilitätsoptionen, benutzerdefinierte Attribute, Formeffekte und namespace-qualifizierte Inhalte
Version 2.231.0
Hinzugefügt
- Importierte XLSX-Diagramme bewahren jetzt ihr ursprüngliches ChartML, solange
TXLSXWorkbook.PreserveUnsupportedPartsaktiviert ist, und behalten unbekannte Namespaces, Markup-Kompatibilitätsalternativen, Erweiterungslisten, benutzerdefinierte Stile und nicht modellierte Formatierung TXLSXChart.HasPreservedXmlmeldet, ob das ursprüngliche ChartML verfügbar ist, undClearPreservedXmllässt Anwendungen ein Diagramm für eine saubere Neu-Erzeugung des typisierten Modells optieren
Geändert
- Das Speichern eines unberührten importierten Diagramms gibt dessen ursprüngliches ChartML erneut aus, während Bearbeitungen unterstützter Eigenschaften strukturell nur die modellierten Diagrammknoten überlagern und nicht verwandte Inhalte an Ort und Stelle lassen
Behoben
- Das Bearbeiten eines Diagrammtitels, einer Serie, einer Achse oder einer anderen unterstützten Eigenschaft verwirft nicht mehr nicht verwandte von Excel erstellte Erweiterungen, alternativen Inhalt, Stile oder Formatierung aus dem Diagrammteil
Version 2.230.0
Hinzugefügt
TXLSXChart.AddPlotGrouperstellt jetzt geordnete Kombinationsdiagramme, deren Diagrammfamilien und Serien unabhängige primäre oder sekundäre Achsenzuordnungen behalten- Diagramme legen jetzt primäre und sekundäre Kategorie- und Wertachsen sowie eine Serienachse offen, mit typisierten Kategorie-, Wert-, Datums- und Serienachsen-Einstellungen einschließlich Positionen, IDs, Kreuzungen, Datumseinheiten, Beschriftungsintervallen und Sichtbarkeit
- Säulen-, Balken-, Linien-, Kreis- und Flächendiagramme haben jetzt dedizierte 3D-Diagrammtypen mit konfigurierbarer Drehung, Höhe, Tiefe, Perspektive, rechtwinkligen Achsen und Lückentiefe
- Serien legen jetzt typisierte Zeichenfolgen- und Zahlen-Caches für Namen, Kategorien, Werte und Blasengrößen offen, einschließlich spärlicher Punktindizes und numerischer Formatcodes
Geändert
- Die Kompatibilitäts-APIs
ChartType,AddSeriesund die flacheSeries-API adressieren weiterhin die primäre Plotgruppe, während das Diagrammmodell jede geordnete Plotgruppe behält
Behoben
- Das Öffnen und erneute Speichern von Kombinationsdiagrammen klappt sie nicht mehr zu einer einzigen Diagrammfamilie zusammen und verliert keine sekundären, Datums- oder Serienachsen
- Diagramm-Formelreferenzen und zwischengespeicherte Serienwerte überstehen jetzt Arbeitsmappenkopien und Öffnen-/Speichern-Zyklen, ohne abgeflacht oder verworfen zu werden
- Diagramm-Anker werden jetzt über die Beziehungs-ID ihren Diagrammteilen zugeordnet, sodass Anwendungen, die Beziehungseinträge neu anordnen, Diagramminhalte nicht mehr zwischen Arbeitsblattpositionen vertauschen
Version 2.229.0
Hinzugefügt
TXLSXWorksheet.HeaderFooterImageserstellt, findet, ersetzt und entfernt jetzt typisierte Bild-Slots für jede linke, mittlere und rechte Kopf- oder Fußzeilenposition auf ungeraden, geraden und ersten Seiten- Kopf- und Fußzeilenbilder legen ihre Rohdaten, das Format, den Titel, die Punktgrößen und die Punktränder offen, mit direktem Laden aus PNG-, JPEG-, GIF-, BMP-, EMF- und WMF-Dateien
Geändert
- Bilder für gerade Seiten und die erste Seite aktivieren automatisch die passenden Seitenvarianten und behalten die erforderlichen Bildfeldcodes bei, wenn Kopf- oder Fußzeilentext bearbeitet wird
Behoben
- Arbeitsblattkommentare und Kopf- oder Fußzeilenbilder behalten jetzt unabhängige VML-Beziehungen bei, wenn sie ein Arbeitsblatt gemeinsam nutzen
- Von Excel erstellte Kopf- und Fußzeilen-Bild-Slots bewahren jetzt ihre Bildbytes, Formate, Titel, Größen, Ränder und Beziehungen über Öffnen- und Speichern-Zyklen
Version 2.228.0
Hinzugefügt
- Klassische XLS-Arbeitsblätter und Formensammlungen erstellen und entdecken jetzt typisierte
TXLSButton- undTXLSRadioButton-Steuerelemente neben Kontrollkästchen, Kombinationsfeldern und Listenfeldern - Formular-Steuerelemente legen jetzt Makronamen, verknüpfte Zellen, Eingabebereiche, Aktivierungszustände, flaches oder 3D-Erscheinungsbild und Optionsgruppen-Verknüpfungen über typisierte Eigenschaften offen
- Definierte Namen legen
IsMacrooffen, damit Makrobindungen die erforderlichen Metadaten des Arbeitsmappennamens behalten
Behoben
- Das Bearbeiten und erneute Speichern klassischer Formular-Steuerelemente verwirft keine Aktivierungszustände, Makrobindungen, verknüpften Zellformeln, Quellbereiche oder unterstützten Optionsgruppen-Metadaten mehr
- Das Löschen des Quellbereichs eines Kombinations- oder Listenfelds entfernt jetzt die serialisierte Eingabeformel, statt den vorherigen Bereich beim nächsten Öffnen wiederherzustellen
Version 2.227.0
Hinzugefügt
LINESTundLOGESTgeben jetzt vollständige multivariable Koeffizienten-Arrays und optionale fünfzeilige Statistikmatrizen zurückTRENDundGROWTHgeben jetzt geformte Vorhersage-Arrays für einstellige und multivariable Eingaben zurück
Geändert
- Array-Arithmetik, Vergleiche, Verkettung, unäre Negation und Prozentoperationen senden jetzt Skalare sowie einzelne Zeilen oder Spalten, während pro Zelle-Ergebnisse erhalten bleiben
- Berechnungsabhängigkeiten erweitern jetzt verschachtelte Arbeitsmappen- und Arbeitsblattnamen, formeldefinierte Namen und Mehrbereich-Bezüge mit bereichsbewusstem Zyklusschutz
Behoben
- Ein Fehler in einem Array-Element bricht nicht mehr das vollständige Ergebnis zusammen und fällt nicht mehr fälschlich auf skalare Auswertung zurück
- Formeldefinierte Namen, deren Abhängigkeiten statisch aufgelöst werden können, erzwingen keine unnötige flüchtige vollständige Neuberechnung mehr
Version 2.226.0
Hinzugefügt
- Vorhandene XLSX-Pivot-Caches und Pivot-Tabellenansichten werden jetzt über Paketbeziehungen in das typisierte Modell geladen, einschließlich Cache-Datensätzen, Feldern, gemeinsamen Elementen, Gruppierung, Filtern, Formaten, berechneten Definitionen und Erweiterungen
TXLSPivotTable.Makewertet jetzt berechnete Cache-Felder, berechnete Elemente und berechnete Datenmember mit abhängigkeitsbewusster Namensbindung aus- Erweiterte
ShowDataAs-Modi fügen übergeordnete Prozente, laufende Prozente sowie aufsteigendes oder absteigendes Ranking mit gültiger XLSX-Erweiterungsmarkup hinzu
Geändert
- Die Pivot-Ergebnisgenerierung wendet jetzt Elementsichtbarkeit, Seitenauswahlen sowie Beschriftungs-, Datums-, Aggregat- und Wertefilter an, bevor gruppierte Domänen erstellt werden
- Numerische, Datums- und diskrete Gruppen, Beschriftungs- oder Datenwertsortierung, konfigurierte Zwischensummen und optionale materialisierte Gesamtergebnis-Zeilen oder -Spalten nehmen jetzt an der Ergebnisgenerierung teil
Behoben
- Pivot-Filter verwenden jetzt schemagültiges Filter-Markup auf Stammebene und symbolische Filtertypen statt mehrdeutiger numerischer Werte
- Beziehungsgetriebenes Laden nimmt nicht mehr herkömmliche oder sequenzielle Pivot-Cache-, Cache-Datensatz- oder Pivot-Tabellenteilnamen an
Version 2.225.0
Hinzugefügt
TXLSXWorkbook.ConnectionsundTXLSXWorksheet.QueryTablesbieten jetzt typisierte Erstellung und Bearbeitung für Metadaten externer Datenbanken, Web, Text und Abfrageergebnisse- Verbindungsparameter behalten ihre genaue Boolean-, Ganzzahl-, Gleitkomma-, Zeichenfolgen- oder Zellbezugsart, einschließlich expliziter Null-, false- und leerer Zeichenfolgenwerte
Geändert
- Öffnen und Speichern von XLSX löst und schreibt nun Verbindungs- und Abfragetabellenteile über ihre besitzenden Beziehungen, synchronisiert Ergebnistabellen und definierte Namen und behält unbekannte Attribute, untergeordnete Knoten und Erweiterungslisten bei
- Zeilen- und Spaltenbearbeitungen halten Abfrageergebnisbereiche ausgerichtet, während Arbeitsblattkopien innerhalb derselben Arbeitsmappe und arbeitsmappenübergreifend die Abfrageeigentümerschaft bewahren und Verbindungsbezeichner sowie konfliktäre Namen neu zuordnen
Behoben
- Abfragetabellen können zusammen mit Standardtabellen, Thread-Kommentaren und Pivot-Tabellen koexistieren, ohne dass es zu Beziehungsbezeichner-Kollisionen auf Arbeitsblatt- oder Arbeitsmappenebene kommt
Version 2.224.0
Hinzugefügt
- Klassische XLS- und moderne XLSX-Arbeitsblätter stellen nun
AddDataTableundDataTablesfür einvariable Zeilen-, einvariable Spalten- und zweivariable What-If-Datentabellen bereit
Geändert
- Die Neuberechnung der Arbeitsmappe wertet jedes Datentabellenergebnis mit einem isolierten Eingabekontext aus, einschließlich indirekter Formelabhängigkeiten, und bewahrt Definitionen sowie zwischengespeicherte Ergebnisse durch Öffnen, Speichern, Arbeitsblattkopie und strukturelle Zeilen- oder Spaltenbearbeitungen
Behoben
- Gelöschte What-If-Eingabezellen erzeugen nun
#REF!-Ergebnisse, und die klassische Arbeitsmappenneuberechnung besucht jedes Arbeitsblatt, anstatt das erste Blatt auszulassen - Das Einfügen von Zeilen am oberen Rand eines klassischen Arbeitsblatts birgt auf Win64 kein Zugriffsverletzungsrisiko mehr
Version 2.223.0
Geändert
- Der Abbruch paralleler Direktleser wird nun durch aktive ZIP-Member-Lesevorgänge und jeden Dekomprimierungsschritt weitergegeben, anstatt auf den nächsten XML-Pull zu warten
Behoben
- Der Abbruch eines parallelen Arbeitsblatt-Scans wartet nicht mehr auf den Abschluss eines großen komprimierten XML-Lesevorgangs, bevor blockierte Worker freigegeben werden
Version 2.222.0
Hinzugefügt
TXLSDirectReader.ParallelBufferMemoryLimitbegrenzt die gesamte Rohzellen-Warteschlangennutzlast für paralleles Arbeitsblatt-Scanning, währendParallelPeakBufferedBytesdie gemessene Spitze für Diagnose und Kapazitätstests offenlegt
Geändert
- Parallele Direktlesevorgänge streamen ZIP-Einträge des Arbeitsblatts nun in worker-lokale XML-Reader und beschränkte Erzeuger-Verbraucher-Warteschlangen, anstatt vollständiges entpacktes Arbeitsblatt-XML und vollständige Zellpuffer pro Blatt beizubehalten
- Aktive Arbeitsblätter erhalten unabhängige Warteschlangenbudgets und werden in Worker-großen Fenstern verarbeitet, wobei die Rückrufreihenfolge erhalten bleibt, ohne dass spätere Arbeitsblätter das aktuell ausgegebene Arbeitsblatt aushungern lassen
Behoben
- Zellenabbrüche, Rückruffehler und Worker-Fehler wecken nun blockierte Erzeuger und Verbraucher, stoppen XML-Pulls kooperativ, verbinden alle Worker und lassen den Direktleser wiederverwendbar
Version 2.221.0
Geändert
- Das Öffnen von XLSX mit mehreren Blättern streamt nun jeden ZIP-Eintrag des Arbeitsblatts direkt in seinen worker-lokalen Inflater und XML-Reader, anstatt entpacktes Arbeitsblatt-XML vor dem Parsen beizubehalten
- Gleichzeitige Arbeitsblattleser serialisieren nur kurze positionierte Lesevorgänge aus der Paketquelle, sodass Dekomprimierung und XML-Parsing parallel bleiben, während der flüchtige Arbeitsblatt-Eingabespeicher durch die Anzahl aktiver Worker begrenzt wird
Version 2.220.0
Hinzugefügt
- Die PivotTable-Ergebniserstellung führt nun alle neun klassischen
ShowDataAs-Modi aus, einschließlich Differenz, Prozent eines Basiselements, prozentuale Differenz, laufende Summe, Prozent der Zeile, Prozent der Spalte, Prozent der Gesamtheit und Indexberechnungen xlPivotBaseItemPreviousundxlPivotBaseItemNextstellen typisierte Selektoren für angrenzende Basiselemente in Vergleichsberechnungen bereit
Geändert
- Pivot-Prozentsätze und Indexwerte verwenden Zeilen-, Spalten- und Gesamtergebnisse, die direkt aus den Quelldatensätzen aggregiert werden, wobei die korrekte Semantik für Average, Product, Count, Varianz und Standardabweichung erhalten bleibt, ohne die Quelle erneut zu scannen
- Laufende Summen folgen der Pivot-Elementreihenfolge, werden für jede Peer-Gruppe unabhängig zurückgesetzt und behalten eine sparsame Ergebnisspeicherung für Pivots mit hoher Kardinalität bei
Behoben
- BIFF8-
SXDI-Datensätze verwenden nun das standardmäßige 14-Byte-Festlayout und erhaltenShowDataAs, Basisfeld, Basiselement, Zahlenformat und Anzeigename durch typisierte Lesevorgänge, während ältere HotXLS-Datensätze lesbar bleiben - XLSX-Datenfelder schreiben nun Pivot-Feldindizes, ordnen vorherige und nächste Selektoren den erforderlichen OOXML-Werten zu und geben Basisattribute nur für Modi aus, die sie verwenden
- Fehlende Vergleichszellen bleiben leer, während vorhandene Nulldenominator den Wert
#DIV/0!zurückgeben, anstatt mit fehlenden Daten verwechselt zu werden
Version 2.219.0
Behoben
VDBwendet nun die degressive Abschreibung über Teilperioden an, wechselt bei Bedarf zur linearen Abschreibung und berücksichtigtno_switch- Nullfaktoren, Restwertgrenzen, gebrochene Startperioden und ungültige Periodenbereiche folgen nun Excel-kompatiblen Ergebnissen, anstatt Perioden zu runden und eine vereinfachte degressive Abschreibungsannäherung zurückzugeben
Version 2.218.0
Hinzugefügt
TXLSXWorksheet.Scenariosbietet nun typisierte Erstellung des What-If-Szenario-Managers mit benannten Szenarien, aktiven und angezeigten Indizes, Zellbereich-Änderungsbereichen, Benutzer- und Kommentar-Metadaten, gesperrten und ausgeblendeten Zuständen sowie eigenen Eingabezellwerten- Szenariodefinitionen folgen nun Arbeitsblattkopien und strukturellen Zeilen- oder Spaltenbearbeitungen, während Excel-Kompatibilitätsgrenzen validiert werden, bevor ungültige Metadaten geschrieben werden können
Behoben
- Das Öffnen und Speichern von Excel erstellter Szenarien erhält nun Stamattribute und verschachtelte Eingabezellen, anstatt die Hierarchie zu verlustbehaftetem rohem XML zu flachen
- Szenario-, AutoFilter-, Datenkonsolidierungs-, verbundene Zell- und phonetische Arbeitsblattelemente verwenden nun die Schema-Reihenfolge, damit strenge Tabellenkalkulations-Verbraucher keinen Reparaturdurchlauf benötigen
Version 2.217.0
Hinzugefügt
TXLSXWorksheet.IgnoredErrorsbietet nun typisierte Erstellung für jede Standardkategorie ignorierter Fehler mit Mehrbereichsbezügen, Unterstützung beim Kopieren von Arbeitsblättern, Aktualisierungen bei Strukturänderungen und Open/Save-Round-TripsTXLSXWorkbookstellt nun Referenzmodus, Neuberechnung beim Speichern, volle Präzision, nebenläufige Berechnung und manuelle Nebenläufigkeitseinstellungen neben seinen bestehenden Berechnungsoptionen bereit
Behoben
- Jede von der Standardeinstellung abweichende Arbeitsmappen-Berechnungseinstellung erzeugt und round-trippt nun unabhängig ein schema-geordnetes
calcPr-Element, einschließlich Iterationsgrenzen, die vor der Aktivierung der Iteration konfiguriert wurden - Berechnungsmodi, Referenzmodi, Iterationsgrenzen, Berechnungsbezeichner und manuelle Nebenläufigkeitszähler weisen nun ungültige Werte zurück oder normalisieren sie, anstatt einen mehrdeutigen Arbeitsmappenzustand zu schreiben
Version 2.216.0
Geändert
XMATCHundXLOOKUPführen nun logarithmische auf- oder absteigende binäre Suchen durch, wenn angefordert, einschließlich Excel-kompatibler Duplikat- und NäherungstreffergrenzenXIRRberücksichtigt nun seinen Schätzwert mit einem abgesicherten Solver, der hohe und schätzwertempfindliche Nullstellen finden kann, währendXNPVeine kompensierte Summation sowie validierte Datums- und Zinseingaben verwendet- Die Suche nach XLSX-definierten Namen mit hoher Kardinalität verwendet nun einen verzögerten bereichsbewussten Hash-Index unter Beibehaltung der serialisierten Reihenfolge, der Rangfolge lokaler Namen und des First-Match-Verhaltens
- Erhaltene XLSX-Paketteile weisen nun ihre deklarierte unkomprimierte Größe einmalig zu unter Beibehaltung vollständiger Längen- und CRC-Verifizierung
Behoben
- Ungültige Suchmodi, Wildcard-Binärsuchen, zweidimensionale Suchbereiche und nicht übereinstimmende
XLOOKUP-Rückgabevektoren melden nun Formelfehler, anstatt mehrdeutige Ergebnisse zu liefern XIRRundXNPVweisen nun ungültige Cashflow-Vorzeichen, Zinssätze, Schätzwerte und Daten zurück, schneiden gebrochene Datumsserialwerte ab und melden Nichtkonvergenz, anstatt einen ungeprüften Mittelwert zurückzugeben
Version 2.215.0
Hinzugefügt
FREQUENCYgibt nun ein vertikales Array mit einem Ergebnis pro Behälter plus dem Überlauf-Behälter zurück
Geändert
SORTverwendet nun eine stabile, skalierbare Sortierung für Zeilen oder Spalten und bewahrt die Quellreihenfolge gleicher SchlüsselUNIQUEverwendet nun ein stabiles, hash-indiziertes Abgleichverfahren für Zeilen oder Spalten, einschließlichexactly_once-Ergebnissen und Groß-/Kleinschreibung ignorierendem TextPERCENTRANK.INC,PERCENTRANK.EXCundMODE.MULTskalieren jetzt effizient bei Eingaben mit hoher Kardinalität, anstatt sich auf quadratische Scans zu verlassen
Behoben
- Die Option
by_colvonSORTundUNIQUEarbeitet nun auf Spalten, anstatt auf das Zeilenverhalten zurückzufallen
Version 2.214.0
Hinzugefügt
- Das Öffnen von XLSX akzeptiert nun gestreamte UTF-16-XML-Teile in Little- und Big-Endian mit einer Byte-Reihenfolgemarkierung oder der erforderlichen endianspezifischen Deklaration, einschließlich Zeichen außerhalb der Basic Multilingual Plane
Geändert
- Das Aktualisieren von PivotTable-Caches mit hoher Kardinalität verwendet nun deterministische Hash-Indizes für gemeinsame Werte und ordnet die Datensatzmatrix einmalig zu, wobei die Reihenfolge der zuerst gesehenen Elemente bewahrt und wiederholte lineare Suchen sowie zeilenweises Wachstum vermieden werden
- Projizierte Direktlesezugänge verwerfen Zellen außerhalb der ausgewählten Zeilen und Spalten, bevor Rohwerte, Formeln und Rich-Text in pro-Blatt-Puffer kopiert werden
Behoben
- Fehlerhaftes XML mit doppelten Byte-Reihenfolgemarkierungen, nicht unterstützten oder widersprüchlichen Encoding-Deklarationen, UTF-32-Signaturen, ungeraden UTF-16-Bytelängen oder ungültigen Ersatzzeichenpaaren wird nun abgelehnt
- Parallele Direktlese-Worker initialisieren nun den gesamten Auftragszustand vor dem Start, nehmen nach einem Fehler keine neuen Blattaufträge mehr an, lösen den Fehler mit dem niedrigsten Index deterministisch erneut aus und räumen jeden erzeugten Worker auf, falls der Poolaufbau fehlschlägt
Version 2.213.0
Hinzugefügt
T.TESTwertet nun unabhängige Stichproben entweder mit gepoolter gleicher Varianz oder mit Welch-Ansatz für ungleiche Varianz zusätzlich zu gepaarten Stichproben aus, einschließlich einseitiger und zweiseitiger Wahrscheinlichkeiten
Geändert
- Beim Öffnen von XLSX werden nun Beziehungsziele von Arbeitsmappe, Arbeitsblatt und Zeichnung für Arbeitsblätter, gemeinsame Zeichenfolgen, Formatvorlagen, Designs, Makros, externe Verknüpfungen, Kommentare, threaded comments, VML, Zeichnungen, Bilder, Diagramme, Tabellen und PivotTables verfolgt, einschließlich gültiger Pakete, die umbenannte oder nicht zusammenhängende Teilpfade verwenden
Behoben
- Fehlerhafte Pakete mit doppelten Beziehungs-IDs lassen nicht mehr zu, dass eine spätere nicht unterstützte Beziehung das erste verwendbare Ziel während der Kompatibilitätswiederherstellung ersetzt
Version 2.212.0
Geändert
- Die Nachverfolgung von Formelabhängigkeiten skaliert nun besser auf großen Arbeitsblättern, indem Zell- und Bereichsabhängigkeiten vor Neuaufbauten und Invalidierung von Dirty-Zellen indiziert werden
- Große statistische und Regressionsformeln werten nun jeden numerischen Wert in den angegebenen Bereichen aus, anstatt beim vorherigen Puffer fester Größe stehen zu bleiben
Behoben
- XLSX-Zellen außerhalb des Arbeitsblatt-Rasters werden konsistent abgelehnt, sodass ungültige Koordinaten nicht länger gültige Zellen aliasen können
- Das Bearbeiten von Formeln setzt den Arbeitsmappen-Berechnungsmodus, Iterationsgrenzen, Full-Calculation-Flags oder andere Berechnungseinstellungen nicht mehr zurück
- Blob-Listen-Lesezugänge validieren angeforderte Bereiche nun explizit und erlauben gültige leere Slices am Ende des Streams
Sicherheit
- Die klassische XLS-Verschlüsselung deckt nun zusammen mit den Arbeitsblattdaten auch die Pivot-Cache-Streams ab
- Fehlerhafte SST-Erweiterungsenden und ZIP-Zentralverzeichnis-Datensätze werden abgelehnt, bevor eine zu große Speicherzuweisung, abgeschnittene Lesevorgänge oder im Kommentar eingebettete gefälschte Verzeichnisdatensätze das Laden beeinflussen können
Version 2.211.0
Hinzugefügt
TXLSPivotTable.Makematerialisiert nun jedes konfigurierte Datenfeld mit seiner eigenen Aggregation und erweitert die Werte auf Zeilen oder Spalten gemäßDataFieldAxisIsRow
Geändert
- Die Pivot-Ergebniserzeugung verwendet hash-indizierte Zeilen- und Spaltenschlüssel-Domänen über alle Datenfelder hinweg wieder, wählt dichten oder spärlichen Akkumulatorspeicher anhand der Ergebnisform, bewahrt die Cache-Elementreihenfolge über neun Schlüssel hinaus und gibt lesbare kombinierte Bezeichnungen für Mehrfeld-Achsen aus
Behoben
Countschließt nun nicht-leere Text-, Boolean-, Fehler-, Datums- und numerische Cache-Werte ein, währendCountNumsnur numerische und Datumswerte einschließt,Productfür Schnittmengen ohne numerische Werte Null zurückgibt, Leerzeichen nicht länger als Einträge gezählt werden und Pivot-Tabellen nur mit Werten ihre Gesamtsummen ohne Zeilen- oder Spaltenfelder materialisieren können
Version 2.210.0
Hinzugefügt
TXLSWorkbookViewerrendert nun XLSX-bedingte Füllungen, Schriftfarbe und Hervorhebung, Zahlenformate, gerichtete positive und negative Datenbalken, Verläufe, Rahmen, Achsen, ausgeblendete Werte und alle eingebauten Icon-Set-FamilienTXLSWorkbookViewer.RefreshConditionalFormatsbaut den vorbereiteten Aggregat- und Schwellenwert-Zustand neu auf, nachdem Aufrufer eine angehängte XLSX-Arbeitsmappe an Ort und Stelle ändern
Geändert
- Der Viewer speichert einen vorbereiteten Bedingungsformat-Auswerter pro aktivem Arbeitsblatt zwischen, verwendet ihn über Scroll-, Auswahl- und Neuzeichnungsvorgänge hinweg wieder und gibt ihn frei, wenn sich die Arbeitsmappe oder das Arbeitsblatt ändert
Behoben
- Datenbalken-Achsen an der ganz rechten Grenze werden nun innerhalb der besitzenden Zelle abgeschnitten, statt in die benachbarte Zelle hineingezeichnet zu werden
Version 2.209.0
Hinzugefügt
- XLSX-Arbeitsblätter stellen nun einen vorbereiteten Bedingungsformat-Auswerter bereit, der Regelpriorität,
StopIfTrue, relative Formeln, Differenzformatvorlagen, Top/Bottom-Rangfolge, Über-/Unter-Durchschnitts-Tests, Duplikat- und Unique-Werte, relative Datumszeiträume, zwei- und dreifarbige Skalen, Datenbalken und Icon-Sets für jede Zelle auflöst
Geändert
- HTML- und PDF-Exporte rendern nun passende bedingte Füllungen, Schrift-Hervorhebung und -farbe, Zahlenformate, Farbskalen, gerichtete positive und negative Datenbalken, explizite Achsen, Icon-Familien-Glyphen, ausgeblendete Werte und Designfarben mit Tint-Auflösung
- Große Bedingungsformat-Domänen verwenden nun kompilierte relative Formeln ohne Syntaxbaum-Zuweisung pro Zelle wieder, streamen Mittelwert-, Abweichungs-, Minimum- und Maximum-Statistiken, behalten geordnete Werte nur für Rangfolgen- oder Perzentilregeln, sortieren Unicode-Duplikatschlüssel im Batch und verwenden zeilenbasierte Kandidatenindizes, um das Scannen nicht verwandter Regeln zu vermeiden
Behoben
- Klassische Bedingungsregeln laden nun Ausdruckstypen korrekt und werten invertierte zwischen-Schranken-Vergleiche, Groß-/Kleinschreibung ignorierende Textprädikate, leere Zellen und Fehlerprädikate konsistent aus
Version 2.208.0
Geändert
- Die gepackte Zell-Speicher-Engine schreibt nun native getaggte String-, Boolean-, Fehler- und Leer-Payloads, iteriert Zellen in zeilenmajorer Reihenfolge und run-length-kodiert aufeinanderfolgende Zellen gleichen Typs für geringeren Speicherverbrauch und schnellere sequenzielle Ausgabe
- Die gemeinsamen Zeichenfolgen klassischer Arbeitsmappen halten Zeichen-Bytes nun in einer einzigen Zuweisung und erzeugen dekodierte String-Werte verzögert, was den Zuweisungsaufwand für große Unique-String-Tabellen verringert
Hinzugefügt
- Pivot-Tabellen können nun eine vollständige Ergebnismatrix aus Cache-Datensätzen mit Zeilen- und Spaltenschlüssel-Gruppierung und allen 11 unterstützten Aggregatfunktionen berechnen
- Klassische Arbeitsmappen-Diagramme stellen nun typisierte Serien-, Achsen-, Legenden- und Diagrammgruppen-Informationen für Konvertierungs- und Inspektions-Workflows bereit
Version 2.207.0
Hinzugefügt
TXLSPivotCache.RefreshFromSourceerstellt einen Pivot-Cache aus einem Quellarbeitsblattbereich: Es liest die Kopfzeile, um die Felder zu benennen, destilliert die unterschiedlichen Werte jeder Datenzeile in die pro-Feld gemeinsame Elementdomäne, sperrt den Feldtyp anhand des ersten nicht-leeren Werts und zeichnet den gemeinsamen Element-Index für jedes Datensatz-Feld-Paar auf, sodass eine Pivot-Tabelle programmgesteuert aus einem Datenbereich erstellt werden kann, statt sich auf denrefreshOnLoad-Mechanismus von Excel zu verlassen. Ein Callback-basierter Wert-Leser hält die Pivot-Einheit frei von einer direkten Arbeitsblatt-Abhängigkeit
Version 2.206.0
Hinzugefügt
- Das neue
TlxCellMMU(lxCellMMU-Einheit) implementiert eine gepackte, zeilenmajore Zell-Speicher-Engine mit Run-Length-Kodierung gleichtypiger und leerer Zellläufe sowie einem getaggten Byte-Typcode, der zugleich als Auswahl der Datenbreite dient — sodass eine Spalte kleiner Ganzzahlen eine Byte pro Zelle kostet statt acht. Die Engine kodiert Zahlen in der kleinsten Breite, die den Wert erhält (int8 / int16 / int32 / 2-Dezimal- / 4-Dezimal-skalierte Ganzzahlen / IEEE-Double), speichert String-Index-, Boolean-, Fehler- und Leer-Zellen kompakt und stellt eineGetValue/SetNumber/SetString-API sowie einen Vorwärtsiterator bereit. Dies ist das Backend der nächsten Generation hinter einem Feature-Flag für die bestehendeTXLSXCells-API mit dem Ziel einer 10–25×-Verringerung des Working-Sets auf dichten Blättern
Version 2.205.0
Hinzugefügt
TXLSCustomChart.GetChartInfodekodiert nun eine semantische Zusammenfassung aus dem rohen BIFF-Diagramm-Datensatzstrom — Diagrammtypfamilie (Balken, Linie, Kreis, Fläche, Punkt, Radar, Ring, Oberfläche, Blase), die Anzahl der Serien und die Anwesenheit einer Legende — sodass der Typ eines BIFF-Diagramms programmgesteuert abgefragt und eine BIGH-zu-XLSX-Diagrammkonvertierung die richtige Zielfamilie wählen kann. Die Byte-Passthrough-Speicherung, die die Rundlauf-Treue garantiert, bleibt unverändert
Version 2.204.0
Geändert
- Die klassische
.xls-Tabelle gemeinsamer Zeichenfolgen schreibt nun reine ASCII-Zeichenfolgen im komprimierten Latin-1-Encoding ([MS-XLS] §2.5.294fHighByte=0, ein Byte pro Zeichen) statt immer UTF-16 zu verwenden, was die SST-Größe — und damit die.xls-Datei — für ASCII-lastige Arbeitsmappen etwa halbiert
Version 2.203.0
Hinzugefügt
- Das neue
TlxCompoundFileliest und schreibt das Compound File Binary (OLE2)-Containerformat direkt in purem Pascal, ohneole32.dll- / COM-IStorage-Abhängigkeit — und öffnet die Tür zur speicherinternen und plattformübergreifenden.xls-Verarbeitung. Der Leser deckt das v3-Layout ab, auf das HotXLS in der Praxis trifft (Header + In-Header-DIFAT + FAT-Kettenablauf + MiniFAT und der Mini-Stream für Streams unter 4096 Byte + den Verzeichnisbaum); der Schreiber gibt einen minimalen, aber gültigen v3-Container aus, der für die Ausgabe von HotXLS ausreicht
Version 2.202.0
Hinzugefügt
- Der Sortierzustand des Autofilters verfügt nun über ein typisiertes Modell (
TXLSXSortStatemitTXLSXSortCondition-Kind-Elementen), das Sortierung nach Wert / Zellfarbe / Schriftfarbe / Icon, Sortiermethode (none / stroke / pinYin), Groß-/Kleinschreibungssensitivität, Spaltensortierung und pro-Bedingung benutzerdefinierte Listen abdeckt — sodass Anwendungen Sortierzustände programmgesteuert erstellen können, statt rohes XML zu bearbeiten, während der ältere opakeSortStateXml-Passthrough für Dateien, die HotXLS nicht erzeugt hat, weiterhin Vorrang hat - Dynamische Filter werden nun als typisiertes
TXLSXDynamicFilterTypegelesen und geschrieben (über/unter Durchschnitt und Standardabweichung, heute/gestern/morgen, diese/letzte/nächste Woche, Monat, Quartal und Jahr, Jahres-bis-heute, Q1–Q4, M1–M12) mit optionalenval/maxVal-Grenzen — beim Öffnen einer Arbeitsmappe, die einen dynamischen Filter verwendet, geht dieser beim Speichern nicht mehr verloren
Version 2.201.0
Hinzugefügt
- Flächen- und 3D-Flächendiagramme (
xlsxChartSurface/xlsxChartSurface3D) sind nun erstklassige Diagrammtypen — geschrieben, gelesen und im Rundlauf wie die anderen Diagrammfamilien - Die AutoShape-Autorenschnittstelle deckt eine praktische Teilmenge der OOXML-Preset-Geometrieliste ab — Dreiecke, Rauten, Parallelogramme, Sechsecke, Achtecke, Pfeile, Winkel, Legenden, Flussdiagramm-Knoten, Sterne, Herzen, Sonne, Mond, Klammern und geschweifte Klammern — wobei jedes seinem korrekten
prst-Token und seiner[MS-ODRAW]-Shape-ID zugeordnet wird, sodass erstellte Shapes in Excel korrekt gerendert werden (die vollständige 187-Preset-Liste wurde bereits über Roh-Anker-Passthrough im Rundlauf bewahrt)
Version 2.200.0
Behoben
- Das Öffnen einer Arbeitsmappe, deren Autofilter einen Farbfilter oder einen Icon-Filter verwendet, verwirft diesen Filter beim Speichern nicht mehr —
colorFilterundiconFilterwerden nun in typisierte Spalten gelesen (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) und wortwörtlich wieder ausgegeben, statt als unerkannte Filter-Spalten-Kinder verloren zu gehen
Version 2.199.0
Hinzugefügt
TCondFormatRule.Evaluatebeantwortet, ob eine Bedingungsformatierungs-Regel für eine bestimmte Zelle auslöst, und deckt Zellwert-Vergleiche, Formel-Ausdrücke, Text enthält/beginnt mit/endet mit, Leerzeichen- und Fehlerregeln ab — die Grundlage, um abzufragen, welche Zellen eine Regel gerade hervorhebt, und um CF-Ergebnisse außerhalb von Excel zu rendern
Geändert
FACTund die internen Fakultäts-Helfer verwenden nun eine vorberechnete 0!..170!-Tabelle statt bei jedem Aufruf ein O(n)-Produkt neu zu berechnen, wasFACT, Multinomial-Koeffizienten und die Poisson-/Binomial-/Chi-Quadrat-Verteilungspfade beschleunigt
Version 2.198.0
Geändert
- Das Speichern eines Arbeitsblatts gruppiert nun Zellen in Zeilen mit einem einzigen Zählen-dann-Füllen-Durchlauf, statt den Index jeder Zeile mit einer Reallokation pro Zelle wachsen zu lassen, was eine versteckte O(Zellen × Zellen-pro-Zeile)-Kopie auf großen Blättern entfernt
- Der Formel-Abhängigkeitsgraph indiziert seine Referenzbereiche nun nach (Blatt, Zeile), sodass das Seeden einer Dirty-Zelle binär im Kandidatenband sucht, statt bei jeder geänderten Zelle jede Formel zu scannen — je größer die Arbeitsmappe und je mehr Blätter sie hat, desto größer die Beschleunigung bei der Neuberechnung
- Zeilenmajore, spaltensortierte Zell-Traversierung wird nun als
TXLSXWorksheet.BuildRowMajorCellOrderbereitgestellt, sodass Speichern, Zwischenablage, Autofilter und andere zeilengeordnete Konsumenten eine gemeinsame Traversierung verwenden, statt sie neu abzuleiten
Version 2.197.0
Behoben
- Radar-, Aktien- und Kuchen-aus-Kuchen-/Balken-aus-Kuchen-Diagramme gehen nicht mehr verloren, wenn eine
.xlsx-Arbeitsmappe, die sie enthält, geöffnet und erneut gespeichert wird — der Diagramm-Leser erkennt nun diec:radarChart-,c:stockChart- undc:ofPieChart-Container-Elemente, die er bereits schreibt, und stellt symmetrische Lese-/Schreibabdeckung wieder her SUBTOTALmit Funktionscodes 101–111 schließt nun Werte auf ausgeblendeten Zeilen aus, undAGGREGATEberücksichtigt nun seine Ignore-Hidden-Row-Optionscodes (2, 3, 6, 7) und entspricht damit Excel, statt die Varianten mit und ohne ausgeblendete Zeilen identisch zu behandeln- Der Aufruf einer Fest-Arity-Built-in-Funktion mit mehr Argumenten als deklariert (zum Beispiel
=SIN(1,2)) löst nun zentral#VALUE!aus, statt vom Dispatcher akzeptiert zu werden
Version 2.196.0
Behoben
- Das Einfügen und Löschen von Zeilen und Spalten partitioniert nun Zellwert- und Ausdrucks-Bedingungsformate sowie Datenvalidierungen, wenn bearbeitete Zielbereiche unterschiedliche relative Formelanker erfordern, wobei Regeleinstellungen bewahrt, eindeutige Bedingungsformat-Prioritäten zugewiesen und aggregierte Bedingungsformat-Domänen intakt gehalten werden
Version 2.195.2
Geändert
- Der PDF-Export teilt nun den eingebetteten TrueType-Font über die
CreateFontPackage-API der Windows-fontsub.dllin eine Teilmenge auf und behält nur die Glyphen, die das Dokument tatsächlich gerendert hat, statt die gesamte.ttfeinzubetten — typischerweise schrumpft das PDF bei Unicode-lastigen Blättern um 8–20×; fällt auf vollständige Einbettung zurück, wenn Subsetting nicht verfügbar ist
Version 2.195.1
Behoben
- Das Einfügen oder Löschen von Zeilen und Spalten auf der klassischen
.xls-Engine schreibt nun jeden betroffenen Formelverweis (Zellformeln und definierte Namen) neu, um der Excel-Semantik zu entsprechen — Verweise unterhalb einer Einfügung verschieben sich, vollständig innerhalb einer Löschung liegende Verweise werden zu#REF!, und teilweise überlappende Bereiche schrumpfen — statt veraltete Koordinaten zu hinterlassen
Version 2.195.0
Geändert
- Das Löschen von Tabellenspalten wandelt nun jedes betroffene strukturierte Referenz-Token über Arbeitsblattformeln, Tabellenformeln, definierte Namen und Diagrammserien hinweg in
#REF!um, während unbeeinflusste Verweise und String-Literale bewahrt werden
Behoben
- Das Löschen einer gesamten Tabelle hinterlässt keine qualifizierten strukturierten Referenzen mehr, die auf eine nicht mehr existierende Tabelle verweisen
- Geklonte Datenvalidierungen behalten nun ihren IME-Eingabemodus bei
Version 2.194.0
Geändert
- Zeilen- und Spaltenbearbeitungen halten nun Excel-Tabellenspalten-Bezeichner, Namen, berechnete Formeln, Summenformeln, Filterspalten, Filterbereiche und Sortierbedingungen mit der bearbeiteten Tabelle im Einklang
Behoben
- Bedingungsformat- und Datenvalidierungsformeln rebasieren nun relative und gemischte Verweise, wenn eine Löschung ihren ersten Zielbereich entfernt
- Arbeitsblatt- und Tabellen-Sortierzustände schreiben nun gültige Attribute und verwerfen Bedingungen, deren Bereiche gelöscht wurden
Version 2.193.0
Geändert
- Zeilen- und Spaltenbearbeitungen aktualisieren nun komplexe und bereichsübergreifende Definierte-Name-Formeln, Blasendiagramm-Datenbereiche und formelbasierte visuelle Bedingungsformat-Schwellenwerte
- Blasen- und Punktdiagramme stellen ihre X-Achsen-, Y-Achsen- und Blasengrößen-Serienbereiche beim erneuten Öffnen wieder her
Behoben
- Mehrbereichs-Bedingungsformat- und Datenvalidierungsziele verschieben nun jeden überlebenden Bereich unabhängig, statt die vollständige Zielliste unverändert zu lassen
- Textfeld- und WordArt-Anker bewegen sich nun mit eingefügten und gelöschten Zeilen und Spalten oder ändern ihre Größe entsprechend
Version 2.192.0
Hinzugefügt
- Gestreamte Direktlesezugänge und Zeilen-Cursor-Traversierung können sich für strukturierte Rich-Strings mit vollständiger Lauf-Formatierung, phonetischen Läufen und phonetischen Eigenschaften entscheiden, während eine begrenzte gemeinsame Zeichenfolgenspeicherung beibehalten wird
TXLSDirectWriter.WriteRichStringschreibt formatierten und phonetischen Text als Inline- oder deduplizierte gemeinsame Zeichenfolgen
Geändert
- Die Deduplizierung gemeinsamer Rich-Strings unterscheidet nun Lauf-Formatierung und phonetische Metadaten, während normales String-Interning auf seinem bestehenden schnellen Pfad verbleibt
Behoben
- Phonetischer Text in Inline-Strings wird nicht länger zum angezeigten Zellwert hinzugerechnet
Version 2.191.0
Hinzugefügt
TXLSXRange.SetDynamicArrayFormulaerstellt nun native dynamische Array-Formeln mit der vollständigen Excel-XLDAPR-Metadatenkette
Geändert
- Dynamische-Array-Wurzeln teilen sich nun einen deduplizierten Arbeitsmappen-Metadatensatz, und arbeitsmappenübergreifende Blatt- oder Bereichskopien bilden diesen Datensatz in die Zielarbeitsmappe ab
- Unterstützte dynamische-Array-Metadaten bleiben verfügbar, wenn die Bewahrung nicht unterstützter Paketteile deaktiviert ist, während unabhängige Wert-Metadaten weiterhin entfernt werden
Behoben
- Dynamische-Array-Spill-Zellen werden nicht länger als Legacy-CSE-Follower modelliert, und das Ersetzen oder Leeren der Wurzel hinterlässt keine veralteten Metadaten-Indizes mehr
- Das Entfernen der letzten dynamischen-Array-Wurzel entfernt nun den ungenutzten Metadatenteil, die Arbeitsmappen-Beziehung und den ContentType-Eintrag
Version 2.190.0
Geändert
- Gestreamte Direktlesezugänge und Zeilen-Cursor-Traversierung entfalten nun gemeinsame Formel-Follower in vollständige zellrelative Formeln, während Projektions- und begrenztes-Speicher-Verhalten beibehalten wird
Behoben
- Dynamische-Array-Arbeitsmappen bewahren nun Zell- und Wert-Metadaten-Indizes, Formel-Neuberechnungs-Attribute, Metadaten-Paket-Beziehungen und unveränderte Future-Function-Präfixe während Öffnen- und Speicherzyklen
- Das Deaktivieren der Bewahrung nicht unterstützter Teile hinterlässt nach dem Entfernen des Metadatenteils keine verwaisten Arbeitsblatt-Metadaten-Indizes mehr
Version 2.189.0
Hinzugefügt
- Das Öffnen von XLSX-Arbeitsmappen entfaltet nun gemeinsame Formel-Follower in vollständige pro-Zell-Formeln mit korrekten relativen, absoluten, gemischten, Bereichs- und blattqualifizierten Verweisen
Behoben
- Selbstschließende gemeinsame Formel-Follower erfassen nicht länger spätere Wert- oder Formel-XML, und ihre zwischengespeicherten Ergebnisse überstehen Öffnen- und Speicherzyklen
- CSE-Array-Formeln behalten nun ihre Anker- und Follower-Beziehungen durch Zeilen- oder Spalten-Strukturbearbeitungen, vollständige Bereichskopien, Arbeitsblatt-Duplizierung und arbeitsmappenübergreifende Blattkopien
- Das Zuweisen einer normalen Formel oder das Leeren einer Zelle entfernt nun die veraltete CSE-Array-Mitgliedschaft, sodass die Berechnung nicht zu einem alten Array-Anker umgeleitet werden kann
- Das Kopieren nur eines Teils eines CSE-Arrays erzeugt keine verwaisten Follower-Verweise mehr im Ziel
- Bereichskopien erstellen nun Snapshots überlappender Quellen und verschieben relative Formelverweise, was verhindert, dass Quellzellen oder Array-Anker überschrieben werden, bevor sie kopiert werden
- Zeilen- oder Spaltenbearbeitungen, die nur einen Teil eines CSE-Arrays schneiden, werden abgelehnt, statt das Array stillschweigend zu vergrößern oder abzutrennen
Version 2.188.0
Hinzugefügt
TXLSDirectReader.SharedStringMemoryLimitbegrenzt den dekodierten Shared-String-Speicher und migriert größere Tabellen automatisch auf indizierten Delete-on-Close-Temporärspeicher mit einem Wert-Cache fester GrößeTXLSRowCursor.SharedStringMemoryLimitstellt dieselbe begrenzte Shared-String-Speichersteuerung für die vorwärtsgerichtete Zeilentraversierung bereit
Geändert
- Das direkte Parsen gemeinsamer Zeichenfolgen bewahrt nun reine Leerzeichen-Werte, CDATA, XML-Entities, Nicht-BMP-Zeichen, leere Elemente und die Rich-Text-Lauf-Reihenfolge, während phonetischer Führungstext vom angezeigten Wert ausgeschlossen wird
Behoben
- Das Öffnen von XLSX-Arbeitsmappen behält nun jedes Shared-String-Element in Dokumentreihenfolge bei, wodurch verhindert wird, dass doppelter Text oder unterschiedlich formatierte Rich-Strings spätere Zellindizes kollabieren lassen
- Das Speichern von XLSX-Arbeitsmappen dedupliziert Rich-Strings nun nach Lauf-Grenzen und Formatierungseigenschaften statt nur nach sichtbarem Text, wodurch unterschiedliche Formatierungen für Zellen mit demselben angezeigten Wert bewahrt werden
Version 2.187.0
Hinzugefügt
TXLSDirectReader.FirstRowundLastRowbeschränken gestreamte Lesezugriffe auf einen 1-basierten Zeilenbereich und stoppen die Arbeitsblatt-Analyse nach dem angeforderten BereichTXLSDirectReader.IncludeColumnundClearColumnProjectionbieten eine konstantzeitige Spaltenprojektion, die nicht ausgewählte Zellen vor der Wertedekodierung und dem Callback-Versand überspringt
Version 2.186.0
Hinzugefügt
TXLSDirectWriter.UseSharedStringskann wiederholten Text in einen OOXML-Shared-Strings-Teil mit genauen Gesamt- und Unique-Zählungen deduplizieren und die Paketgröße für wiederholungsstarke Daten verringernTSimpleDomReaderstellt einen kompakten Single-Pass-XML-Baum für Direktzugriffsabfragen von Arbeitsmappen-Metadaten und Paketteilen bereit, mit groß-/kleinschreibungssensitivem QName- und Local-Name-Lookup
Geändert
- Das direkte XLSX-Lesen verwendet nun hash-gestützten exakten Element-Versand, Single-Pass-Attribut-Ernte und konstantzeitige Current-Row-Spalten-Lookup, während das Streaming-Speicherverhalten bewahrt wird
- Die Shared-String-XML-Erzeugung verwendet nun einen linear wachsenden Puffer, um wiederholte Whole-String-Kopien auf großen Distinct-String-Tabellen zu vermeiden
Behoben
- Der CSV-Formel-Export fügt kein zweites Gleichheitszeichen mehr hinzu, wenn der Formeltext bereits eines enthält
- Der XLSX-PDF-Export schneidet Zelltext nicht länger über eine Zeichenzahl-Schätzung vor dem Layout ab
- XML-Reader-Namen-Hashes verfolgen nun Verarbeitungsanweisungen, Attribute und kehren zu ihren besitzenden Elementen zurück, ohne veralteten Element-Zustand preiszugeben
Version 2.185.1
Behoben
- Das Einfügen oder Löschen von Zeilen und Spalten passt nun lokale und blattübergreifende Formelverweise genau einmal an, während Funktionsnamen und Text-Literale bewahrt werden
Version 2.185.0
Hinzugefügt
TXLSPDFExportbietet nun ein-basierteFirstPage- undLastPage-Ausgabewahl, eine vollständige logischePageCountund sechsCalculatePageCount-Überladungen für klassische und XLSX-Bereiche, Arbeitsblätter und Arbeitsmappen, ohne PDF-Seitenobjekte zu konstruierenTXLSXWorkbook.SaveWorkbookAsHTMLveröffentlicht sichtbare Arbeitsblätter in einem navigierbaren HTML-Dokument mit stabilen pro-Blatt-Ankern, escapten Titeln und Blattnamen sowie einer Option, ausgeblendete oder sehr ausgeblendete Blätter einzubeziehenTDataToXLS.BeforeRecordkann Datensätze vor der Zeilenausgabe überspringen undBeforeValuekann Feldwerte mit Datensatz-, Detail-, Quellfeld- und Exportspaltenkontext transformieren oder unterdrückenTXLSWorkbookViewerstellt Kommentare und Hyperlinks der ausgewählten Zelle dar, löst ein anwendungsgesteuertes Hyperlink-Ereignis aus, malt Kommentar-Indikatoren und XLSX-Schriftarten, Füllungen und Ausrichtung und normalisiert Auswahl und Rendering über verbundene Bereiche hinweg
Geändert
- Das ConversionWorkbench-Beispiel kann nun PDF-Ausgabe erzeugen und veröffentlicht alle sichtbaren XLSX-Arbeitsblätter für HTML-Ziele, während das WorkbookViewer-Beispiel verbundene-Zellen-Navigation, Kommentare und Hyperlink-Aktivierung demonstriert
Version 2.184.0
Hinzugefügt
- Klassische XLS- und XLSX-Bereiche können Unicode-Tabellentext und gestyltes HTML über
CopyToClipboardin die Windows-Zwischenablage kopieren, wobei Formeln, verbundene Zellen, Verknüpfungen, Anzeigeformatierung und sicher escapte eingebettete Tabulatoren, Zeilenumbrüche und Anführungszeichen bewahrt werden TXLSXWorkbookbewahrt nun benutzerdefinierte Paketteile, die von unbekannten Package-Root-, Arbeitsmappen-, Arbeitsblatt- oder Zeichenbeziehungen aus erreichbar sind, einschließlich Handling von Beziehungs-ID-Kollisionen, ContentTypes, Kind-Beziehungen, Kompressionswahl und exakten Payload-Bytes;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytesundClearUnsupportedPartsstellen Steuerung und Diagnostik bereit- Klassische XLS-Speicherungen stellen Begin-, Work- und End-Callbacks mit Abbruch über
OnProgressExbereit, währendIXLSWorkbookProgressstrukturierte Diagnostik mit stabilen Codes, Schweregrad, Operation, Blatt-Kontext, nativen Rückgabewerten und Exception-Details bietet TXLSXWorkbookstellt nun dieselben strukturiertenDiagnostics-,LastDiagnostic- undOnDiagnostic-Oberflächen für Speichern, Öffnen, Neuberechnung, Abbruch und Exception-Berichterstattung bereit- Geparste VBA-Module unterstützen nun das Bearbeiten von
SourceCodeund das Zurückschreiben des aktualisierten komprimierten Modulstreams über klassische XLS-, eigenständige VBA-Speicherung und makrofähige OOXML-Speicherungen, wobei Stream-Präfixe und unangetasteter Projektinhalt bewahrt werden - Klassische Arbeitsblätter und Shape-Sammlungen stellen nun typisierte
TXLSCheckBox-,TXLSComboBox- undTXLSListBox-Formularsteuerelemente mit Erstellungshelfern, Beschriftungen, Steuerungsart-Inspektion, Zellankern, Löschung und Open/Save-Erkennung bereit TXLSXRange.ApplyFormatPatchkann Schrift-, Füll-, Rahmen-, Zahlenformat-, Ausrichtungs- und Schutzkomponenten selektiv kopieren, mit Quellmuster-Kachelung, während Zielwerte und nicht ausgewählte Formatierung bewahrt werdenTDataToXLSkann verknüpfte Master-Detail-Datensätze überReadDetailTablesundIndentDetailTablesrekursiv exportieren, wobei aktive Datenverknüpfungen bewahrt, jede Detailtabelle unter ihrem Master-Datensatz angefügt und Feld-, Titel- und Formatierungsoptionen auf jeder Ebene vererbt werdenTXLSXWorksheet.AddWordArterstellt zellverankertes DrawingML-Text mit Preset-Verzerrung sowie konfigurierbaren Text- und Konturfarben, und der Roh-Zeichenanker-Bewahrungspfad behält die vollständige WordArt-Shape bei späteren Open/Save-ZyklenTXLSWorkbookViewerfügt einen VCL-Arbeitsblatt-Viewer für klassische und moderne Arbeitsmappenobjekte mit XLS-, XLSX-, XLSM-, Vorlagen- und ODS-Datei-Laden, formatiertem Zelltext, klassischen Formatvorlagen, Zeilen- und Spaltengrößen, Kopfzeilen, Gitternetz- und Auswahl-Rendering, Scrollleisten, Mausauswahl, Tastaturnavigation, Zellpositionierung, Blattwechsel sowie Auswahl- oder Blatt-Ereignissen hinzu- Neue Delphi-Beispiele
FeatureShowcaseundWorkbookViewerdemonstrieren gestylten PDF-Druck, Drucktitel, manuelle Umbrüche, klassische Formularsteuerelemente, selektive Format-Patches, WordArt, Diagnostik, Laufzeit-Viewer-Erstellung, Datei-Laden, Zellnavigation, Blattwechsel und Viewer-Ereignisse, mit passenden englischen Anleitungen und Entwicklerreferenz-Themen
Geändert
- Der PDF-Export klassischer XLS- und moderner XLSX-Arbeitsmappen, Arbeitsblätter und Bereiche schreibt nun jedes sichtbare Arbeitsblatt in ein Dokument, überspringt ausgeblendete und Diagrammblätter, rendert Volltonfüllungen, Schriftfarben, Schriftgrößen, Fettdruck- und Kursiv-Hervorhebung, horizontale und vertikale Ausrichtung, explizite Zellränder und optionale Arbeitsblatt-Gitternetze, folgt Druckbereich, Papierformat, Ausrichtung, Rändern, Zoom, Anpassen-an-Breite-Einstellung, Spaltenbreiten, tatsächlichen Zeilenhöhen, manuellen Zeilen- und Spalten-Seitenumbrüchen, wiederholten Titelzeilen und -spalten und dreiteiligen Kopf- und Fußzeilen mit Seiten-, Gesamtseiten-, Blattnamen-, Datums- und Zeitfeldern, paginiert breite und hohe Bereiche über beide Achsen, gibt locale-unabhängige PDF-Zahlensyntax aus und bettet einen geeigneten TrueType-Font plus eine ToUnicode-Map für Text außerhalb von WinAnsi ein
- XLSX-erweiterte Fortschritts-Callbacks empfangen nun zuverlässige Begin-, Work- und End-Zustände für Speichern, Öffnen und Neuberechnung, während der Legacy-Callback nur auf Work bleibt und jede Operation den vorherigen Abbruch-Zustand zurücksetzt
- Die klassische XLS-Serialisierung propagiert nun Arbeitsblatt-, Diagramm-, Formatvorlagen-Erweiterungs-, VBA-, Steuerungs-Stream-, Speicher- und Ausgabe-Commit-Fehler, statt Erfolg zu melden, und Dateispeicherungen stellen die vollständige Compound-Datei bereit, bevor das Ziel atomar ersetzt wird
- XLSX- und ODS-Dateispeicherungen bauen nun ein vollständiges nebengeordnetes temporäres Paket auf und ersetzen das Ziel erst nach erfolgreicher Finalisierung atomar, wobei bestehende Dateien nach Abbruch oder Fehler unverändert bleiben
Version 2.183.0
Hinzugefügt
TXLSDirectWriterunterstützt nun wiederverwendbare paketebene Zellstil-Handles und Stil-Kloning ohne Pufferung von Arbeitsblattzeilen; derselbe Stilindex kann auf eine beliebige Anzahl Zellen angewendet oder über Arbeitsblätter hinweg wiederverwendet werden- Direkte Zellstile bieten 30 Formatierungsfähigkeiten, die Schriftname, -größe, BGR-Farbe, Fettdruck, Kursiv, Durchstreich, Outline, Schatten, fünf Unterstreichungsmodi, 19 Füllmuster mit Vordergrund-/Hintergrundfarben, fünf unabhängig eingefärbte Kanten mit 14 Linienstilen und Diagonalrichtungen, eingebaute oder benutzerdefinierte Zahlenformate, horizontale und vertikale Ausrichtung, Umbruch, Anpassen-an-Größe, Einrückung, Textrotation, Anführungszeichen-Präfixe sowie gesperrten/versteckten Schutz umfassen
- Gestylte Überladungen sind für Strings, Zahlen, Boolesche, Datumsangaben, Formeln, Fehler und jeden zwischengespeicherten Formelergebnistyp verfügbar, sodass hochvolumige Exporter während sequenzieller Schreibvorgänge einen vorgefertigten Stil nach ganzzahligem Index auswählen können
Geändert
- Der direkte Schreiber dedupliziert gleiche Schrift-, Füll-, Rahmen- und Zahlenformatkomponenten beim Aufbau von
styles.xml, während stabile, bereits in Arbeitsblattstreams geschriebene Zellstil-Indizes bewahrt werden - Erzeugte Direct-Writer-Stiltabellen enthalten nun die Standard-
none- undgray125-Standardfüllungen vor benutzerdefinierten Füllungen für strengere OOXML-Kompatibilität
Version 2.182.0
Hinzugefügt
TXLSDirectWriterschreibt nun bedingte Formatierung, während sein von der Zeilenzahl unabhängiges Speicherprofil beibehalten wird, mit acht Zellwert-Operatoren, Ausdrucksregeln, enthält/nicht-enthält/beginnt-mit/endet-mit-Textregeln, Top- oder Bottom-Wert- und Prozentregeln, Über- oder Unter-Durchschnitt-Regeln, Duplikat- und Unique-Werten, leeren und nicht-leeren Zellen, Fehler- und Nichtfehler-Zellen, Datenbalken, zwei- und dreifarbigen Skalen und allen 17 Basis-Icon-Set-Familien- Direkte Bedingungsformat-Regeln unterstützen explizite Prioritäten, Stop-If-True-Auswertung, Durchschnitts-Standardabweichungs- und Gleichheits-Optionen, Icon-Schwellenwert-Ersetzung, nur-Icon- und umgekehrte Anzeige, Datenbalken-Wertsichtbarkeit, BGR-Farben sowie Differenzfüll-, Schriftfarben-, Fettdruck- und Kursiv-Stile
Geändert
- Der direkte Schreiber dedupliziert äquivalente Differenzstile über Arbeitsblätter hinweg und speichert nur Bedingungsformat-Regeln und -Stile, sodass die Speichernutzung mit der Regelanzahl statt mit der Anzahl der Arbeitsblattzeilen skaliert
- Automatische Datenbalken-Minimum- und -Maximum-Schwellenwert-Arten werden in den Standard-
min- undmax-Token im Basis-OOXML-Element für breite Tabellenkalkulationskompatibilität normalisiert
Version 2.181.0
Hinzugefügt
TXLSDirectWriterschreibt nun Arbeitsblatt- und Arbeitsmappenschutz ohne Pufferung von Arbeitsblattdaten, einschließlich 15 feinkörniger Arbeitsblattberechtigungen, Legacy-Kennwort-Verifizierern, modernen Hash-Metadaten, bearbeitbaren geschützten Bereichen mit optionalen Kennwörtern oder Sicherheitsbeschreibungen, Arbeitsmappenstruktur- und Fenster-Sperren, roher Verifizierer-Zuweisung sowie dem Aufheben des Schutzes
Behoben
- Nicht unterstützte Zeichenanker behalten nun jedes schließende Element bei der Rekonstruktion für Rundlauf-Ausgabe, sodass Shape-only-Zeichnungen nach Öffnen und Speichern wohlgeformt bleiben
- XLSX-Arbeitsblatt-Schutzberechtigungen folgen nun der OOXML-Locked-Flag-Definition, sodass erlaubte Aktionen
0schreiben, verbotene Aktionen1schreiben und weggelassene Attribute mit ihren Schema-Standards wiedereröffnet werden - Legacy-XLSX-Arbeitsblatt-, geschützter-Bereich- und Arbeitsmappen-Kennwörter verwenden nun den Excel-kompatiblen 16-Bit-Verifizierer-Algorithmus mit ANSI-Konvertierung und der 15-Byte-Grenze
Version 2.180.0
Hinzugefügt
- Das XLSX-Arbeitsblattmodell führt nun die What-If-Szenario-Manager- (
<scenarios>) und Datenkonsolidierungs- (<dataConsolidate>) Elemente im Rundlauf. NeueScenariosXml- undConsolidateXml-Raw-XML-Eigenschaften aufTXLSXWorksheettragen den inneren Inhalt wortwörtlich — der Schreiber gibt die Wrapper-Elemente aus, der Leser parst Szenario-/Datenkonsolidierungs-Kinder zurück. Finanzmodellierungs-Dateien, die Szenarien oder Konsolidierungsdefinitionen definieren, verlieren diese nicht mehr im Rundlauf
Version 2.179.0
Hinzugefügt
- Eine neue
XlsxBuildNumFmt-Hilfsfunktion konstruiert OOXML-Zahlenformatcodes aus semantischen Eigenschaften —Decimals,Thousands(Trennzeichen),NegativeRed(rote Negative),CurrencySymbolundPercent. Aufrufer müssen keine Formatzeichenfolgen wie"$#,##0.00;[Red]-$#,##0.00"mehr von Hand schreiben — der Builder erzeugt sie aus einfachen Parametern. Entwickelt für die Verwendung mitCell.NumberFormatoderWorkbook.NumberFormats.Add
Version 2.178.0
Hinzugefügt
- Das XLSX-Arbeitsblattmodell führt nun den VBA-Codenamen (
<sheetPr codeName="..."/>) im Rundlauf, was für die VBA-Interoperabilität unerlässlich ist, wo das VBA-Projekt Arbeitsblätter nach Codename referenziert. NeueCodeName-Eigenschaft aufTXLSXWorksheet - Kommentare unterstützen nun einen
AlwaysShow-Sichtbarkeits-Schalter aufTXLSXComment— bei True ist der Kommentar-Ballon immer sichtbar (der pro-Kommentar-Schalter „Kommentar anzeigen/ausblenden“ von Excel), nicht nur beim Hovern - Die Datenvalidierung führt nun das IME-Mode-Attribut (
imeMode) aufTXLSXDataValidationim Rundlauf. Die 11-Werte-Enum steuert das CJK-Eingabemethoden-Verhalten beim Betreten einer Zelle (noControl / off / on / hiragana / fullKatakana / etc.). Unverzichtbar für Dateien im japanischen/koreanischen/chinesischen Gebietsschema - Das Arbeitsblattmodell erhält eine
PaneState-Eigenschaft für das Fensterzustands-Attribut auf<pane>jenseits der bestehenden Frozen-Mode-Behandlung — unterstütztfrozenSplit(eingefroren-dann-scrollbar) undsplit-Zustände
Version 2.177.0
Hinzugefügt
- Drei zuvor registrierte, aber nicht implementierte Arbeitsblattfunktionen haben nun vollen Dispatch:
DOLLAR(währungsformatierter Text),FIXED(Festkomma-Text mit optionaler Komma-Unterdrückung) undAREAS(Anzahl der Bereiche in einer Referenz). Zuvor waren diese inInitFuncHashregistriert, hatten aber keinen Calc-Engine-Fall — das Auswerten von=DOLLAR(...)lieferte stillschweigend falsche Ergebnisse - Das XLSX-Arbeitsblattmodell führt nun Pro-Ansichtstyp-Zoomskalen (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), Gitternetzfarbe (sheetView color) und Blattansicht-Anzeige-Flags (showFormulas/showZeros) im Rundlauf. Neue Eigenschaften aufTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - Die Gliederungs-Zusammenfassungsrichtung führt nun im Rundlauf. Neue
SummaryBelow-,SummaryRight- undShowOutlineSymbols-Eigenschaften aufTXLSXWorksheetsteuern, ob Zusammenfassungs-Zeilen/-Spalten unterhalb/rechts der Details erscheinen und ob Gliederungssymbole sichtbar sind. Der Schreiber gibt<outlinePr>innerhalb von<sheetPr>aus; der Leser parst es zurück - Die Arbeitsmappen-calcPr trägt nun
forceFullCalc- undcalcCompleted-Attribute neben dem bestehendencalcId/fullCalcOnLoad/calcMode/iterate-Trio
Version 2.176.0
Hinzugefügt
- Die XLSX-Formel-Engine löst nun strukturierte Tabellenreferenzen vor der Kompilierung auf. Eine neue
ResolveStructuredRefs-Methode aufTXLSXWorkbookscannt Formeltext nachTableName[ColumnSpec]-Mustern und ersetzt sie durch konkrete A1-Bereichsreferenzen unter Verwendung derTXLSXTable-Sammlung der Arbeitsmappe. Unterstützte Spezifikationen umfassen Spaltendatenbereich (Sales[Qty]), aktuelle-Zeile-Spalte (Sales[@Total]), vollständige Daten (Sales[#Data]/Sales[#All]), Kopfzeilen (Sales[#Headers]) und Summenzeile (Sales[#Totals]). Die Auflösung läuft automatisch innerhalb vonGetCompiledFormula— bestehende Formeln sind nicht betroffen, da Nicht-Tabellen-Bezeichner wortwörtlich belassen werden. Zuvor führten strukturierte Referenzen zum Fehlschlagen der Formelkompilierung
Version 2.175.0
Hinzugefügt
- Die Formel-Engine unterstützt nun die R1C1-Referenzstil-Formelkompilierung. Eine neue
GetCompiledFormulaR1C1-Methode aufTXLSCalculator(undGetCompiledR1C1aufTXLSFormula) akzeptiert eine in R1C1-Notation geschriebene Formel (R2C3für absolut,R[-1]C[2]für relativ,RCfür die aktuelle Zelle) und kompiliert sie, indem sie zuerst unter Verwendung der Zeile/Spalte der Formelzelle in A1-Notation konvertiert wird. Eine eigenständigeR1C1ToA1-Funktion führt die Konvertierung durch — sie erkenntR/C-Markierungen, die eigenständig sind (nicht Teil eines Funktionsnamens wie ROUND), parst die optionalen eingeklammerten Offsets und erzeugt die äquivalente A1-Referenz. String-Literale und Bezeichner werden übersprungen. Zuvor konnten nur A1-Stil-Formeln kompiliert werden
Version 2.174.0
Hinzugefügt
- Die
TXLSDirectWriter-AutoFilter-Ausgabe unterstützt nun Arbeitsblatt- und Tabellenfilterspalten, Wertfilter, Leerfilter, Datumsgruppenfilter, benutzerdefinierte Vergleichsfilter, dynamische Filter, Top-/Bottom-Filter, Filterschaltflächen-Flags, Sortierzustände, Sortierbedingungen, XML-Escaping und die Unterdrückung doppelter Arbeitsblatt-/Tabellenfilterbereiche beim Streamen von XLSX-Dateien
Version 2.173.0
Hinzugefügt
- Die
TXLSDirectWriter-Tabellenausgabe unterstützt nun Tabellenkommentare, Summenzeilenanzahlen, Spaltensummenzeilen-Beschriftungen, Spaltensummenzeilen-Funktionen, berechnete-Spalte-Formeln, Summenzeilen-Formeln und das XML-Escaping für Tabellenspalten-Metadaten beim Streamen von XLSX-Dateien
Version 2.172.0
Hinzugefügt
TXLSDirectWriterschreibt nun Excel-Tabellenteile beim Streamen von XLSX-Dateien, einschließlich Arbeitsblatt-Tabellen-Beziehungen, Tabellenteil-ContentTypes, Tabellenbereichen, Spaltennamen, Kopfzeilen- und Summenzeilen-Flags sowie eingebauten Tabellenstil-Anzeige-Flags, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen
Version 2.171.0
Hinzugefügt
TXLSDirectWriterschreibt nun Arbeitsblatt-Datenvalidierungen beim Streamen von XLSX-Dateien, einschließlich Listen-, Ganzzahl-, Dezimal-, Datums-, Zeit-, Textlängen-, benutzerdefinierten-Formel-, beliebigensqref-, Eingabe-, Fehlerwarnungs-, Leerzeichen-erlauben-, Dropdown- und Eingabe-/Fehlermeldungs-Flags, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen
Version 2.170.0
Hinzugefügt
TXLSDirectWriterschreibt nun Arbeitsmappen- und blattlokale Definierte Namen beim Streamen von XLSX-Dateien, einschließlich ausgeblendeter Namen, Kommentaren, erzeugten absoluten Bereichen, Druckbereichen, Drucktitel-Zeilen, Drucktitel-Spalten, kombinierten Drucktiteln, zitierten Blattnamen-Referenzen, XML-Escaping und Ersetzungssemantik für wiederholte Druckname-Setter, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen
Version 2.169.0
Hinzugefügt
TXLSDirectWriterschreibt nun Arbeitsblatt-Hyperlinks beim Streamen von XLSX-Dateien, einschließlich externer URL-, mailto- und Datei-Beziehungen, internen Blattpositionen, Anzeigetext, Tooltips, Einzelzell- oder Mehrzell-Hyperlink-Bereichen, bloßerwww.-URL-Normalisierung, XML-Escaping und prozentkodierten Beziehungszielen, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen
Version 2.168.0
Hinzugefügt
TXLSDirectWriterschreibt nun Druck- und Blattansicht-Metadaten beim Streamen von XLSX-Dateien, einschließlich Gitternetz- und Zeilen-/Spaltenkopf-Anzeige-Umschaltern, Seitenrändern, ungeraden Kopf-/Fußzeilen-Text, Druckgitternetzen und -überschriften, Seitenzentrierung, Papierformat und Querformat, Anpassen-an-Seite-Dimensionen und manuellen Zeilen- oder Spalten-Seitenumbrüchen, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen
Version 2.167.0
Hinzugefügt
TXLSDirectWriterschreibt nun Arbeitsblatt-Layout-Metadaten beim Streamen von XLSX-Dateien, einschließlich Standard-Spalten- und -Zeilengrößen, benutzerdefinierten Spaltenbreiten, ausgeblendeten Zeilen und Spalten, verbundenen Bereichen, AutoFilter-Bereichen, eingefrorenen Fenstern, Blattregister-Farben und rechts-nach-links-Blattansichten, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen
Version 2.166.0
Hinzugefügt
- Gestreamte XLSX-Workflows umfassen nun Blattnamen-Auflistung ohne Arbeitsblatt-Scans, namensbasierte Zeilen-Cursor-Blatt-Auswahl, rohes numerisches Datum-Streaming, Direct-Writer-Wiederverwendung, Fehlerzellen-Schreiben und zwischengespeicherte Formelergebnis-Writer für Zahlen-, String-, Boolean-, Datums- und Fehlerwerte
Version 2.165.0
Behoben
TXLSDirectReader.ReadStreamstellt nun die Stream-Position des Aufrufers nach dem direkten Scannen wieder her, entspricht dem dokumentierten Stream-Vertrag und ermöglicht es Anwendungen, denselben Stream nach einem Direktlese-Durchlauf wiederzuverwenden
Version 2.164.0
Hinzugefügt
TDataToXLS-Datensatz-Exporte unterstützen nunIncludeFields- undExcludeFields-Stringlisten. Anwendungen können exportierte Felder auf eine Positivliste setzen, sensible Spalten auslassen und Kopfzeilen, Datenzeilen, Spaltenbreiten und Export-Callbacks mit dem ausgewählten Feldset im Einklang halten
Version 2.163.0
Hinzugefügt
- Der CSV-Export erhält konfigurierbares Text-Quoting über die XLS- und XLSX-Engines.
TXLSWorkbookstellt nunCSVEmitFormulasundCSVQuoteAllStringsbereit, undTXLSXWorkbookfügtCSVQuoteAllStringshinzu. Wenn aktiviert, schreibt der Formel-Export Formeltext und String-Felder werden zitiert, während numerische, Datums-, Boolean-, Null- und Leer-Felder die normalen Quoting-Regeln beibehalten
Version 2.162.0
Hinzugefügt
- Die XLSX-Engine erhält ein abbrechbares Fortschritts-Ereignissystem. Ein neuer
OnProgressEx-Callback aufTXLSXWorkbookfeuert neben dem bestehendenOnProgressmit drei Erweiterungen: (1) einTXLSXProgressState-Parameter (ppsBegin/ppsWork/ppsEnd), der jede Phase einklammert, sodass UIs wissen, wann eine Operation startet und endet; (2) einAbort: Boolean-var-Parameter, der es dem Callback erlaubt, die aktuelle Operation mitten im Stream abzubrechen — die Lese-/Schreib-/Calc-Schleifen prüfenWorkbook.Abortedund brechen sauber aus; (3) eine neuexlsxProgressExporting-Phase für Exportoperationen (HTML/RTF/CSV/ODS). EineFireProgress-Hilfsmethode zentralisiert den Dual-Callback-Versand. DasFAborted-Flag wird zu Beginn jeder Top-Level-Operation (Open / SaveAs / Recalculate) zurückgesetzt
Version 2.161.0
Hinzugefügt
- Das XLSX-Diagrammmodell unterstützt nun vier neue Diagrammelemente für stärkere Excel-Kompatibilität. Daten-Tabelle des Diagramms (
c:dTable):TXLSXCharterhältShowDataTable- +ShowDataTableKeys-Schalter — wenn aktiviert, gibt der Schreiber das Daten-Tabellen-Element innerhalb des Plot-Bereichs aus, sodass Excel die Quelldaten als Raster unter der Diagrammachse rendert. Auf-/Ab-Balken + Hoch-Tief-Linien (Aktien-/OHLC-Diagrammelemente):TXLSXCharterhältHasUpDownBars+UpDownGapWidthundHasHiLowLines— der Schreiber gibtc:upDownBarsundc:hiLowLinesinnerhalb des Diagramm-Elements aus (Linien-/Aktien-Diagramme). 3D-Ansicht-Steuerungen:TXLSXCharterhältRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— der Schreiber gibtc:view3Dauf Diagramm-Ebene aus, wenn sich eine 3D-Eigenschaft vom Standard unterscheidet. Zuvor wurde keines dieser Elemente ausgegeben, sodass Diagramme, die mit Daten-Tabellen, Aktien-Diagramm-Elementen oder 3D-Ansichten erstellt wurden, diese im Rundlauf verloren
Version 2.160.0
Hinzugefügt
- Formelreferenzen passen sich nun automatisch an, wenn Zeilen oder Spalten in der XLSX-Engine eingefügt oder gelöscht werden. Die
ShiftSheetGeometry-Methode — aufgerufen vonInsertRows/DeleteRows/InsertCols/DeleteCols— läuft nun über jede überlebende Formelzelle und schreibt ihre A1-Referenzen neu, um die strukturelle Änderung widerzuspiegeln. Ein neuerXlsxAdjustFormulaRowColRefs-Textscanner erkennt Einzelzell-Referenzen (A1,$B$2) und Bereichs-Referenzen (A1:B3), verschiebt ihre Zeilen-/Spaltenkomponenten über den Einfügepunkt hinaus und wandelt gelöschte Referenzen in#REF!um. Sowohl relative als auch absolute Referenzen werden verschoben (entsprechend dem Verhalten von Excel). Zuvor blieben Formeln nach einer strukturellen Bearbeitung stillschweigend auf die falschen Zellen gerichtet
Version 2.159.0
Hinzugefügt
- Der AutoFilter-Sortierzustand führt nun im Rundlauf durch die XLSX-Engine.
TXLSXWorksheeterhält eineSortStateXml-Eigenschaft, die das rohe innere XML des OOXML-<sortState>-Elements trägt (Spaltensortierungsrichtung, Groß-/Kleinschreibungssensitivität, Sortiermethode und jede<sortCondition>mit ihrem Descending-Flag + Ref). Der Schreiber gibt das Element nach<autoFilter>aus; der Leser parst die Attribute und Sortierbedingungen zurück. Zuvor wurde der Sortierzustand beim Lesen stillschweigend verworfen und nie geschrieben - CJK-phonetische/Ruby-Einstellungen führen nun im Rundlauf durch die XLSX-Engine.
TXLSXWorksheeterhältPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) undPhoneticAlignment(left / center / distributed). Der Schreiber gibt<phoneticPr>nach<sheetData>aus; der Leser parst die Attribute zurück. Zuvor wurde das phonetische Element beim Lesen stillschweigend verworfen — Dateien für den japanischen Markt verloren ihre Furigana-Lesehilfeeinstellungen
Version 2.158.0
Hinzugefügt
- Die XLSX-Engine führt nun die Tabelle benannter Zellstile (
<cellStyles>) im Rundlauf. Eine neueTXLSXNamedStyle-Klasse +TXLSXNamedStyles-Sammlung aufTXLSXWorkbookträgt die volle Oberfläche:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. Der Schreiber gibt ein<cellStyle>pro Eintrag aus, wenn die Sammlung nicht leer ist; der Leser parst sie zurück. Zuvor schrieb der Schreiber einen einzelnen hartcodierten"Normal"-Eintrag und der Leser verwarf alle benannten Stile, sodass Dateien mit „Good“/„Bad“/„Total“/benutzerdefiniert-benannten Stilen diese Namen im Rundlauf verloren
Version 2.157.0
Hinzugefügt
- Die XLSX-Engine führt nun das vollständige
<calcPr>-Element im Rundlauf, nicht nur die iterativen Berechnungs-Umschalter.TXLSXWorkbookerhältCalcId(die Calc-Engine-Kennung, die Excel verwendet, um zu entscheiden, ob zwischengespeicherte Werte veraltet sind),FullCalcOnLoad(zwingt Excel, eine vollständige Neuberechnung beim Öffnen durchzuführen — kritisch für Arbeitsmappen, die von einer Nicht-Excel-Engine erzeugt wurden) undCalcMode(auto / manual / autoNoTable). Der Schreiber gibt die passenden Attribute auf<calcPr>aus; der Leser parst sie zurück. Zuvor wurden nuriterate/iterateCount/iterateDeltabehandelt, und der Rest wurde stillschweigend verworfen
Version 2.156.0
Hinzugefügt
- Der Formel-Auswerter implementiert nun 37 Arbeitsblattfunktionen, die zuvor registriert (ptg in InitFuncHash zugewiesen), aber ohne Dispatch-Implementierung waren — sie fielen zu
#NAME?durch. Die neuen Implementierungen umfassen fünf Funktionsfamilien: Regression (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Abschreibung (SLN,SYD,DB,DDB,VDB), Beschreibende Statistik (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Array-Paarweise (SUMXMY2,SUMX2MY2,SUMX2PY2) und Kombinatorik/Mathematik (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Die Regressionsfunktionen verwenden einen Least-Squares-Solver; die Abschreibungsfunktionen implementieren Linear-, Sum-of-Years'-Digits- und Declining-Balance-Methoden; die beschreibenden-Statistik-Funktionen berechnen mittlere absolute Abweichung, Kurtosis, Schiefe, geometrische/harmonische/getrimmte Mittel; und die paarweisen Funktionen berechnen die Summe der quadrierten Differenzen zwischen zwei gleich großen Bereichen. Ein neuerCollectRangeValues-Helfer aufTXLSCalculatorextrahiert numerische Werte aus Bereichsargumenten für die Statistikfunktionen
Version 2.155.0
Hinzugefügt
- Der Formel-Auswerter unterstützt nun fünf zusätzliche statistische und technische Kompatibilitätsnamen:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTundF.TEST.ERFCergänzt die bestehende Fehlerfunktions-Serie,BINOM.INVdurchsucht die Binomial-CDF-Schwelle,CHI.INV.RTaliasiert die Rechts-Quantil-Chi-Quadrat-Inverse undF.TESTgibt den zweiseitigen Stichproben-Varianz-p-Wert zurück
Version 2.154.0
Hinzugefügt
- Der Formel-Auswerter löst nun arbeitsmappenübergreifende Referenzen über einen neuen
OnGetExternalValue-Callback aufTXLSCalculatorauf. Wenn eine 3D-Bereichsreferenz in eine externe Arbeitsmappe zeigt ([1]Sheet1!A1), leitet der Auswerter über den Callback weiter, statt#REF!zurückzugeben. Die XLSX-Engine verdrahtet diesen Callback zuGetExternalCellValue, das den SupBook-Index + Blatt-Index auf den<sheetDataSet>-Cache der passendenTXLSXExternalLinkabbildet und den zwischengespeicherten Zellwert nach seinem OOXML-Typ-Attribut dekodiert (numerisch / boolean / string / fehler). Zuvor gaben arbeitsmappenübergreifende Formeln bedingungslos#REF!zurück; die Callback-Infrastruktur erlaubt es nun jeder Engine (BIFF8, XLSX oder einem benutzerdefinierten Calculator-Host), externe Werte zu liefern - Der Formel-Auswerter führt nun elementweises Array-Broadcasting bei binären Operatoren (
+/-/*///^) durch. Wenn entweder der Operand ein 1D- oder 2D-Variant-Array ist (z. B. ein Matrix-Funktions-Ergebnis, ein gespilter Bereich oder ein CSE-Array-Operand), wird der Operator elementweise angewendet; ein skalarer Operand wird auf jedes Element des Array-Operanden gebroadcastet. Der neueApplyArrayBinaryOp-Helfer übernimmt die Form-Validierung, Skalar-Broadcast und die Weitergabe der Division-durch-Null. Legacy-Skalararithmetik ist unverändert — der Array-Pfad aktiviert sich nur, wenn mindestens ein Operand ein Variant-Array ist - Der Formel-Auswerter erkennt nun die
TABLE-Funktion (What-If-Analysis-DatenTabelle). Excel speichert Datentabellen als CSE-Array-Formeln, deren RumpfTABLE(rowRef, colRef)ist; zuvor warTABLEunerkannt und fiel zu#NAME?durch. Die Funktion ist mit einem synthetischen ptg (ftabTABLE = 4232) registriert, sodass sie durch die BIFF8-Formel-Kodierung im Rundlauf geführt wird, und gibt zur Eval-Zeit einen Platzhalterwert (0) zurück — die echten Ergebnisse sind von Excel vorberechnet und als zwischengespeicherte Zellwerte gespeichert, sodass HotXLS die Substitutionslogik nicht neu auswertet
Version 2.153.0
Hinzugefügt
- Das PivotTable-typisierte Modell trägt nun die Seitenachsen-typisierten Eigenschaften (Hier / Caption / Name), den AutoSort-Gültigkeitsbereich und die Raw-XML-Rundlauf-Hooks für
<formats>und<extLst>, die für vollere Excel-Kompatibilität benötigt werden.TXLSPivotFielderhältPageHier/PageCaption/PageName(F16 — OLAP-Hierarchiename + Seitenachsen-Beschriftung + Anzeigename) undAutoSortScope(F20 — A1-Bereichsreferenz, die die Zellen festlegt, die Excel zum automatischen Sortieren der Elemente des Feldes verwendet);TXLSPivotTableerhältFormatsXml/ExtLstXml(F17 — roher innerer XML-Rundlauf für den<formats>CF-/Zahlenformat-Overrides-Block und den<extLst>Slicer-/Timeline-/x14-Block, wortwörtlich ausgegeben, wenn gesetzt, sodass der Rundlauf auch über Engine-Versionen hinweg sicher ist). Der XLSX-Schreiber gibt die passenden<pageField hier=... cap=... name=.../>-Attribute, das<autoSortScope>-Kind von<pivotField>und die<formats>- +<extLst>-Blöcke vor dem schließenden Sentinel aus - Der Formel-Tracer zeichnet nun pro-Schritt Operanden-Stack-Snapshots auf und ermöglicht einen echten Step-through-„Formel auswerten“-Debugger.
TXLSFormulaSteperhältStepKind(push / reduce / function),StackBefore/StackAfter(kommagetrennte Snapshots des Operanden-Stacks zum Zeitpunkt, als jeder Schritt startete / endete) undTokenStart/TokenEnd(1-basiertes Zeichen-Span, das den Schritt auf die Quellformel zurückpinnt).TXLSFormulaTracererhältTraceReversed(gibt dieselben Schritte in umgekehrter Auswertungs-Reihenfolge zurück — nützlich für eine Step-back-UI, die vom Endergebnis zu den ursprünglichen Operanden zurückgeht) und eineStepCount-Eigenschaft. Zuvor zeichnete der Tracer nur Depth / Source / Expression / Value ohne Stack-Zustand auf - Der HTML-Export bettet nun pro-Zell-Bilder über einen neuen
OnCellImage-Callback aufTXLSHTMLExportund eine neuexhImages-Option ein. Wenn die Option gesetzt und der Callback verdrahtet ist, fragt der Exporter den Implementierer nach dem<img>-Fragment jeder Zelle (typischerweise eine Base64-Data-URI) und hängt es nach dem Zelltext an. Dies entkoppelt den Exporter vom BIFF8-Bildspeicher der XLS-Engine (der im MsoDrawing-Datensatz pro Blatt lebt), sodass der Exporter die Anker nicht selbst parsen muss. Der HTML-Export der XLSX-Engine bettete bereits Bilder ein; dies schließt die Lücke für die XLS-Engine - Der RTF-Import wendet nun Zeicheneigenschaften (Fettdruck / Kursiv / Unterstreichung / Durchstreich / Größe) aus den RTF-Kontrollwörtern auf die Schriftart der Zielzelle an.
TXLSRTFImportverfolgt\b/\i/\ul/\strike/\fsüber das Dokument und schiebt die Formatierung der dominanten Lauf zum Commit-Zeitpunkt in das XF der Zelle. Eine neueImportCharFormat-Eigenschaft (Standard True) schaltet das Verhalten um; auf False setzen, um den Legacy-Text-only-Import wiederherzustellen. Mehr-Lauf-Zellen kollabieren zu einem einzigen XF (die letzte aktive Lauf gewinnt), da die Zell-API der XLS-Engine Zellebene ist, nicht pro-Fragment — aber dies ist weit besser, als die gesamte Formatierung zu verwerfen, was der Legacy-Importer tat - Eine neue
TXLSHTMLImport-Klasse parst HTML-Tabellen in Arbeitsblatt-Zellen. Sie durchläuft die erste<table>in der Quelle und gibt eine Arbeitsblatt-Zeile pro<tr>und eine Zelle pro<td>/<th>aus. Berücksichtigtcolspan/rowspan(Excel-artige Zusammenführung), entfernt Tags innerhalb einer Zelle (verschachtelte Formatierung zu Klartext kollabierend), dekodiert die fünf Standard-Zeichen-Entities (&/</>/"/'/ ) und die numerischen&#NNN;- /&#xNN;-Formen und wandelt saubere numerische Strings in Double um, sodass importierte Tabellen berechenbar bleiben. Entwickelt für die Ausgabe, die HotXLS selbst erzeugt (SaveAsHTML), plus allgemeine Copy-Paste-Qualität HTML-Tabellen; kein vollständiger HTML5-Parser
Version 2.152.0
Hinzugefügt
- XLSX-Tabellen behalten nun Spalten-Summen-Metadaten und Tabellenformeln.
TXLSXTablestelltColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]undColumnTotalsRowFormulas[]bereit;SaveAsgibt die passendentotalsRowFunction-,totalsRowLabel-,calculatedColumnFormula- undtotalsRowFormula-Tabellenspalten-XML aus,Openliest sie zurück, und Tabellen-Klone bewahren sie
Version 2.151.0
Hinzugefügt
- Das PivotTable-typisierte Modell trägt nun die pro-Feld-Filtersammlung, den Multi-Select-Schalter, die fieldGroup-discretePr- + groupItems-Oberfläche und das berechnete-Elemente-/berechnete-Mitglieder-Modell, die für vollere PivotTable-Kompatibilität benötigt werden.
TXLSPivotFielderhält eine typisierteTXLSPivotFilters-Sammlung (jeder Eintrag trägtFilterTypeüber die 80-Mitglied-OOXML-ST_FilterType-Enum — count / percent / sum / caption / value / datum-Familien — plusValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), einenMultipleItemSelectionAllowed-Schalter (F9) und eineTXLSPivotCalculatedItem-Sammlung (F14).TXLSPivotCacheFielderhältDiscreteIndices[]+AddDiscreteIndexundGroupItemLabels[]+AddGroupItemfür die fieldGroup-discretePr- + groupItems-Blöcke (F13).TXLSPivotTableerhält eineTXLSPivotCalculatedMember-Sammlung (F14). Der XLSX-Schreiber gibt die passenden<pivotField multipleItemSelectionAllowed="1">, den pro-Feld-<filters><filter .../>-Block, das<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>-Element, den pro-Feld-<calculatedItems>-Block und den tabellenebenen<calculatedMembers>-Block aus — sodass programmgesteuert erstellte Pivots mit Filtern / Multi-Select / Gruppierung / berechneten Elementen im Rundlauf geführt werden
Version 2.150.0
Hinzugefügt
- Definierte Namen behalten nun ihren Formeltext gültig, wenn das Arbeitsblatt, auf das sie verweisen, gelöscht oder umbenannt wird. Das Löschen eines Blattes schreibt jeden
SheetN!-Qualifizierer innerhalb der Formel eines definierten Namens zu#REF!um (entsprechend dem Verhalten von Excel); das Umbenennen eines Blattes schreibt den Qualifizierer zum neuen Namen um. Zuvor blieb der Formeltext auf einen nicht existierenden Blattnamen gerichtet, den Excel dann beim erneuten Öffnen als fehlerhafte Verknüpfung markierte - Das PivotTable-typisierte Modell trägt nun die Feldebene-Sortierreihenfolge und Layout-Schalter sowie die tabellenebenen Layout-/Anzeige-Attribute, die für vollere PivotTable-Layout-Kompatibilität benötigt werden.
TXLSPivotFielderhältSortType(manual / ascending / descending),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTableerhältCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesplusRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissingund das Seitenachsen-Layout-PaarRowPageCount/ColPageCount. Der XLSX-Schreiber gibt die passenden<pivotField sortType=... compact=... outline=...>- und<pivotTableDefinition indent=... outline=... showEmptyRow=...>-Attribute sowie das<location rowPageCount=... colPageCount=.../>-Element aus, sodass programmgesteuert erstellte Pivots das benutzergewählte Layout statt der Excel-Standards tragen - Eine neue
FormulaIsVolatile-Methode aufTXLSWorkbookmeldet, ob eine Formel eine Neuberechnung bei jedem Calc-Durchlauf erzwingen würde — d. h. sie ruft eine volatile Funktion (NOW / RAND / TODAY / OFFSET / INDIRECT) auf oder trägt eine unauflösbare Referenz. Die Sonde teilt sich denselben Abhängigkeits-Extraktor, den die Recalc-Engine verwendet, sodass die Antwort dem entspricht, wasRecalculatetatsächlich tut. Aufrufer können sie verwenden, um Zellen für eine Verifizierungs-UI zu markieren, um eine Calc-Chain-Volatile-Menge auf einer brandneuen Arbeitsmappe zu füllen, oder um das Zwischenspeichern des Ergebnisses einer frisch eingegebenen Formel zu überspringen
Version 2.149.0
Hinzugefügt
- PivotTable-Caches können nun programmgesteuert aus ihrem Quellbereich aktualisiert werden. Eine neue
RefreshPivotCache(ACacheId)-Methode aufTXLSXWorkbookscannt den Quellbereich des Caches erneut, baut die Shared-Items-Domäne pro Feld neu auf (dedupliziert Werte erneut und leitet die pro-Typ-Grenzen erneut ab) und schreibt die pro-Datensatz-Element-Indizes neu. Zuvor verließ sich HotXLS auf das hartcodierterefreshOnLoad="1"-Flag und verlagerte die gesamte Aktualisierungsarbeit an Excel beim nächsten Öffnen; programmgesteuerte Pipelines können nun prozessintern aktualisieren
Version 2.148.0
Hinzugefügt
InsertColsauf der XLSX-Engine erbt nun die Spaltenbreite von ihrem linken Nachbarn, entsprechend dem Excel-Standardverhalten für „Spalte einfügen“. Zuvor übernahm die eingefügte Spalte die Arbeitsmappen-Standardbreite, was nach einem erneuten Öffnen eine sichtbare Fidelity-Lücke erzeugte- Die XLSX-Engine erhält Komfort-Outline-Collapse-Helfer
ToggleColGrouped/ToggleRowGroupedaufTXLSXWorksheet, die den Outline-Baum durchlaufen und die Gruppe auf einer bestimmten Ebene einklappen oder erweitern. Die Collapse-Flags selbst führten bereits im Rundlauf; dies fügt die fehlende Walk-the-Tree-Komfort-API hinzu
Version 2.147.0
Hinzugefügt
- Der HTML-Export gibt nun
<a name>-Anker an Zellen aus, die interne-Hyperlink-Ziele sind, sodass#SubAddress-Hyperlinks korrekt auflösen, wenn der Leser sie anklickt. Zuvor wurden die Verknüpfungen ausgegeben, aber die Ziele hatten keine Anker, sodass interne Sprünge zu nichts auflösten - Der CSV-Export erhielt eine
CSVEmitFormulas-Eigenschaft aufTXLSXWorkbook. Bei True exportieren Formelzellen ihren Formeltext (=SUM(A1:A2)) statt des berechneten Wertes — nützlich zum Debuggen und für Pipelines, die in eine andere Engine neu importieren - Externe Hyperlink-URLs werden beim Schreiben nun prozentkodiert (
XlsxEncodeHyperlinkUrl): Leerzeichen, spitze Klammern, Anführungszeichen, geschweifte Klammern, Pipes, Backslashes, Carets und Backticks werden als%XXim<Relationship Target="..."/>-Attribut kodiert, sodass die Datei in jedem Browser korrekt öffnet. Bestehende prozentkodierte Sequenzen (%20) werden unverändert bewahrt - Die PivotTable-Stilinformation trägt nun die volle
pivotTableStyleInfo-Oberfläche:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnaufTXLSPivotTable. Der XLSX-Schreiber gibt das passende Element aus, sodass programmgesteuert erstellte Pivots den benutzergewählten Banding-Stil statt des hartcodierten Standards tragen - Eine neue
CalculateAndVerify-Methode aufTXLSXWorkbookwertet jede Formelzelle erneut aus und vergleicht das berechnete Ergebnis mit dem zwischengespeicherten Wert der Zelle. Gibt die Anzahl der Nichtübereinstimmungen zurück (0 = alle zwischengespeicherten Werte entsprechen der frischen Berechnung der Engine; volatile Formeln sind ausgeschlossen). Nützlich für QA beim Portieren von Arbeitsmappen zwischen Engines oder beim Validieren, dass ein Schreiber keine zwischengespeicherten Werte korrumpierte
Version 2.146.0
Hinzugefügt
- Die XLSX-Engine unterstützt nun iterative Zirkelreferenz-Berechnung (den iterativen Calc-Modus von Excel). Eine neue
Iterate/IterateCount/IterateDelta-Eigenschaftstriple aufTXLSXWorkbooksteuert das Verhalten: wennIterate=Trueund ein Referenzzyklus währendRecalculateerkannt wird, wertet die Engine die Zyklus-Mitglieds-Zellen bis zuIterateCount-mal (Standard 100) aus oder bis jede Zelländerung< IterateDelta(Standard 0.001) ist, statt#REF!zurückzugeben. Die Einstellungen führen über das OOXML-<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>-Element im Rundlauf. Finanzmodelle mit beabsichtigten Zirkelreferenzen (Zins-auf-Zins, zirkuläre Zuteilungen) konvergieren nun, statt zu fehlschlagen - PivotTable-Cache-Felder tragen nun ein Gruppierungsmodell für numerische-Bereichs- und Datumshierarchie-Gruppierung.
TXLSPivotCacheFielderhältHasGroup+GroupStartNum/GroupEndNum/GroupInterval(numerischer Bereich) undGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(Datum). Der XLSX-Schreiber gibt das<fieldGroup><rangePr groupBy="range|days|months|..."/>-Element aus, sodass programmgesteuert erstellte Pivots mit gruppierten Feldern der Ausgabe von Excel entsprechen - Der HTML-Export gibt nun Kommentar-Endnoten aus. Wenn
xhCommentsin den Export-Optionen ist, erhält jede kommentierte Zelle einen[n]-Hochgestellt-Link, und der vollständige Kommentar-Text (Autor + Rumpf) wird als Endnoten-Abschnitt nach der Tabelle mit einem Rück-Anker zur Zelle aufgelistet. Zuvor waren Kommentare nur über dastitle=-Attribut der Zelle verfügbar, das beim Drucken oder Copy-Paste unsichtbar ist
Version 2.145.0
Hinzugefügt
- BIFF8-Formel-Fehler-Literale (
tErr-Token) dekodieren nun in ein typisiertesSA_ERROR-Syntax-Element, statt das Formel-Parsen fehlschlagen zu lassen. Eine Zelle, die=#N/A(oder eine der sieben Excel-Fehlerkonstanten) speichert, führte zuvor dazu, dass die gesamte Formel beim Lesen verworfen wurde; das Fehler-Byte führt nun durch Lesen → Auswerten → Schreiben im Rundlauf und rekonstruiert sich zu seiner Textform (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) über einen neuenXlsErrorToString-Helfer - Das BIFF8-
tIsect $0F-Token (impliziter Schnittmengen-Operator) dekodiert nun im binären Formel-Übersetzer und baut denselbenSA_ISECT-Knoten, den der Text-Parser für@erzeugt. Zuvor würde eine binäre Formel, dietIsectenthält, nicht parsen - Das Datenbalken-Bedingungsformat gibt nun den Excel-2010+-
x14-Erweiterungsblock im Arbeitsblatt-extLstaus, wenn das Modell ein Nicht-Standard-x14-Feld trägt (negative Füllfarbe, Verlauf aus, Achsenfarbe, Richtung, Rahmen). Ein neuerBuildDataBarExtXmlbaut das<x14:conditionalFormattings>-ext-Element mit der passenden Priorität, dem cfvo-Paar, der Füll- + Negativ- + Achsenfarbe und den Gradient-/Border-/Direction-/NegativeBarColorSameAsPositive-Attributen
Version 2.144.0
Hinzugefügt
- Die XLSX-Engine kann nun Agile-verschlüsselte Arbeitsmappen schreiben (
TXLSXWorkbook.SaveAsEncryptedAgile) und schließt eine hochwertige Lese-/Schreib-Kompatibilitätslücke. Agile ist, was Excel 2010+ standardmäßig für kennwortgeschützte .xlsx-Dateien schreibt; HotXLS konnte zuvor Agile lesen, aber nur Standard-Verschlüsselung (AES-128) schreiben. Die neue Schreib-Pipeline spiegelt den bestehenden Entschlüsselungs-Pfad: SHA-512-Kennwort-Hashing mit einer 100000-Iterations-Spin-Count, AES-256-CBC-pro-Segment-Paketverschlüsselung, ein zufällig erzeugter Zwischenschlüssel, der pro der drei spezifikationsfestgelegten Block-Schlüssel gewrappt wird, und ein vollständiges<encryption>-Deskriptor-XML, das den verschlüsselten Verifizierer + Schlüssel-Blobs trägt. Die Ausgabe ist byte-genau das, was Excel erzeugt, und führt sauber durchXlsLoadAgileEncryptedFileim Rundlauf (per Test verifiziert: korrektes Kennwort entschlüsselt, falsches Kennwort abgelehnt) - Neue kryptografische Primitive untermauern den Agile-Schreib-Pfad:
XlsHMACSHA512(RFC 2104, benötigt für dasdataIntegrity-Element),XlsBase64Encode(RFC 4648-Encoder, der den bestehenden Decoder spiegelt) undAESEncryptCBC(AES-CBC-Verschlüsselung für jede Schlüsselgröße 128/192/256, das Inverse des bestehendenAESDecryptCBC). Die AES-Einheit importiert nunaes_encrypt_key192/aes_encrypt_key256aus dem Gladman-obj (zuvor war nur 128-Bit-Verschlüsselung verfügbar)
Version 2.143.0
Hinzugefügt
- Der Formel-Auswerter parst und wertet nun den expliziten Schnittmengen-Operator
@aus (Excel-365-dynamische-Array-Syntax, z. B.=A2:A4 @ B2:B4). Der Lexer gibt ein neuesLT_ISECT-Token für das@-Symbol aus, der Präzedenz-Parser baut einenSA_ISECT-Knoten (fester bindend als^, lockerer als%), und ein neuerIntersectRanges-Auswerter löst beide Operanden als Bereiche auf und gibt den Wert der einzelnen kreuzenden Zelle zurück — die implizite-Schnittmengen-Regel von Excel. Der BIFF-Token-Serializer gibttIsect $0Faus, sodass der Operator durch XLS im Rundlauf geführt wird, und der Formel-Text-Rekonstruktions-Pfad gibt die implizite-Leerzeichen-Form aus. Zuvor schlugen solche Formeln fehl zu parsen - Ein Standard-Base64-Encoder (
XlsBase64Encode) ist nun verfügbar und spiegelt den bestehendenXlsBase64Decode. Dies ist die Voraussetzung für den Agile-Verschlüsselungs-Schreib-Pfad, der saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue als Base64-Attributwerte ausgibt - Das
OnProgress-Ereignis der Arbeitsmappe feuert nun auch während der vollständigen Neuberechnung (Recalculate), mit einer neuenxlsxProgressCalculating-Phase. Zuvor feuerte das Ereignis nur während Lesens und Schreibens, sodass lange vollständige Recalcs dem UI keinen Herzschlag gaben. Das Ereignis feuert etwa alle 4 % der Zellen, um ein Überfluten zu vermeiden - Die erweiterten Dokument-Eigenschaften (
docProps/app.xml) führen nun drei weitere Felder im Rundlauf, die Excel für kennwortgeschützte / vorlagenbasierte Dokumente schreibt:Manager,TemplateundDocSecurity(ein Bit-Feld: 1 = kennwortgeschützt, 2 = schreibgeschützt empfohlen, 4 = schreibgeschützt erzwungen, 8 = für Anmerkung gesperrt)
Version 2.142.0
Hinzugefügt
- Das PivotTable-typisierte Modell trägt nun die Metadaten-, Quell-, berechnete-Feld-, „Werte anzeigen als“- und Shared-Items-Grenzen-Oberfläche, die die vorherige Analyse-Runde als Lücken markierte.
TXLSPivotCacheerhältRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDataplus eine typisierte Arbeitsblatt-Quell-Form (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFielderhältFormula/DatabaseField/MemberPropertyField(berechnete Felder) und die Shared-Items-Grenzen (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFielderhältShowDataAs/BaseField/BaseItemfür die „Werte anzeigen als“-Transformationen (Prozent-von / Differenz / laufende-Summe / Index). Der XLSX-Schreiber (BuildPivotCacheDefinitionXml/BuildPivotTableXml) berücksichtigt all dies, sodass ein programmgesteuert erstellter Pivot (AddPivotTable) eine reichhaltigerepivotCacheDefinition+pivotTableDefinitionausgibt — refreshOnLoad / Versions-Tripel / refreshedBy / Named-Range-Quelle / berechnete-cacheField-Formel / sharedItems-Grenzen / dataField-Subtotal + showDataAs. Pivot-Tabellen, die aus einer Datei gelesen werden, führen weiterhin ihr rohes XML wortwörtlich im Rundlauf - Das Bild-Anker-Verhalten führt nun über eine neue
AnchorType-Eigenschaft aufTXLSXImageim Rundlauf (xaTwoCell= mit Zellen bewegen und skalieren,xaOneCell= bewegen aber nicht skalieren,xaAbsolute= nicht bewegen oder skalieren). Der Schreiber wählt das Anker-Element (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) passend; der Leser parst den Elementnamen + daseditAs-Attribut zurück. Abbildbar auf den Rechtsklick → Größe und Eigenschaften → Eigenschaften-Dialog von Excel - Kopf-/Fußzeile führt nun die Gerade-/Erste-Seite-Differenzierung im Rundlauf.
TXLSXWorksheeterhältEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextplus die vier<headerFooter>-Schalter (DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Dateien, in denen der Benutzer „Verschiedene ungerade und gerade Seiten“ oder „Verschiedene erste Seite“ aktivierte, verlieren die geraden-/ersten-Seiten-Abschnitte im Rundlauf nicht mehr - Das Seiten-Setup führt nun die erweiterten
<pageSetup>-Attribute im Rundlauf, die Excel für Nicht-Standard-Druck-Setups schreibt:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(displayed/blank/dash/NA),UsePrinterDefaults <sheetFormatPr>führt nuncustomHeight,zeroHeight,outlineLevelRowundoutlineLevelColim Rundlauf, sodass Dateien, in denen der Benutzer eine benutzerfestgelegte Standard-Zeilenhöhe, ausgeblendete-Standard-Zeilen oder eine Standard-Outline-Ebene setzte, dieses Verhalten im Rundlauf nicht mehr verlieren- Das Datenbalken-Bedingungsformat führt das Standard-
gradient-Attribut (Verlauf vs. Vollton-Füllung) im Rundlauf, undTXLSDataBarSpecerhält die Excel-2010+-x14-Erweiterungsfelder (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColormit theme/tint,Direction,Border) auf dem Modell, sodass API-Konsumenten sie setzen können - Kommentar-Ballons führen ihr VML-Zeichnen wortwörtlich im Rundlauf. Der Leser erfasst
xl/drawings/vmlDrawingN.vmlunverändert und der Schreiber gibt es beim Speichern wieder (statt der eingebauten gelben-Ballon-Vorlage), sodass Position / Größe / Füllfarbe / Sichtbarkeit jedes Ballons, die der Benutzer setzte, überleben - Kommentar-Rümpfe führen pro-Lauf-Formatierung im Rundlauf.
TXLSXCommenterhält eine verzögerteRichText: TXLSXRichText-Payload (wiederverwendend das Shared-Strings-Lauf-Modell); der Schreiber gibt ein<r><rPr>...</rPr><t>...</t></r>pro Lauf aus, wenn RichText Formatierung trägt, und der Leser parst<b/>,<i/>,<sz val=N/>,<color rgb=.../>zurück, sodass Fettdruck / Kursiv / Größe / Farbe überleben - Der Formel-Auswerter implementiert nun
SUBTOTAL(alle elf Aggregatoren: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, plus die 101–111 Ignore-Hidden-Varianten) undAGGREGATE(neunzehn Aggregatoren mit den Optionscode-0–7-Flags, die Fehler-/Ausgeblendet-Überspringen auswählen, einschließlich der LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE-Familie mit ihremk-Argument). Beide fielen zuvor zum Nicht-unterstützte-Funktion-Pfad durch;SUBTOTALwar registriert, hatte aber keine Implementierung,AGGREGATEwar überhaupt nicht registriert - Die
CELL- undINFO-Arbeitsblattfunktionen werden nun ausgewertet:CELLunterstütztaddress,col,row,type,contents,filename,format, und die GUI-Zustands-info_types (color,parentheses,prefix,protect,width) geben neutrale Standards zurück;INFOunterstütztosversion,system,recalc,memavail,numfile,release,origin. Beide waren registriert, fielen aber zu#NAME?durch - Das Bedingungsformat führt nun die
stopIfTrue-,stdDev-,equalAverage- undtimePeriod-cfRule-Attribute plus die volle zehnmitgliedrigetimePeriod-Familie (yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth) im Rundlauf. Diese wurden beim Lesen stillschweigend verworfen; Excel schreibt sie routinemäßig auf den Über-Durchschnitt- und Datumsband-Regeln, und sie zu verwerfen änderte, wie die Regel beim erneuten Öffnen neu auswertete - Der CSV-Export erhielt eine
TXLSCsvEncoding-Eigenschaft aufTXLSCSVSavermit drei Modi:ceSystemAnsi(Legacy-Standard),ceUtf16(der historische Unicode-Modus) undceUtf8, das eine UTF-8-Datei mit der EF BB BF-Byte-Reihenfolgemarkierung schreibt — der moderne Excel-freundliche Standard, der ohne den Textimport-Assistenten in jedem Gebietsschema erneut öffnet - Der CSV-Import erhielt eine
LocaleTolerantNumbers-Eigenschaft aufTXLSCSVLoader. Wenn aktiviert, wird ein numerisches Feld, das mit.als Dezimaltrennzeichen nicht parst, mit,erneut versucht (und umgekehrt), sodass ein europäisches3,14auf einer US-Maschine als die Zahl 3.14 importiert wird. Der strikte Modus (der Standard) ist unverändert, sodass führende-Null-Text, Postleitzahlen und andere Komma-tragende Token Text bleiben
Behoben
- Die Strict-Mode-Zahlen-Inferenz der XLSX-Engine zwingt keine Komma-tragenden Textfelder (z. B.
3,14) mehr über DelphisTryStrToFloatin Zahlen, das ein Komma als Tausendertrennzeichen toleriert, selbst wennThousandSeparatorauf#0gesetzt ist. Solche Felder bleiben nun Text, es sei denn, die neueLocaleTolerantNumbers-Option ist aktiviert
Version 2.140.0
Geändert
- Die XLSX-Engine kompaktiert nun ihre sechs pro-Attribut-Stil-Pools (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) vor jedem Speichern: ein neuer
CompactStylePools-Durchlauf scannt die Stil-Indizes jeder Zelle und verwirft Pool-Einträge, die von keiner Zelle mehr referenziert werden — die Einträge, die sich ansammeln, wenn Zellen geleert, gelöscht oder neu gestylt werden, nachdem der Pool-Eintrag zuerst hinzugefügt wurde. Die kompaktierten Pools erzeugen eine kleinere<cellXfs>-Tabelle in der Ausgabedatei (typischerweise 30–70 % kleiner für Dokumente, die mehrere Bearbeitungszyklen durchlaufen haben), entsprechend der Kompaktierung, die die XLS-Engine bereits überCreateAllReferredListdurchführt
Version 2.139.0
Hinzugefügt
- Zeichenschicht-Shapes, Verbinder, Gruppen-Shapes und Nicht-Diagramm-Grafik-Rahmen führen nun wortwörtlich im Rundlauf: Wenn der XLSX-Leser auf einen
<xdr:sp>-,<xdr:cxnSp>-,<xdr:grpSp>- oder Nicht-Diagramm-<xdr:graphicFrame>-Anker trifft, den das typisierte Modell (Bilder / Diagramme / Textfelder) nicht abdeckt, erfasst es das vollständige Anker-XML und gibt es beim Speichern unverändert wieder — sodass in Excel erstellte Zeichnungen (Pfeile, Legenden, gruppierte Shapes, Smart-Art-Rahmen) einen Lesen→Schreiben-Zyklus ohne Verlust überstehen. Jedes Arbeitsblatt stelltRawDrawingAnchorCount/RawDrawingAnchor(i)zur Inspektion bereit
Version 2.138.0
Hinzugefügt
- Zwischengespeicherte Zellwerte externer Verknüpfungen führen nun auf der XLSX-Engine im Rundlauf: ein neues
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetData-Modell hängt überAddSheetData/AddRow/AddCellan jederTXLSXExternalLink, der Schreiber gibt den passenden<sheetDataSet>-Block innerhalb vonexternalLinkN.xmlaus, und das erneute Öffnen stellt jeden zwischengespeicherten Wert wieder her.FindCachedCell(sheetIdx, row, col)schlägt den zuletzt bekannten Wert einer extern referenzierten Zelle nach — die Daten, die Excel selbst anzeigt, wenn die Remote-Arbeitsmappe offline ist
Version 2.137.0
Hinzugefügt
- Das OOXML-cellXf-
quotePrefix-Flag — der Mechanismus von Excel zum Markieren gespeicherten Textes als Literal, sodass er numerischer Koersion überlebt (CSV-importierte Codes wie00123, lange Kontonummern, alles, was der Benutzer mit einem Apostroph präfixierte) — führt nun auf der XLSX-Engine im Rundlauf:TXLSXAlignmenterhält eineQuotePrefix-Eigenschaft, die Alignment-Pool-Dedup zählt sie, der Schreiber gibtquotePrefix="1"auf dem passenden<xf>aus, und das erneute Öffnen stellt es wieder her, egal ob das cellXf ein Kind-<alignment/>trug oder ein bloßes selbstschließendes<xf quotePrefix="1"/>war
Version 2.136.0
Hinzugefügt
- Diagrammachsen sind jetzt vollständig programmierbar: Ein neues
TXLSXChartAxis-Modell auf derCategoryAxisund derValueAxisjedes Diagramms legtLogBase(logarithmische Skala, z. B. 10 für Logarithmus zur Basis 10),Orientation(normal / umgekehrt),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = automatisch),MajorUnit/MinorUnit,CrossesAt,TickLblPosundDispUnits(Anzeigeeinheiten: Hunderter / Tausender / Millionen / Milliarden / Billionen) offen. AlleStandardeinstellungen entsprechen dem Excel-Automatikverhalten, sodass bestehende Diagramme dasselbe XML wie zuvor ausgeben; der Writer fügt<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>und<c:dispUnits>nur hinzu, wenn der Aufrufer einen vom Standard abweichenden Wert setzt, und beim erneuten Öffnen eines solchen Diagramms wird jede Einstellung wiederhergestellt
Version 2.135.0
Hinzugefügt
- Fehlerbalken in Diagrammen sind jetzt programmierbar und werden auf der XLSX-Engine rund übertragen: Jede
TXLSXChartSerieserhältAddErrorBar(dir)und gibt einTXLSXChartErrBarmitValueType(fest / Prozent / stdDev / stdErr / benutzerdefiniert),Value,PlusValue/MinusValue(benutzerdefiniert) undNoEndCapzurück; pro Richtung (X / Y) wird ein Fehlerbalken-Slot gespeichert, der Writer gibt den passenden<c:errBars>-Block aus, und beim erneuten Öffnen werden Richtung, Typ und Größe wiederhergestellt, sodass wissenschaftliche / technische Diagramme ihre Unsicherheitsindikatoren behalten
Version 2.134.0
Hinzugefügt
- Datenbeschriftungen in Diagrammen sind jetzt programmierbar und werden auf der XLSX-Engine rund übertragen: Jede
TXLSXChartSerieserhält die EigenschaftenShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeundSeparator, die den passenden<c:dLbls>-Block mit seinen<c:show*/>-Kindelementen ausgeben; beim erneuten Öffnen eines solchen Diagramms werden die Schalter wiederhergestellt, sodass die Einstellungen für „Wert anzeigen" / „Prozent anzeigen" einen Speichern-Bearbeiten-Speichern-Zyklus überstehen
Version 2.133.0
Hinzugefügt
- Die Vektorbildformate EMF und WMF sind jetzt erstklassige Bildtypen auf der XLSX-Engine:
TXLSXImageFormaterhältxlsxImageEmf/xlsxImageWmf, der Writer gibt die passenden Inhaltstypenimage/x-emf/image/x-wmfund die Erweiterungen.emf/.wmfaus, und der Format-Erkennungsmechanismus erkennt EMF- (01 00 00 73), platzierte WMF- (D7 CD C6 9A) und Standard-WMF-Header – sodass Bilder, die aus Word oder PowerPoint eingefügt wurden und die Excel als Vektordaten einbettet, jetzt rund übertragen werden, anstatt verworfen zu werden
Behoben
- BIFF8-Diagramm-Substreams, deren GELFRAME-Datensatz (
$1066) die 8224-Byte-Continuation-Grenze überschreitet, verlieren nicht mehr ihre Füll-/Liniengeometrie: Der Reader akzeptiert jetzt GELFRAME-Self-Continuation (Excel schreibt ein weiteres$1066statt des Standard-$003CCONTINUE) und lässt auch Standard-CONTINUE-Datensätze innerhalb des Diagramm-Kontexts zusammenfügen, passend zur bestehenden Multi-Chunk-Verteilung des Writers - BIFF8-Hintergrundbilder in Kopf-/Fußzeilen (
$0866), deren Payload sich über Continuation-Datensätze erstreckt, werden nicht mehr beschädigt: Jedes Continuation-Segment wiederholt einen 14-Byte-MSO-Header, den der Reader vor dem Zusammenfügen jetzt entfernt, sodass die eingebetteten Bilddaten nicht mehr um 14 Byte pro Segment verschoben werden
Version 2.132.19
Behoben
- Die Bereinigung von Legacy-XLS- und verschlüsselter XLSX-Speicherung gibt jetzt Compound-File-Datenströme deterministisch frei und verhindert, dass temporäre Dateien nach Speichern-, Laden-, VBA- oder Verschlüsselungspaket-Vorgängen gesperrt bleiben
- Die formatierte Anzeige erweiterter ganzzahliger Variant-Werte wendet das angeforderte Zahlenformat jetzt konsistent an und entspricht damit dem bestehenden Verhalten für Standard-Ganzzahlwerte
- Freigegebene Zeichenfolgen, Datenüberprüfung, Diagrammblätter, ZIP-Archive, PNG-Zeichnungen und wiederholte Textformeln bereinigen temporäre Puffer jetzt bei Fehlerpfaden und großen Textvorgängen defensiver
Version 2.132.18
Behoben
- Die interne Wertzuweisung des String-Builders löscht den vorherigen Text jetzt, wenn eine leere Zeichenfolge zugewiesen wird, und verhindert, dass wiederverwendete XML- und Textpuffer veraltete Inhalte behalten
Version 2.132.17
Behoben
- Die Erstellung von XLS-Diagrammblättern akzeptiert jetzt in Anführungszeichen gesetzte Quellblattnamen, die ein Ausrufezeichen enthalten, lehnt zu große Zeilenreferenzen ab, bevor sie in eine gültige BIFF-Zeile umgebrochen werden können, und begrenzt Trendlinien-Legendennamen auf das BIFF-Kurztextlimit, sodass erzeugte Diagrammdatensätze wohlgeformt bleiben
Version 2.132.16
Behoben
- Interne String-Schlüssel- und Objekt-Schlüssel-Listen entfernen nun veraltete Lookup-Schlüssel, wenn ein vorhandener Slot überschrieben wird, um zu verhindern, dass alte Schlüssel zu Ersatz-Einträgen aufgelöst werden
- Interne Objekt-Listen-Ersetzungen und transformierte Unique-Key-Caches geben nun eigene Einträge beim Überschreiben, Leeren und Zerstören frei, was Lecks bei wiederholten Workbook- und Style-Operationen verhindert
Version 2.132.15
Behoben
- Direkte XLSX-Streaming-Lesevorgänge decodieren nun boolesche Zellen, die OOXML-Literalwerte wie true und false speichern
- Interne String-Listen-Indexaktualisierungen entfernen nun veraltete Schlüssel, wenn ein vorhandener Slot überschrieben wird, um zu verhindern, dass alte Namen zum neuen Wert aufgelöst werden
Version 2.132.14
Behoben
- BIFF8-Datenvalidierungs-Eingabeaufforderungen und Fehlermeldungen, deren erstes Zeichen NUL ist, bewahren nun die Datensatzgrenzen, anstatt eine nicht übereinstimmende DV-Länge zu schreiben
Version 2.132.13
Behoben
- Das XML-Text-Parsing lehnt nun verschachtelte Entitätsstarts wie && ab, anstatt die unvollständige Entität stillschweigend zu verwerfen
- Dekompilierte Formeln schreiben nun numerische Konstanten mit einem invarianten Punkt-Dezimaltrennzeichen, sodass der Formeltext über Ländereinstellungen hinweg portabel bleibt
Version 2.132.12
Behoben
- Die PNG-Paletten-Transparenz ignoriert nun transparente Farben, die nicht in der Bildpalette vorhanden sind, anstatt einen beliebigen Palettenindex als transparent zu markieren
- SUMPRODUCT-Formeln beenden nun das Scannen verbleibender Zeilen nach der ersten Zeile außerhalb des genutzten Bereichs in Argumenten mit langen Bereichen, was unnötige Zellzugriffe vermeidet und das berechnete Ergebnis beibehält
Version 2.132.11
Behoben
- TEXT-Formeln geben nun #VALUE! zurück, wenn ein ungültiges oder zu großes Zahlenformat nicht angewendet werden kann, anstatt als leeres erfolgreiches Ergebnis verschluckt zu werden
- Das Abschneiden der Shared-String-Tabelle gibt nun die korrekten Endblöcke frei und hält die Tabelle nach großen Löschzyklen wiederverwendbar
Version 2.132.10
Behoben
- Exakte MATCH-Lookups berücksichtigen nun Excel-Platzhalter, und klassische XLS-Zeilenoffset-Metadaten ignorieren nun Zeilen außerhalb des Blocks, anstatt die gespeicherte Arbeitsmappenstruktur zu beschädigen
- PNG-komprimierte Text-Metadaten geben temporäre Puffer nun sicher frei, wenn die Chunk-Verarbeitung einen Fehler auslöst
Version 2.132.9
Behoben
- PNG-komprimierte Text-Metadaten, das Einfügen in die Chunk-Liste und die CRC-Bytereihenfolgen-Handhabung bleiben nun über alle unterstützten Windows-Plattformen hinweg stabil
Version 2.132.8
Behoben
- LEFT- und RIGHT-Formeln melden nun #VALUE!, wenn num_chars nicht in eine gültige Ganzzahl konvertiert werden kann
Version 2.132.7
Behoben
- SEARCH-Formeln unterstützen nun Excel-Platzhalter wie ?, * und ~
- Die Validierung von Arbeitsblattnamen lehnt nun ungültige Excel-Blattnamenzeichen beim Umbenennen von Blättern ab
- Das manuelle Löschen von Seitenumbrüchen funktioniert nun auch nach dem Einfügen eines Umbruchs vor vorhandenen Umbrüchen
Version 2.132.6
Behoben
- DATE-Formeln entsprechen nun dem Excel-kompatiblen Monats- und Tages-Rollover-Verhalten, einschließlich Aufrufen wie DATE(2008,14,2)
- Column-Range Hidden-Lesevorgänge melden nun die Sichtbarkeit jeder Spalte, anstatt den Sichtbarkeitsstatus von Zeilen beizumischen
- BIFF-Zeilenmetadaten an der Excel 97-2003-Zeilengrenze werden nun korrekt geladen, sodass die Einstellungen für Zeile 65536 erhalten bleiben
Version 2.132.5
Behoben
- Das Laden von BIFF-Arbeitsmappen toleriert nun fehlerhafte Tab-Farben von Arbeitsblättern, abgeschnittene Pivot-Beschriftungen und ungültige Pivot-Cache-Datumsfragmente, ohne Exceptions auszulösen
- Das Laden von Workbook-Packages und -Streams bereinigt nun fehlgeschlagene Archiv- und Storage-Setup-Pfade konsistenter, was Ressourcenlecks bei fehlerhafter Eingabe oder fehlgeschlagenen Öffnungen von Stream-gestütztem Storage vermeidet
Version 2.132.4
Behoben
- Die Handhabung von ZIP-Archiven schließt nun das aktuelle Package ab, bevor dasselbe Archivobjekt für ein anderes Package wiederverwendet wird, und das dateibasierte Öffnen von Archiven ermöglicht nun gleichzeitig freigegebene Leser
Version 2.132.3
Behoben
- Das Schreiben von Workbook-Packages behält nun Nicht-ASCII-ZIP-Eintragsnamen mit UTF-8-Metadaten bei, was Zeichensalat verhindert, wenn Package-Teilnamen Unicode-Text enthalten
- Die XML-Ausgabe schreibt nun Rohtext und Attributwerte als UTF-8-Bytes, wenn das Escaping deaktiviert ist, was der deklarierten Dokumentcodierung entspricht
- Die Formelauswertung löscht nun ihren laufenden Zustand nach Callback-Exceptions und handhabt den Abbruch großer Zahlen bei Unicode-Delphi-Builds korrekt
- Die Matrixextraktion bei Array-Formeln berücksichtigt nun Nicht-Null-Untergrenzen von Variant-Arrays, anstatt bei gültigen einsbasierten Arrays einen Fehler auszulösen
Version 2.132.2
Geändert
- Die Bereichssortierung verwendet nun einen stabilen O(n log n) Sortierdurchlauf für große sortierte Bereiche, während das Round-Trip-Verhalten des vorhandenen Zeileninhalts beibehalten wird
- Das numerische Parsen und Formatieren von ODS und XLSX verwendet nun invarianten Formatierungszustand wieder, anstatt ihn in Hot-Paths wiederholt zu erstellen
Behoben
- Das XML-Parsen akzeptiert nun gültige CDATA-Blöcke und UTF-8-Verarbeitungsanweisungen, ohne Text zu korrumpieren oder bei gültigem Markup zu scheitern
- Das Formelparsen akzeptiert nun vorzeichenbehaftete wissenschaftliche Notation und lehnt fehlerhafte oder abgeschnittene Formel-Bytes sauber ab
- Die klassischen Open- und Save-Pfade von Arbeitsmappen geben Streams und Storages nun auch nach Fehlern zuverlässig frei, was verhindert, dass temporäre Dateien gesperrt bleiben
- Die Handhabung von Binärpuffern validiert nun Copy- und Read-Grenzen, vergrößert Zielpuffer vor dem Kopieren und lehnt fehlerhafte VBA-Komprimierungs-Backreferences sauber ab
Version 2.132.1
Behoben
- Die Fehlermeldung, die ausgelöst wird, wenn eine verschlüsselte Arbeitsmappe ein nicht unterstütztes Verschlüsselungsschema verwendet, wurde korrigiert: Zuvor wurde behauptet, dass ECMA-376 Agile Encryption nicht gelesen werden könne, obwohl die Agile-Entschlüsselung (AES-128/192/256) seit 2.119.0 unterstützt wird; die Meldung listet nun die tatsächlich unterstützten Schemata auf
- Open weist Aufrufer nun auf TXLSXWorkbook.OpenEncrypted hin, wenn es ein verschlüsseltes OOXML-Package verweigert, anstatt anzugeben, dass verschlüsselte Arbeitsmappen nicht unterstützt werden
Version 2.132.0
Geändert
- Das Laden von XLSX ist wesentlich schneller: Der XML-Reader interniert nun wiederholte Elementnamen und konvertiert Text- und Attributwerte direkt aus seinem Scan-Puffer, was die Speicherallokationen pro Zelle um mehr als die Hälfte reduziert; das multithreaded Öffnen (2.128.0) profitiert am meisten — die entfernten Allokationen waren diejenigen, die die Worker-Threads serialisierten —, wobei sich Arbeitsmappen mit mehreren Blättern auf Multi-Core-Maschinen nun fast doppelt so schnell öffnen wie im Single-Thread-Pfad; das Single-Thread-Öffnen gewinnt ebenfalls ein paar Prozent
Version 2.131.0
Hinzugefügt
- Arbeitsblatt-Erweiterungsblöcke, die HotXLS nicht modelliert —
<ext>-Einträge in der<extLst>eines Arbeitsblatts, die nicht Sparklines sind, wie sie von Excel für Funktionen wie x14 bedingte Formatierung oder Datenschnitte geschrieben werden —, bleiben nun beim Öffnen einer Arbeitsmappe unverändert erhalten und werden beim Speichern zurückgeschrieben, sodass das Öffnen und erneute Speichern einer Datei diese Erweiterungen nicht mehr entfernt; die erfassten Blöcke sind schreibgeschützt überWorksheet.RawWorksheetExtssichtbar und wandern mit dem Blatt, wenn es in eine andere Arbeitsmappe kopiert wird
Version 2.130.0
Hinzugefügt
- Gespeicherte Arbeitsmappen, die Formeln enthalten, enthalten nun den Berechnungskettenteil
xl/calcChain.xml, sodass Excel seine Abhängigkeits-Engine aus der aufgezeichneten Reihenfolge speisen kann, anstatt sie beim Laden neu aufzubauen; nach einemRecalculate-Aufruf folgt die Kette der topologischen Reihenfolge des Abhängigkeitsgraphen, andernfalls werden Formelzellen in Dokumentreihenfolge aufgelistet (ein gültiger Hinweis, den Excel im laufenden Betrieb verfeinert); der Teil, sein Inhaltstyp und seine Arbeitsmappenbeziehung werden zusammen ausgegeben und überstehen Open/Save-Round-Trips
Version 2.129.0
Hinzugefügt
- Die neue Eigenschaft
Workbook.ParallelParseThreadsoptimiert die Anzahl der Worker für den in 2.128.0 eingeführten multithreaded Open-Pfad (0 = automatisch, ein Worker pro CPU-Kern); das Parsen von Arbeitsblättern ist allokationsintensiv und die Speicherallokation wird über Threads hinweg serialisiert, sodass bei einigen Arbeitslasten eine kleine explizite Obergrenze genauso gut oder besser abschneidet als die volle Kernanzahl; die Eigenschaft ermöglicht es Integratoren zu wählen, was für ihre Dateien am besten geeignet ist
Version 2.128.0
Hinzugefügt
- Multithreaded XLSX-Laden: Das Öffnen einer Arbeitsmappe parst nun das XML jedes Arbeitsblatts — der dominierende Kostenfaktor bei großen Dateien — in Worker-Threads, sodass sich Arbeitsmappen mit mehreren Blättern auf Multi-Core-Maschinen schneller öffnen; Blattteile werden vorab aus dem Package extrahiert und jeder Worker greift nur auf sein eigenes Blatt zu, sodass die geladene Arbeitsmappe mit dem seriellen Ergebnis identisch ist
- Die neue Eigenschaft
Workbook.ParallelParse(StandardwertTrue) wechselt zurück zum Single-Threaded-Parsing, wenn sie vorOpenaufFalsegesetzt wird — ein einzeiliges Opt-out für ressourcenbeschränkte Umgebungen
Geändert
- Der Lese-Callback
OnProgresswird weiterhin einmal pro Arbeitsblatt auf dem aufrufenden Thread ausgelöst, nun jedoch, wenn jedes Blatt zum Parsen gesendet wird, anstatt strikt zwischen den Blättern
Version 2.127.0
Hinzugefügt
- Inkrementelle Neuberechnung auf der XLSX-Engine: Die neue Methode
Workbook.Recalculateerstellt einen Formelabhängigkeitsgraphen, wertet jede Formelzelle einmal in der Reihenfolge der Abhängigkeiten aus und speichert jedes Ergebnis im zwischengespeicherten Wert der Zelle; nachfolgende Aufrufe werten nur die Zellen neu aus, die von Wertänderungen seit dem letzten Durchlauf betroffen sind — bei verketteten Modellen (Finanzblätter, Berichtskaskaden) berechnet die Bearbeitung einer Eingabe nur deren nachgelagerte Formeln neu, anstatt der gesamten Arbeitsmappe - Volatile Funktionen (
NOW,TODAY,RAND,OFFSET,INDIRECT) werden bei jedem Durchlauf neu berechnet, ebenso wie Formeln, deren Bezüge nicht statisch aufgelöst werden können (Mehrbereichsnamen, externe Arbeitsmappen) — die Engine berechnet eher zu viel neu, als ein veraltetes Ergebnis zu riskieren - Zirkelbezüge werden erkannt, anstatt in Endlosschleifen zu laufen:
Recalculategibt einen Fehlercode zurück, wenn Formeln eine Kreiskette bilden, überspringt die Kreismitglieder und wertet dennoch jede Formel außerhalb des Kreises aus; blattübergreifende Bezüge, benannte Bereiche und CSE-Arrayformeln (Ergebnisse, die sich über den verankerten Bereich verteilen) nehmen vollständig am Abhängigkeitsgraphen teil
Geändert
- Der bestehende On-Demand-Pfad
Calculatebleibt unverändert;Recalculateis eine separate Opt-in-API, und Arbeitsmappen, die sie nie aufrufen, verhalten sich genau wie zuvor
Version 2.126.0
Hinzugefügt
- Sparklines auf der XLSX-Engine: Arbeitsblätter tragen jetzt Sparkline-Gruppen – die zelleninternen Minidiagramme, die Excel aus einem Datenbereich rendert – mit den drei Excel-Typen (Linie, Spalte, Gewinn/Verlust gestapelt). Erstellen Sie eine mit
Worksheet.AddSparklineGroupoder bauen Sie Gruppen manuell über die neueWorksheet.SparklineGroups-Sammlung auf, wobei Sie beliebig viele Sparklines pro Gruppe mit jeweils einem Quellbereich und einer Anzeigezelle hinzufügen - Sparkline-Gruppen legen den vollständigen Optionssatz offen, den Excel bietet: Liniengewicht, Datenpunkt-Marker, Hervorhebungs-Schalter für hohe/niedrige/negative/erste/letzte Punkte, acht ARGB-Farbslots (Datenreihe, negativ, Achse, Marker, erste, letzte, hoch, niedrig), Skalierung der vertikalen Achse pro Gruppe oder pro Sparkline sowie die Behandlung von Lücke/Null/Spanne für leere Quellzellen
- Sparklines überstehen einen vollständigen Speichern→Öffnen-Rundlauf: Beim Speichern wird der
extLst-Erweiterungsblock des Arbeitsblatts ([MS-XLSX] §2.3.6) ausgegeben, sodass Excel 2010 und höher die Sparklines rendern, und beim Öffnen einer solchen Arbeitsmappe – unabhängig davon, ob sie von HotXLS oder Excel geschrieben wurde – wird jede Gruppe, Option und jeder Bereich neu aufgebaut, sodass sie über Bearbeitungszyklen hinweg erhalten bleiben. Beim Kopieren eines Blatts in eine andere Arbeitsmappe werden auch dessen Sparkline-Gruppen geklont
Version 2.125.0
Hinzugefügt
- Sieben DBCS-bytezählende Textfunktionen aus der XLSSuit-Lückenanalyse werden jetzt auf beiden Engines ausgewertet:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHBundREPLACEB. Jede behandelt ihre Eingabe als Byte-Zeichenfolge unter der System-ANSI-Codepage, sodass CJK-Zeichen (Chinesisch/Japanisch/Koreanisch) 2 Byte belegen, während ASCII 1 Byte belegt; Vorgänge, die ein DBCS-Lead-/Trail-Bytepaar aufteilen würden, springen zurück zur nächstgelegenen Zeichengrenze, passend zum Excel-Verhalten
Version 2.124.0
Hinzugefügt
- Fünf Hypothesentest- und Verteilungsfunktionen aus der XLSSuit-Lückenanalyse werden jetzt auf beiden Engines ausgewertet:
Z.TEST(einseitige Recht-Enden-Wahrscheinlichkeit, dass der Stichprobenmittelwert unter der Nullhypothese mindestensxbeträgt),T.TEST(p-Wert des gepaarten Zweistichproben-t-Tests; ungepaarte Typen mit gleicher/ungleicher Varianz sind zurückgestellt),CHISQ.TEST(Anpassungsgüte-p-Wert über die obere-Enden-Chi-Quadrat-CDF),HYPGEOM.DIST(hypergeometrische PMF/CDF mit dem kumulativen Flag) undNEGBINOM.DIST(negative-binomiale PMF/CDF). Die p-Wert-Mathematik verwendet die bestehenden Normal-/Student-t-/Chi-Quadrat-CDF-Hilfsfunktionen der Engine über eigenständige verschachtelte Routinen wieder, sodass sich keine bestehende Calc-Methode ändert
Version 2.123.0
Hinzugefügt
- Vierzehn Formelfunktionen, die ein Vergleich mit XLSSuit als Lücken identifiziert hat, werden jetzt auf beiden Engines ausgewertet:
AVERAGEIF(einkriterieller Durchschnitt, das SUMIF/COUNTIF-Geschwister, das der Engine fehlte),WORKDAY.INTLundNETWORKDAYS.INTL(benutzerdefinierte Wochenendmasken über die Nummern-1-17-Codes oder eine 7-stellige Mo-So-Zeichenfolge),XIRRundXNPV(interner Zinsfuß und Netto-Barwert für Cashflows mit unregelmäßigen Daten, gelöst durch einschließende Bisektion),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(vorzeichenagnostische Rundung),PERCENTRANK.INC/PERCENTRANK.EXC(Perzentil-Rang mit der passenden inklusiven/exklusiven Interpolation),MODE.MULT(übergibt jeden Wert, der für die höchste Häufigkeit gleichauf liegt),ERF.PRECISE(Gaußsche Fehlerfunktion über ihre alternierende Reihe),ACCRINT(aufgelaufene Zinsen) undISPMT(Periodenzinsen für die Tilgung mit konstantem Kapital)
Version 2.122.0
Hinzugefügt
- Threaded Kommentare (Excel 365) werden jetzt auf der XLSX-Engine rund übertragen:
AddThreadedCommentundAddThreadedReplyauf einem Arbeitsblatt bauen einen an einer Zelle verankerten Eltern→Kind-Antwortbaum auf, registrieren jeden Autor automatisch auf einer neuen arbeitsmappenweitenPersons-Liste und geben den dediziertenxl/threadedComments/threadedCommentN.xml-Teil pro Blatt sowie den arbeitsmappenweit gültigenxl/person/person.xmlaus; beim erneuten Öffnen eines solchen Pakets werden der Konversationsbaum und die Teilnehmerliste aus diesen Teilen neu aufgebaut, sodass Antwortketten, Kennungen und Anzeigenamen einen vollständigen Lesen→Schreiben-Zyklus überstehen
Version 2.121.0
Hinzugefügt
- Der Formel-Auswerter berechnet jetzt die dynamischen Array-Funktionen aus Excel 365
XMATCH,SORT,UNIQUEundSEQUENCE, die sich den bereits unterstütztenXLOOKUPundFILTERanschließen; Ergebnisse überlaufen als 2-D-Arrays, sodassSEQUENCE(3;2;1;1)ein 3×2-Raster zurückgibt,SORTZeilen nach einer beliebigen Schlüsselspalte auf- oder absteigend umordnet,UNIQUEdoppelte Zeilen unter Beibehaltung des ersten Vorkommens zusammenfasst undXMATCHdie auf 1 basierende Position eines Suchwerts mit denselben exakten/Platzhalter/nächst-kleineren/nächst-größeren Vergleichsmodi wieXLOOKUPmeldet
Version 2.120.0
Hinzugefügt
- Die neue
PasteFromClipboard-Methode auf den Arbeitsblättern beider Engines liest tabulatorgetrennten Text aus der Windows-Zwischenablage – die Nutzdaten, die Excel dort ablegt, wenn ein Bereich kopiert wird, oder eine einfache Auswahl aus einer beliebigen anderen Anwendung – und schreibt ihn beginnend bei der angegebenen Zeile und Spalte in Zellen, mit derselben Hochstufung von Zahlen-/Datums-/Booleschen-Typen, die der CSV-Lader bereits verwendet; einem führenden=-Text wird zu einer Live-Formel, passend dazu, wie Excel selbst einfügt
Version 2.119.0
Hinzugefügt
- Das Lesen der ECMA-376 Agile Encryption – des Passwortschutzes, den Excel 2010 und höher standardmäßig anwenden:
OpenEncryptedanalysiert jetzt den XML-Verschlüsselungsdeskriptor, leitet die Schlüssel mit SHA-512-Spin-Count-Hashing ab, überprüft das Passwort und entschlüsselt das segmentierte AES-CBC-Paket (AES-128/192/256), sodass Arbeitsmappen, die direkt in Excel passwortgeschützt wurden, ohne installiertes Excel geöffnet werden OpenEncryptedbehandelt alle drei Fälle über einen einzigen Einstiegspunkt: unverschlüsselte.xlsx, Standard-Verschlüsselung (unserSaveAsEncrypted-Rundlauf) und Agile Encryption; bei einem falschen Passwort wird in jedem Schema derselbe klare Fehler ausgelöst
Behoben
- Das Speichern einer
.xlsx-Arbeitsmappe, deren Arbeitsblatt-XML ungefähr 116 KB überschritt – etwa 3.000 Zeilen typischer Zeichenfolgendaten – stürzte mit einem Stapelüberlauf ab; die CRC-32-Prüfsumme des ZIP-Writers verarbeitet Daten jetzt in 64 KB-Scheiben, was das Komprimierungs-Backend von seinem Codepfad für große Eingaben fernhält, der einen übergroßen Puffer auf dem Stapel reserviert. Das Prüfsummenergebnis bleibt unverändert
Geändert
- Die Deduplizierung freigegebener Zeichenfolgen läuft jetzt über eine Hash-Tabelle statt die Zeichenfolgenliste abzusuchen, und der
sharedStrings.xml-Teil wird über den vorgewachsenen String-Builder statt über wiederholte Verkettung zusammengebaut – zusammen mit dem Index mit konstanter Zeit bringt dies das Speichern von 120.000 Zeichenfolgezellen von dutzenden Sekunden auf etwa eine Drittelsekunde
Version 2.117.0
Geändert
- XLSX Zelle access ist now constant-time: Arbeitsblatt Zelle Auflistung carries hash Index over (Zeile, Spalte), replacing previous linear scan — so populating, reading back, oder loading large Blatt scales linearly mit Zelle count instead von quadratically; filling 100,000 Zellen now takes well under second where it previously took minutes
- speedup applies across engine:
Cells[r, c],HasCell, Arbeitsmappe loading, saving, cross-Arbeitsmappe copies, auto-fit, und jeder helper dass touches Zellen durch position all benefit; Zeile und Spalte insertion oder deletion rebuilds Index in single pass
Version 2.116.0
Hinzugefügt
- PDF export im klassisch XLS engine: new
SaveAsPDFMethoden on Arbeitsblatt und Arbeitsmappe render verwendet Bereich (oder caller-supplied Bereich überTXLSPDFExport) as paginated grid — Zelle display Text über number Format, gridlines, Spalte widths derived von Excel widths und scaled zu fit Seite, und automatic multi-Seite pagination - Output ist self-contained PDF 1.4 Datei mit no external dependencies, mit built-in Helvetica Schriftart mit WinAnsi Text encoding; portrait oder landscape A4 orientation, Seite margin, und Schriftart size sind configurable on exporter
- dieser ist data-presentation export alongside HTML und RTF: it reproduces tabular content und layout für reports und document handoff rather than full per-Zelle styling
Version 2.115.0
Hinzugefügt
- ein-call chart creation von data Bereich im XLSX engine: new
AddChartFromRangebuilds complete chart und derives its series automatically von rectangular data block — equivalent von Excel's "insert chart von selection" — mit series-in-Spalten oder transposed series-in-Zeilen layout - Named shortcuts
AddColumnChart,AddBarChart,AddLineChart,AddPieChart, undAddAreaChartpick chart type durch Name over same ein-call flow, reading series names von header Zeile und category labels von first Spalte - Series references sind qualified mit source Blatt's quoted Name, so generated chart keeps working wenn placed on any Blatt und survives save und reload
Version 2.114.0
Hinzugefügt
- RTF import im klassisch XLS engine, inverse der vorhanden
SaveAsRTFexport: newOpenRTFMethoden on Arbeitsblatt und Arbeitsmappe read RTF document's table in Arbeitsblatt Zellen —\celladvances Spalte,\rowadvances Zeile — starting at A1 - Recovers tabular data von Dateien produced durch
SaveAsRTF, Word, oder WordPad: numeric Text ist stored as Nummern so Formeln keep working, hex (\'hh) und Unicode (\uN) escapes decode correctly, und header groups (Schriftart table, Farbe table, stylesheet, info) sind skipped - Documents mit no table fall back zu paragraph mode, importing each
\paras next Zeile in Spalte
Version 2.113.0
Hinzugefügt
- Reading von encrypted
.xlsxArbeitsmappen:OpenEncryptednow decrypts ECMA-376 Standard Encryption (AES-128) packages, completing round trip mit vorhandenSaveAsEncrypted— it reads compound-Datei container, derives key von Kennwort, verifies it, und loads recovered Arbeitsmappe - wrong Kennwort raises clear "Kennwort ist incorrect" error, und
OpenEncryptedon plain unencrypted.xlsxcontinues zu load it directly, so callers kann route jeder Datei über ein Eintrag point
Geändert
- unsupported-encryption message now names ECMA-376 Agile Encryption specifically as remaining unsupported scheme, since Standard Encryption reading und writing sind both verfügbar
Version 2.112.0
Hinzugefügt
- New
TaggedTextEigenschaft on XLSX Zellen converts between rich Text und lightweight markup:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>, und<size=N>, mit</>/&escapes — so multi-Format Zelle content kann be produced von template String instead von assembling run Objekte durch hand - Writing markup builds run list und keeps
Valueas concatenated plain Text; markup ohne tags stores plain String mit no rich payload; reading serializes each run's attributes as complete tag legt fest; unknown tags pass über as literal Text
Behoben
- rich-Text run consisting entirely von whitespace (für example single styled space between words) now survives save und reload; previously space was dropped wenn Datei was reopened
Version 2.111.0
Hinzugefügt
- New
OnProgressEreignis on XLSX Arbeitsmappe reports load und save progress: it fires once per Arbeitsblatt as it ist parsed duringOpenoder emitted duringSaveAs, carrying phase (reading oder writing), current 1-basiert Blatt number, und total — so applications kann drive progress bar over long multi-Blatt operations at negligible callback cost
Version 2.110.0
Hinzugefügt
- New
TXLSRowCursordataset-Stil Zeile cursor für.xlsx/.xlsmDateien:Open,SelectSheet, thenFindFirst/FindNextwalk Arbeitsblatt ein Zeile at time mit nur current Zeile's Zellen in memory — pull-driven alternative zuTXLSDirectReader's callbacks für sequentially processing multi-million-Zeile Blätter - Each Zeile exposes its 1-basiert Arbeitsblatt Zeile number, populated Zellen in document order (typisiert Wert, Formel Text, Stil Index), und
ValueByCollookup dass gibt zurückNullfür Spalten not populated on dass Zeile; Zeilen mit no populated Zellen sind skipped - Blatt names und count sind verfügbar after
Open(Datei und stream overloads), mit shared strings und date-Format detection handled same way as streaming reader
Version 2.109.0
Hinzugefügt
- New
TXLSXCellFormat"Format brush" für XLSX engine: describe Schriftart, fill, Rahmen, alignment, number Format, und protection once, then stamp any number von targets mitApply(single Zelle),ApplyRange,ApplyRows,ApplyCols, oderApplySheet - nur aspects actually touched sind applied — brush dass legt fest just
Font.Boldleaves targets' fills, Rahmen, und number Formate untouched — so brushes compose mit vorhanden formatting like Excel's Format painter - Each apply resolves touched aspects in Arbeitsmappe Stil pools once und then writes nur pool indices per Zelle, so formatting large Bereiche costs ein pool lookup per aspect rather than per Zelle;
ApplyRangematerializes missing Zellen während Zeile/Spalte/Blatt forms stamp vorhanden Zellen nur
Version 2.108.0
Hinzugefügt
- Localizable Boolean display Text: new
XLSBooleanTrueText/XLSBooleanFalseTextvariables control how Boolean Zelle Werte render wherever display Text ist produced —FormattedText, HTML export, und auto-fit measurement — so localized applications kann show für example WAHR/FALSCH oder VRAI/FAUX
Geändert
- Boolean Zellen now display as
TRUE/FALSEdurch default, matching Excel's grid, instead der runtime'sTrue/Falsecapitalization
Version 2.107.0
Hinzugefügt
- New
OnPasswordEreignis on klassisch XLS Arbeitsmappe: wennOpenmeets encrypted Arbeitsmappe und supplied Kennwort ist missing oder wrong, Ereignis asks application für Kennwort und retries open (up zu three attempts) — so interactive tools kann prompt user instead von pre-loading passwords oder inspecting error codes - Ereignis receives current Kennwort durch Referenz und
Retryflag; leavingRetryatFalsegives up und gibt zurück original Kennwort error
Version 2.106.0
Hinzugefügt
- New
TXLSFileMonitorKlasse watches Arbeitsmappe Datei on disk und firesOnFileChangedwenn another process — typically Excel — saves over it, so applications kann reload und refresh their view automatically - Polling-basiert (last-write time plus size,
IntervalMsconfigurable, 1 s default), so it works on local disks und network shares alike ohne message loop;SynchronizeEventchooses between main-thread delivery für UI handlers (default) und direct watcher-thread delivery für console oder service code - Datei dass briefly disappears during save cycle does not fire false Ereignis; change ist reported once new content ist in place
Version 2.105.0
Hinzugefügt
- Bounded auto-fit im klassisch XLS engine, matching limits XLSX engine already offers: new
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth), undRowsAutoFit(AMinHeight, AMaxHeight)overloads clamp jeder fitted Spalte Breite (Excel Breite units) oder Zeile Höhe (points) zu given Bereich — 0 leaves side unbounded, und all-empty Spalte oder Zeile still receives requested minimum
Version 2.104.0
Hinzugefügt
- New Nur Lesen
FormattedTextEigenschaft Gibt zurück Zelle's display Text — stored Wert rendered über its number Format, way Excel shows it im grid — covering thousands separators, decimals, percentages, date und time masks, multi-section positive/negative/zero masks, und Boolean Formate - verfügbar in both engines: on
IXLSRangeim klassisch XLS engine (multi-Zelle Bereiche render their anchor Zelle) und onTXLSXCellim XLSX engine (rich-Text Zellen zurückgeben their concatenated run Text)
Version 2.103.0
Hinzugefügt
- New
DetectExcelContentFormatFunktion (Datei Name und stream overloads) identifies Arbeitsmappe's container von its leading bytes rather than Datei extension — reporting BIFF/OLE compound Datei, OOXML.xlsxpackage, OpenDocument.odspackage, oder plain delimited Text — so applications kann route renamed oder extension-less Dateien zu right loader
Geändert
TXLSWorkbook.Opennow sniffs content signature und rejects ZIP-basiert packages (.xlsxoder.odsrenamed zu.xls) mit clear message naming right loader, instead von failing mit opaque error codeTXLSXWorkbook.Opennow recognizes OLE compound-Datei content (legacy.xlsrenamed zu.xlsx, oder encrypted package) und reports what Datei actually ist, instead von surfacing ZIP parser error
Version 2.102.0
Hinzugefügt
- Cross-Arbeitsmappe Arbeitsblatt copy im klassisch XLS (BIFF8) engine now brings Arbeitsmappe-level defined names Formel uses over zu destination — same thing Excel does wenn Blatt moves between Arbeitsmappen: Name destination already has ist bound as-ist (no duplicate ist created), missing Name ist registered mit its original definition und visibility so Formel recompiles against it, und Name whose definition cannot resolve im destination (für example, it points at Blatt dass does not exist there) leaves Formel on its computed Wert as before
Version 2.101.0
Hinzugefügt
- Cross-Arbeitsmappe Arbeitsblatt copy im klassisch XLS (BIFF8) engine now re-points Formeln at source Arbeitsmappe as external link wenn destination has no Blatt der referenced Name und source has been saved zu Datei: copied Zelle stays live Formel (its references switch zu [SourceBook]Blatt form), source's computed Wert ist kept as cached result so reads keep working until link ist refreshed, und external Arbeitsmappe Referenz round-trips über save und reload; Formeln carrying defined-Name references, und copies von unsaved source Arbeitsmappen, keep computed Wert as before
Version 2.100.0
Hinzugefügt
- Array Formeln now survive Arbeitsblatt copies im klassisch XLS (BIFF8) engine: each array Bereich ist rebuilt as whole im copy — within same Arbeitsmappe und across Arbeitsmappen alike — mit root Formel recompiled against destination's Blatt names; array destination cannot recompile keeps its computed Werte instead
Behoben
- Copying Bereich dass enthält array-Formel Zellen between klassisch XLS Arbeitsblätter no longer risks crash on spill Zellen (which carry no Formel tree von their own); such Zellen now transfer their computed Wert
Version 2.99.0
Hinzugefügt
- Chart Blätter kann now be copied between klassisch XLS (BIFF8) Arbeitsmappen: chart record stream ist cloned in destination, series category / Wert / Name references sind recompiled against destination's Blatt names (series whose Blatt has no same-Name counterpart falls back zu empty Referenz so Datei still opens), chart Schriftart references migrate durch Wert in destination Schriftart table, und Seite setup, tab Farbe, zoom, und visibility der chart Blatt come along; dieser removes last documented limitation der cross-Arbeitsmappe Arbeitsblatt copy
Version 2.98.0
Hinzugefügt
- Cross-Arbeitsmappe Arbeitsblatt copy im klassisch XLS (BIFF8) engine now preserves rich-Text formatting inside Zellen: each formatting run's Schriftart ist migrated durch Wert in destination Arbeitsmappe's Schriftart table und run ist rewritten zu point at it, so mixed-Schriftart strings keep their appearance instead von falling back zu plain Text; phonetic (Far-East) auxiliary data travels mit String as well
Behoben
- Schriftarten referenced nur durch rich-Text runs (und not durch any Zelle Format) sind no longer dropped von Schriftart table wenn saving klassisch XLS Arbeitsmappe, und runs now follow same Schriftart reordering as Zelle Formate on save, so rich-Text strings keep correct Schriftarten after save/reload cycle
Version 2.97.0
Hinzugefügt
- Cross-Arbeitsmappe Arbeitsblatt copy im klassisch XLS (BIFF8) engine now also clones embedded pictures: image bytes migrate in destination Arbeitsmappe's picture store (identical images sind shared rather than duplicated), und each picture frame keeps its Zelle anchor, size, visibility, und transparent Farbe; new CrossWorkbookCopyXls sample project demonstrates klassisch-engine copy end zu end
Geändert
- klassisch XLS cross-Arbeitsmappe copy limitations sind now documented: chart Blätter sind not copied (AddCopy gibt zurück nil für them), und Formel whose Blatt Referenz has no same-Name Blatt im destination keeps source's computed Wert instead von becoming external Referenz
Version 2.96.0
Hinzugefügt
- Cross-Arbeitsmappe Arbeitsblatt copy im klassisch XLS (BIFF8) engine now also clones conditional Formate (Zelle-ist und expression rules, data bars, Farbe scales, icon legt fest, und their differential styles), data validations (list, numeric, date, Text-length, und custom rules mit prompt und error boxes), AutoFilter definition mit its per-Spalte criteria (dropdown buttons sind rebuilt im copy), und Tabellen (ids und names sind re-issued so they stay unique im destination Arbeitsmappe); rule Formeln sind recompiled against destination's Blatt names, matching behavior von Zelle Formeln
Version 2.95.0
Hinzugefügt
- klassisch XLS (BIFF8) Arbeitsblätter kann now be copied von ein Arbeitsmappe in another: TXLSWorksheets.AddCopy fügt hinzu new Blatt zu destination Arbeitsmappe und copies source Blatt's Zelle Werte, Formeln (re-encoded as Text so destination recompiles them against its own Blatt names, keeping same-Name 3D references live), merged Zellen, Kommentare, Hyperlinks, Zeile heights, Spalte widths, outline levels, frozen panes, Blatt protection, Seite setup, manual Seite breaks, tab Farbe, und view settings; Zelle, Zeile, und Spalte Formate sind migrated durch Wert in destination Arbeitsmappe's Format table, so styled source produces independently styled copy
- Cross-Arbeitsmappe Format migration im klassisch XLS engine now carries full-precision RGB und Design Farben alongside each Format Eintrag, so fills, Schriftarten, und Rahmen keep their exact Farben instead von falling back zu palette approximations; dieser also applies zu Bereich-level paste between Arbeitsmappen
Version 2.94.0
Hinzugefügt
- Cross-Arbeitsmappe Arbeitsblatt copy now clones conditional Formate (mit their differential styles und dataBar / colorScale / iconSet visual payloads), Tabellen, data validations, und charts (mit jeder series); each sub-Objekt deep-copies its own state in destination Arbeitsblatt
- Cross-Arbeitsmappe Formel references sind rewritten: Referenz whose Blatt Name exists im destination resolves as-ist, otherwise it becomes external Referenz back zu source Arbeitsmappe (which ist registered as external link) oder #REF! wenn source has no Datei identity; rewrite applies zu Zelle Formeln, conditional-Format rules, data-validation Formeln, und chart series Bereiche alike
Version 2.93.0
Hinzugefügt
- Arbeitsblatt kann now be copied von ein Arbeitsmappe in another: TXLSXSheets.AddCopy fügt hinzu new Blatt zu destination Arbeitsmappe und copies source Blatt's Zellen, Formeln, merged Bereiche, Spalte/Zeile sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, Seite setup, AutoFilter Bereich, und tab colour onto it; six per-Zelle Stil indices sind remapped in destination Arbeitsmappe's own Schriftart/Fill/Rahmen/NumberFormat/Alignment/Protection pools via Wert-equality lookup, so styled source produces independently-styled copy rather than indices pointing at wrong pool
- six per-attribute Stil pools (Schriftarten, Fills, Rahmen, NumberFormats, Alignments, Protections) each expose 1-basiert LookupOrAdd dass deduplicates durch Wert; new CrossWorkbookCopy sample project demonstrates cross-Arbeitsmappe copy mit Stil Beibehaltung
Version 2.92.0
Hinzugefügt
- XLSX Arbeitsmappen now Unterstützung PivotTables: TXLSXWorksheet.AddPivotTable scans flat source Bereich, auto-builds pivot cache, und Gibt zurück typisiert PivotTable für Zeile / Spalte / Seite / data-axis wiring, mirroring long-standing BIFF8 (XLS) engine API so same code targets either Format; PivotSetDataFieldFormat assigns number Format zu each aggregated Wert field
- Excel-created PivotTables Rundlauf ohne loss über Open then Save: XLSX engine preserves each pivot cache definition, cache records, und PivotTable part verbatim und replays original bytes on save, so re-saving Arbeitsmappe never drops oder alters its pivots even wenn they use Funktionen typisiert Modell does not expose
Version 2.91.0
Hinzugefügt
- Ein Arbeitsblatt-AutoFilter kann nun auf die Daten angewendet werden, sodass die gespeicherte Arbeitsmappe mit bereits ausgeblendeten, nicht übereinstimmenden Zeilen geöffnet wird. Dies entspricht dem Verhalten von Excel, wenn ein Wert aus der Filter-Dropdown-Liste ausgewählt wird
- Eingebettete Bilder geben ihre Geometrie nun in echten Einheiten (Zentimeter, Zoll, Punkte) neben den EMU-Werten an und können über einen Skalierungsfaktor mit optionaler Beibehaltung des Seitenverhältnisses in der Größe geändert werden
- Seitenränder können nun als metrische Erleichterung gegenüber den zollbasierten Rändern direkt in Zentimetern festgelegt werden
- Geschützte XLSX-Arbeitsblätter bieten nun über eine neue AllowOption-Eigenschaft fünfzehn feingranulare Berechtigungsschalter (Zellen formatieren, Zeilen und Spalten einfügen/löschen, Sortieren, AutoFilter, gesperrte/entsperrte Zellen auswählen und mehr), passend zur Checkbox-Liste in Excel unter Überprüfen > Blatt schützen; die aktionsspezifischen Einstellungen bleiben beim Speichern der Datei erhalten
- XLSX-Arbeitsblätter können nun dupliziert werden (TXLSXSheets.Duplicate): Ein neues Blatt wird hinzugefügt, und die Zellen der Quelle, zusammengeführte Bereiche, Spalten-/Zeilengrößen, fixierte Fenster, Ansichtsstatus, Schutz, Seiteneinrichtung und Registerfarbe werden darauf kopiert, was dem Verhalten in Excel unter Rechtsklick > Verschieben oder kopieren > Kopie erstellen entspricht
- Zweiundzwanzig neue Beispielprojekte decken die von der Bibliothek unterstützten Funktionen ab: Arbeitsmappenverschlüsselung, Zellkommentare, Hyperlinks, definierte Namen, AutoFilter-Auswertung, eingebettete Bilder, eine Rechnungsvorlage, erweiterte bedingte XLSX-Formatierung, zusammengeführte Zellen, Zeilen-/Spaltengliederung, fixierte Fenster, mehrblättriges Layout, Matrixformeln, Bereichskopie/-verschiebung, Suchen/Ersetzen, Datumssysteme, Rich-Text, erweiterte CSV, HTML-Exportoptionen, benutzerdefinierte Zahlenformate, ausgeblendete Zeilen/Spalten und Blattschutz
Version 2.90.29
Geändert
- Der direkte Streaming-Leser zählt nun jede ausgefüllte Zelle, auch wenn kein zellenweiser Handler angehängt ist, sodass ein einfacher ReadFile-Aufruf verwendet werden kann, um die Größe eines Arbeitsblatts schnell zu bestimmen; die zurückgegebene Anzahl und die CellCount-Eigenschaft melden die Anzahl der gescannten ausgefüllten Zellen
Version 2.90.28
Hinzugefügt
- Formeln können nun Schritt für Schritt ausgewertet werden, was dem Befehl Evaluate Formula in Excel entspricht: Ein neuer Tracer reduziert einen Ausdruck um jeweils einen Teilschritt, beginnend mit dem innersten, und meldet jede Reduktion mit ihrem Quell-Teilausdruck, demselben Teilausdruck, nachdem seine Operanden durch ihre Werte ersetzt wurden, und dem resultierenden Wert, sodass Anwendungen zeigen können, wie ein Ergebnis aufgebaut wird; er beachtet die Operatorrangfolge, hält Bereichsbezüge für Funktionen wie SUM intakt und verwendet die Berechnungs-Engine des Arbeitsblatts wieder, sodass jeder Schritt mit einer vollständigen Neuberechnung übereinstimmt
Version 2.90.27
Hinzugefügt
- XLSX-Arbeitsmappen können nun Zelle für Zelle durch einen neuen direkten Streaming-Schreiber erstellt werden, der jedes Arbeitsblatt direkt in das Paket ausgibt, sobald Zeilen eintreffen, ohne einen vollständigen Zellenbaum im Speicher aufzubauen, sodass sehr große Dateien mit einem nahezu konstanten Speicherbedarf generiert werden können; der Schreiber verarbeitet Inline-Zeichenfolgen, Zahlen, boolesche Werte, Daten und Formeln über mehrere Blätter hinweg und funktioniert reibungslos mit dem direkten Streaming-Leser
Version 2.90.26
Hinzugefügt
- XLSX-Arbeitsmappen können nun Zelle für Zelle durch einen neuen direkten Streaming-Leser gescannt werden, der ereignisgesteuert pro Zelle und pro Blatt arbeitet, ohne einen vollständigen Zellenbaum im Speicher aufzubauen, wodurch der Speicherbedarf für sehr große Dateien nahezu konstant bleibt; jede gemeldete Zelle trägt ihren Wert, Typ (Zahl, Zeichenfolge, boolescher Wert, Datum oder Fehler), Formeltext und Formatindex, mit optionaler Datumserkennung und Unterstützung für vorzeitigen Abbruch
Version 2.90.25
Hinzugefügt
- Klassische XLS-Arbeitsblätter können nun Hyperlinks aus A1-Zellbezügen hinzufügen, wobei die URL-Normalisierung, Unteradressen von Arbeitsmappenzielen, Anzeigetexte und QuickInfos erhalten bleiben
Version 2.90.24
Hinzugefügt
- Klassische XLS-Seitenumbrüche können nun ab 1-basierten Zeilen- oder Spaltenpositionen und A1-Zellbezügen über die Seitenumbruch-Auflistung und Arbeitsblatt-Hilfsüberladungen hinzugefügt werden
Version 2.90.23
Hinzugefügt
- Klassische XLS-Arbeitsblätter und Form-Auflistungen können nun Rechteck-, Oval-, Linien- und typisierte AutoForm-Zeichnungsobjekte aus A1-Bereichszeichenfolgen erstellen
Version 2.90.22
Hinzugefügt
- Klassische XLS-Form-Auflistungen können nun Textfelder aus A1-Bereichszeichenfolgen über eine AddTextBox-Überladung erstellen
Version 2.90.21
Hinzugefügt
- Klassische XLS-Textfelder können nun aus A1-Bereichszeichenfolgen über eine neue SetArea-Überladung neu positioniert werden
Version 2.90.20
Hinzugefügt
- Klassische XLS-Arbeitsblatt-Textfelder können nun aus A1-Bereichszeichenfolgen über eine AddTextBox-Überladung erstellt werden
Version 2.90.19
Hinzugefügt
- Klassische XLS-Arbeitsblätter können nun Zeichnungstextfelder direkt aus Zeilen- und Spaltenankern über eine neue AddTextBox-Methode erstellen
Version 2.90.18
Hinzugefügt
- Klassische XLS-Arbeitsblätter können nun Zellkommentare direkt aus Zeilen- und Spaltenkoordinaten über neue AddComment-Überladungen erstellen