TXLSXStructuralEditRegistry 类
TXLSXWorksheet.StructuralEditRegistry 在行或列插入和删除之后协调对引用敏感的更新
内置参与者始终更新 HotXLS 公式、名称、有效性验证、条件格式、批注、超链接、图形、表格、查询绑定、方案、数据表、打印元数据、受保护区域、迷你图、类型化数据透视表以及可识别的保留扩展引用
应用程序可以为自己的工作表元数据注册有序参与者,而无需替换内置事务
声明
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;
编辑字段
| RowFrom | 受影响的第一行(基于 1),当行未更改时为零 |
| RowDelta | 正数为插入的行数,负数为删除的行数 |
| ColFrom | 受影响的第一列(基于 1),当列未更改时为零 |
| ColDelta | 正数为插入的列数,负数为删除的列数 |
参与者规则
- 参与者按注册顺序在全部内置引用更新之后运行
- 多次注册同一个接口没有效果
Count只报告应用程序参与者,因为内置更新始终处于活动状态- 参与者不得在回调内部更改注册表或启动另一个结构编辑
示例
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);