HotXLS Belgeleri

WriteCells ve türlü toplu yazıcılar

Her hücre değeri için uygulama kodunu çağırarak klasik bir XLS çalışma sayfası aralığını doldurur

Sözdizimi

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;

Açıklamalar

Dize aşırı yüklemesi A1:C100 gibi A1 tarzı bir aralık kabul eder. Sayısal aşırı yükleme 1 tabanlı satır ve sütun indeksleri kullanır. Başlangıç satırı ya da sütunu bitiş satırı ya da sütunundan büyük olduğunda aralıklar normalize edilir
Hücreler satır-öncelikli sırada istenir. Geçerli hücreyi yazmak için geri çağrıda Value değerini ayarlayın. Geçerli hücreyi değiştirmeden bırakmak için Skip değerini True yapın. Geçerli geri çağrıdan sonra durmak için Cancel değerini True yapın. Dönüş değeri, yazılan hücre sayısıdır
Bu yöntem, yüklenmiş çalışma sayfası modeline yazar. Dosya akışlı bir kaydetme kipi değil; geri çağrı tabanlı, kompakt bir yazma yardımcısıdır

Örnek

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

Türlü satır ve sütun yazıcıları

TXLSWorksheet ve TXLSXWorksheet, hücre başına geri çağırma olmaksızın açık sayısal, dize ve variant dizilerini de kabul eder
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;
Koordinatlar 1 tabanlıdır. Değerler, satır yazıcılarında sağa, sütun yazıcılarında aşağıya doğru ilerler. Yazmalar, etkin dosya biçiminin satır veya sütun sınırında kırpılır; geçersiz başlangıç koordinatları sıfır döndürür ve sonuç, yazılan değer sayısıdır. XLSX yazıcıları, yinelenen toplu işlemler boyunca koleksiyon kapasitesini geometrik olarak büyütür
Revenue[0] := 1250.0;
Revenue[1] := 980.5;
Revenue[2] := 1425.25;
Written := Sheet.WriteFloatColumnValues(2, 4, Revenue);

See Also