Klasse TXLSXStructuralEditRegistry
TXLSXWorksheet.StructuralEditRegistry koordiniert referenzsensitive Aktualisierungen nach dem Einfügen und Löschen von Zeilen oder Spalten
Integrierte Teilnehmer aktualisieren immer HotXLS-Formeln, Namen, Validierungen, bedingte Formate, Kommentare, Hyperlinks, Zeichnungen, Tabellen, Abfragebindungen, Szenarien, Datentabellen, Druckmetadaten, geschützte Bereiche, Sparklines, typisierte Pivots und erkennbare erhaltene Erweiterungsverweise
Anwendungen können geordnete Teilnehmer für ihre eigenen Blattmetadaten registrieren, ohne die integrierte Transaktion zu ersetzen
Deklarationen
type
TXLSXStructuralEdit = record
RowFrom: Integer;
RowDelta: Integer;
ColFrom: Integer;
ColDelta: Integer;
end;
IXLSXStructuralEditParticipant = interface
procedure ApplyStructuralEdit(Worksheet: TXLSXWorksheet;
const Edit: TXLSXStructuralEdit);
end;
TXLSXStructuralEditRegistry = class
procedure RegisterParticipant(
const Participant: IXLSXStructuralEditParticipant);
procedure UnregisterParticipant(
const Participant: IXLSXStructuralEditParticipant);
procedure Clear;
property Count: Integer;
end;
Bearbeitungsfelder
| RowFrom | Erste betroffene 1-basierte Zeile oder null, wenn sich Zeilen nicht ändern |
| RowDelta | Positive Anzahl eingefügter Zeilen oder negative Anzahl gelöschter Zeilen |
| ColFrom | Erste betroffene 1-basierte Spalte oder null, wenn sich Spalten nicht ändern |
| ColDelta | Positive Anzahl eingefügter Spalten oder negative Anzahl gelöschter Spalten |
Teilnehmerregeln
- Teilnehmer werden in Registrierungsreihenfolge nach allen integrierten Referenzaktualisierungen ausgeführt
- Das mehrfache Registrieren derselben Schnittstelle hat keine Auswirkung
Countmeldet nur Anwendungsteilnehmer, da integrierte Aktualisierungen immer aktiv sind- Teilnehmer dürfen das Registry nicht ändern oder aus dem Callback heraus eine weitere strukturelle Bearbeitung starten
Beispiel
type
TMetadataUpdater = class(TInterfacedObject,
IXLSXStructuralEditParticipant)
public
procedure ApplyStructuralEdit(Worksheet: TXLSXWorksheet;
const Edit: TXLSXStructuralEdit);
end;
Updater := TMetadataUpdater.Create;
Sheet.StructuralEditRegistry.RegisterParticipant(Updater);
Sheet.InsertRows(4, 2);