เติมช่วง worksheet 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 ใน callback เพื่อเขียนเซลล์ปัจจุบัน กำหนด Skip เป็น True เพื่อปล่อยเซลล์ปัจจุบันไม่เปลี่ยนแปลง กำหนด Cancel เป็น True เพื่อหยุดหลัง callback ปัจจุบัน ค่าที่คืนคือจำนวนเซลล์ที่เขียน
เมธอดนี้เขียนลงในโมเดล worksheet ที่โหลดแล้ว เป็นตัวช่วยการเขียนแบบ callback ที่กระชับ ไม่ใช่โหมดบันทึกแบบสตรีมไฟล์
ตัวอย่าง
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);
ดูเพิ่มเติม