Docs HotXLS

Classe TXLSXStructuralEditRegistry

TXLSXWorksheet.StructuralEditRegistry coordonne les mises à jour sensibles aux références après l'insertion et la suppression de lignes ou de colonnes

Les participants intégrés mettent toujours à jour les formules HotXLS, les noms, les validations, les mises en forme conditionnelles, les commentaires, les hyperliens, les dessins, les tables, les liaisons de requêtes, les scénarios, les tables de données, les métadonnées d'impression, les plages protégées, les sparklines, les tableaux croisés typés et les références d'extensions préservées reconnaissables

Les applications peuvent enregistrer des participants ordonnés pour leurs propres métadonnées de feuille sans remplacer la transaction intégrée

Déclarations

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;

Champs d'édition

RowFromPremière ligne basée sur un affectée, ou zéro lorsque les lignes sont inchangées
RowDeltaNombre de lignes insérées positif ou nombre de lignes supprimées négatif
ColFromPremière colonne basée sur un affectée, ou zéro lorsque les colonnes sont inchangées
ColDeltaNombre de colonnes insérées positif ou nombre de colonnes supprimées négatif

Règles des participants

Exemple

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);

Voir aussi