وثائق HotXLS

فئتا TXLSTable / TXLSTables

الوحدة: lxHandle

جداول BIFF8 (.xls) (ListObjects في Excel). يرفق الجدول منطقة مرجعية منظمة مسماة بنمط مضمن وتصفية تلقائية مضمنة بنطاق مستطيل توجد المجموعة في TXLSWorksheet.Tables؛ استخدم AddTable كنقطة دخول أكثر شيوعا. يعكس الشكل TXLSXTable / TXLSXTables على جانب XLSX، بحيث يمكن أن تكون التعليمات البرمجية التي تضيف جداول إلى مصنف مستقلة عن التنسيق. متاح منذ الإصدار v2.33.0

الإعلان

type
  TXLSTable = class
    constructor Create;
    procedure Assign(Source: TXLSTable);
    property Id: Integer;                  // assigned by SaveAs (1..N per sheet)
    property Name: WideString;
    property DisplayName: WideString;
    property Range: WideString;             // e.g. "A1:F9"
    property Columns: TStringList;          // header text per column
    property StyleName: WideString;         // default 'TableStyleMedium2'
    property ShowFirstColumn: Boolean;      // default False
    property ShowLastColumn: Boolean;       // default False
    property ShowRowStripes: Boolean;       // default True
    property ShowColumnStripes: Boolean;    // default False
    property TotalsRowShown: Boolean;       // default False
  end;

  TXLSTables = class
    function Add: TXLSTable; overload;
    function Add(const AName, ARange: WideString;
      AColumns: TStrings): Integer; overload;
    procedure Delete(Index: Integer);
    procedure Clear;
    property Count: Integer;
    property Items[Index: Integer]: TXLSTable; default;
  end;

اختصار ورقة العمل

تكشف TXLSWorksheet عن AddTable(AName, ARange, AColumns) والتي تعيد التوجيه إلى Tables.Add وترجع كائن الجدول الجديد بحيث يمكنك تحسين StyleName أو علامات الصفوف المخططة الخاصة به قبل الحفظ

سلوك وقت الحفظ

عند SaveAs(xlExcel97) في BIFF8، تصدر الورقة رأس ميزة جدول FEATHEADR11 ($0871) واحدا، ثم يصدر كل جدول حمولة TableFeatureType من نوع FEAT11 ($0872) بالإضافة إلى سجل نمط LIST12 ($0877) قبل نهاية ملف ورقة العمل مباشرة، بعد حماية الورقة. منذ الإصدار v2.87.4 يستخدم سجل نمط LIST12 تخطيط List12TableStyleClientInfo الخاص بـ MS-XLS، بما في ذلك علامات الصفوف / الأعمدة المخططة واسم النمط كـ XLUnicodeString لم يعد HotXLS يصدر سجل FEATHEADR ($0867) القديم لبيانات الجدول الوصفية. المصنفات التي لا تحتوي على جداول يتم حفظها تماما كما كانت من قبل ولا تحمل أي عبء إضافي لتدفق سجلات الجدول. لا تتأثر عمليات حفظ BIFF5 لأن الجداول هي مفهوم خاص بـ BIFF8 وما بعده

بدءا من الإصدار v2.33.2، يمنع كاتب BIFF8 أيضا سجلات AUTOFILTERINFO / AUTOFILTER المستقلة على مستوى الورقة عندما يغطي جدول على نفس الورقة نطاق التصفية التلقائية بالكامل، لأن Excel يضمن قائمة منسدلة للتصفية التلقائية داخل كائن الجدول نفسه. بدءا من الإصدار v2.87.4 تحدد بيانات Feature11 الوصفية الخاصة بالجدول أيضا علامات التصفية التلقائية على مستوى الجدول ومستوى الحقل وتصدر كتل Feat11FdaAutoFilter الفارغة لكل عمود والتي يتوقعها Excel لقوائم تصفية الجدول المنسدلة

مثال

var
  cols: TStringList;
begin
  Sheet.Cells.Item[1, 1].Value := 'Region';
  Sheet.Cells.Item[1, 2].Value := 'Product';
  Sheet.Cells.Item[1, 3].Value := 'Quarter';
  Sheet.Cells.Item[1, 4].Value := 'Revenue';
  // ... nine data rows below ...

  cols := TStringList.Create;
  try
    cols.Add('Region');
    cols.Add('Product');
    cols.Add('Quarter');
    cols.Add('Revenue');
    with Sheet.AddTable('SalesTable', 'A1:D10', cols) do
    begin
      StyleName       := 'TableStyleMedium2';
      ShowRowStripes  := True;
    end;
  finally
    cols.Free;
  end;

  Workbook.SaveAs('SalesTable.xls', xlExcel97);

انظر أيضا

طريقة TXLSWorksheet.AddTable
خاصية TXLSWorksheet.Tables
TXLSXTable / TXLSXTables (جانب XLSX)