การสนับสนุน Free Pascal และ Lazarus
HotXLS รองรับ Free Pascal 3.2.2 พร้อม Lazarus/LCL บน Windows Win32 และ Win64 รวมถึง API ของสมุดงาน XLS/XLSX สูตร การจัดรูปแบบ การสตรีมโดยตรง คอมโพเนนต์ส่งออก TDataToXLS และ TGridToXLS และตัวช่วยเรนเดอร์
Build และทดสอบ
เปิด Lib/FPC/HotXLSLaz.lpk ใน Lazarus และคอมไพล์แพ็กเกจรันไทม์ หรือรันคำสั่งเหล่านี้จากไดเรกทอรี HotXLS
build-FPC-Lib.cmd Win64
Tests\Lazarus\Run-HotXLSLazarusSmoke.cmd Win64
build-FPC-Lib.cmd Win32
Tests\Lazarus\Run-HotXLSLazarusSmoke.cmd Win32
ตั้งค่า LAZARUS_DIR เพื่อเลือก installation; FPC_EXE และ LAZBUILD_EXE สามารถระบุคอมไพเลอร์และตัวสร้างแพ็กเกจแบบเจาะจงได้เมื่อจำเป็น
installation ที่เลือกต้องมี FPC และยูนิต LCL/LazUtils ที่คอมไพล์แล้วสำหรับสถาปัตยกรรมเป้าหมาย; เอาต์พุตและการตั้งค่าตัวสร้างแพ็กเกจถูกเก็บในไดเรกทอรีแยกตามสถาปัตยกรรม
การตั้งค่าแอปพลิเคชัน
เพิ่ม Lib และ Lib/FPC เข้า path ค้นหายูนิต และ Lib เข้า path ค้นหา include หรือเพิ่มแพ็กเกจรันไทม์เป็น dependency ของโปรเจกต์ Lazarus
วาง Interfaces ไว้หน้ายูนิต HotXLS ใน uses list ของแอปพลิเคชัน รวมถึงแอปพลิเคชันคอนโซล; สิ่งนี้เริ่มต้น widgetset ของ LCL และการแปลง UTF-8 ที่ขอบ RTL/LCL
program WorkbookExample;
{$mode delphiunicode}
uses
Interfaces, SysUtils, lxHandleX;
var
Workbook: TXLSXWorkbook;
begin
Workbook:= TXLSXWorkbook.Create;
try
Workbook.AddSheet('Data');
Workbook.Sheets[1].Cells[1, 1].Value:= 'Hello';
if Workbook.SaveAs('example.xlsx')<> 1 then
raise Exception.Create('Workbook save failed');
finally
Workbook.Free;
end;
end.
ยูนิตต้นทางของ HotXLS เลือก semantics แบบ Delphi Unicode ไว้ข้างใน เพื่อให้สตริง, ตัวอักษร และข้อความสูตรคงพฤติกรรม UTF-16 ส่วนโค้ดแอปพลิเคชันใช้โหมด Pascal ที่ต้องการได้
รายละเอียดความเข้ากันได้
- แพ็กเกจรันไทม์ต้องใช้ Windows และ LCL;
TDataToXLSส่งออก dataset ของ LCL และTGridToXLSส่งออกTDBGridได้ทั้งแบบระบุคอลัมน์และไม่ระบุ ส่วน Linux, macOS, ฟอร์มเดโม VCL, workbook viewer ฝั่ง VCL และตัวปรับ grid ของ DevExpress ไม่ได้อยู่ในแพ็กเกจนี้ - stream ของ ZIP และการบีบอัดใช้ backend Pascal ที่แถมมา จึงไม่ต้องพึ่ง zlib DLL แยก
- AES ใช้ backend Pascal สำหรับทั้งสองสถาปัตยกรรม รวมถึงไฟล์ XLSX ที่มีรหัสผ่านป้องกัน
- PNG คงค่า alpha, EMF ใช้การบันทึกและเล่น metafile ของ Windows และ TIFF หลายหน้าใช้ GDI+ runtime ของ Windows
- การอ่านข้อความโดยตรงรับ UTF-8 และ UTF-16/UTF-32 ที่มี BOM จัดการ input แบบสตรีม และคงความเป็นเจ้าของ stream ให้ผู้เรียก
TXlsCsvImportOptionsต้องเริ่มต้นด้วยTXlsCsvImportOptions.Defaultก่อนแก้ฟิลด์แต่ละตัว- นิพจน์รายงานกับ pattern การนำเข้าบน FPC ใช้ syntax แบบ Unicode ของ
URegExprไม่ใช่ backend PCRE ของ Delphi กรณี input ว่างจะตอบแบบเดียวกับที่TRegExตอบ: pattern ที่ยอมรับสตริงว่าง เช่น^$หรือ.*จะ match ส่วน[0-9]+จะไม่ และการ replace สตริงว่างจะได้ข้อความแทนที่ก็ต่อเมื่อ pattern ยอมรับมัน; pattern ที่ไม่รองรับและ pattern ว่างจะ raiseERegularExpressionErrorซึ่งนิพจน์รายงานจะเปิดเผยเป็นREPORT_EXPRESSION_INVALID_REGEX