Type TSDocxTables = Class(TSVbaBase) Uses TSDocxEnumerations; public Function Init(docx); Function Operator[](index); private docx_; public // Methods Function Add(Range, NumRows, NumColumns, DefaultTableBehavior, AutoFitBehavior); Function Item(Index); // Properties property Count read ReadCount; property NestingLevel read ReadNestingLevel; Function ReadNestingLevel(); Function ReadCount(); End; // ============== 实现 ================= // Function TSDocxTables.Init(docx); Begin docx_ := docx; End; Function Operator TSDocxTables.[](index); Begin table := docx_.GetTable(index - 1); table_obj := new TSDocxTable(self.Application, self.Creator, self); table_obj.Init(docx_, table); return table_obj; End; // Methods Function TSDocxTables.Add(Range, NumRows, NumColumns, DefaultTableBehavior, AutoFitBehavior); Begin table := Range.AddTable(NumRows, NumColumns); table_obj := new TSDocxTable(self.Application, self.Creator, self); table_obj.Init(docx_, table); if ifnil(DefaultTableBehavior) then DefaultTableBehavior := TSDocxEnumerations.wdWord8TableBehavior(); if DefaultTableBehavior = TSDocxEnumerations.wdWord8TableBehavior() then begin root := table.Root(); tplpr := root.FirstChildElement("w:tblPr"); style := tplpr.FirstChildElement("w:tblStyle"); if style then tplpr.DeleteChild(style); end if ifnil(AutoFitBehavior) then AutoFitBehavior := TSDocxEnumerations.wdAutoFitContent(); table_obj.AutoFitBehavior(AutoFitBehavior); return table_obj; End; Function TSDocxTables.Item(Index); Begin return self[Index]; End; // Properties Function TSDocxTables.ReadCount(); Begin return docx_.TablesCount(); End;