توثيق HotXLS

أسلوب WriteCells والكتابة الكتلية المكتوبة الأنواع

يملأ نطاق ورقة عمل XLS كلاسيكية باستدعاء كود التطبيق لكل قيمة خلية

البنية

type
  TXLSCellWriteEvent = procedure(
    Sender: TObject;
    SheetIndex, Row, Col: Integer;
    var Value: Variant;
    var Skip: Boolean;
    var Cancel: Boolean) of object;

function WriteCells(ARange: WideString; Callback: TXLSCellWriteEvent): Integer; overload;
function WriteCells(ARow1, ACol1, ARow2, ACol2: Integer; Callback: TXLSCellWriteEvent): Integer; overload;

ملاحظات

يقبل الحِمل الزائد النصي نطاقًا بأسلوب A1 مثل A1:C100. يستخدم الحِمل الزائد الرقمي فهارس صفوف وأعمدة قائمة على 1. وتُطبَّع النطاقات عندما يكون صف البداية أو العمود أكبر من صف النهاية أو العمود
تُطلب الخلايا بترتيب الصفوف أولًا. اضبط Value في معاودة الاتصال لكتابة الخلية الحالية. اضبط Skip على True لترك الخلية الحالية دون تغيير. واضبط Cancel على True للتوقف بعد معاودة الاتصال الحالية. القيمة المعادة هي عدد الخلايا المكتوبة
يكتب هذا الأسلوب في نموذج ورقة العمل المحمَّل. إنه أداة مساعدة مدمجة للكتابة قائمة على معاودة الاتصال، وليس وضع حفظ بتدفق الملفات

مثال

procedure TForm1.WriteCell(Sender: TObject; SheetIndex, Row, Col: Integer;
  var Value: Variant; var Skip: Boolean; var Cancel: Boolean);
begin
  if Col = 3 then
  begin
    Skip := True;
    Exit;
  end;

  Value := Format('R%dC%d', [Row, Col]);
  if Row >= 1000 then
    Cancel := True;
end;

Written := Workbook.Sheets[1].WriteCells('A1:D2000', WriteCell);

كتابة الصفوف والأعمدة المكتوبة الأنواع

تقبل TXLSWorksheet وTXLSXWorksheet أيضًا مصفوفات رقمية ونصية وvariant مفتوحة دون معاودة اتصال لكل خلية
function WriteFloatRowValues(ARow, ACol: Integer; const Values: array of Double): Integer;
function WriteStringRowValues(ARow, ACol: Integer; const Values: array of WideString): Integer;
function WriteRowValues(ARow, ACol: Integer; const Values: array of Variant): Integer;
function WriteFloatColumnValues(ARow, ACol: Integer; const Values: array of Double): Integer;
function WriteStringColumnValues(ARow, ACol: Integer; const Values: array of WideString): Integer;
function WriteColumnValues(ARow, ACol: Integer; const Values: array of Variant): Integer;
الإحداثيات قائمة على 1. تستمر القيم يمينًا لكتّاب الصفوف ونزولًا لكتّاب الأعمدة. تُقتطع الكتابات عند حد صفوف أو أعمدة صيغة الملف النشطة، وتعيد الإحداثيات الابتدائية غير الصالحة صفرًا، والنتيجة هي عدد القيم المكتوبة. وينمو كاتب XLSX بسعة المجموعات تصاعديًّا عبر الدفعات المتكررة
Revenue[0] := 1250.0;
Revenue[1] := 980.5;
Revenue[2] := 1425.25;
Written := Sheet.WriteFloatColumnValues(2, 4, Revenue);

انظر أيضًا