پشتیبانی Free Pascal و Lazarus
HotXLS از Free Pascal 3.2.2 همراه با Lazarus/LCL روی Windows Win32 و Win64 پشتیبانی میکند، شامل APIهای کتابکار XLS/XLSX، فرمولها، قالببندی، جریاندهی مستقیم، اجزای export TDataToXLS و TGridToXLS و کمککارهای رندر
ساخت و آزمون
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 را برای انتخاب یک نصب تنظیم کنید؛ در صورت نیاز FPC_EXE و LAZBUILD_EXE میتوانند فایلهای اجرایی صریح کامپایلر و سازنده بسته را انتخاب کنند
نصب انتخابشده باید برای معماری هدف دربردارنده FPC و واحدهای کامپایلشده LCL/LazUtils باشد؛ خروجیها و پیکربندی سازنده بسته در دایرکتوریهای جداگانه برای هر معماری نگه داشته میشوند
راهاندازی برنامه
Lib و Lib/FPC را به مسیر جستوجوی واحدها و Lib را به مسیر جستوجوی include بیفزایید، یا بسته زمان اجرا را بهعنوان وابستگی پروژه Lazarus اضافه کنید
Interfaces را در فهرست uses برنامه، از جمله برنامههای کنسولی، پیش از واحدهای HotXLS قرار دهید؛ این کار 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 بهصورت داخلی معناشناسی یونیکد Delphi را برمیگزینند تا رشتهها، نویسهها و متن فرمولها رفتار UTF-16 خود را حفظ کنند؛ کد برنامه میتواند از مود پاسکال مورد علاقه خود استفاده کند
جزئیات سازگاری
- بسته زمان اجرا به Windows و LCL نیاز دارد؛
TDataToXLSمجموعهدادههای LCL وTGridToXLSیکTDBGridرا با ستونهای صریح یا بدون آنها صادر میکند، در حالی که Linux، macOS، فرمهای نمایشی VCL، نمایشگر کتابکار VCL و آداپتور شبکه DevExpress خارج از این بستهاند - جریانهای ZIP و فشردهسازی از بکاند پاسکال همراه استفاده میکنند و به DLL zlib جداگانهای نیاز ندارند
- AES برای هر دو معماری از بکاند پاسکال استفاده میکند، از جمله فایلهای XLSX محافظتشده با گذرواژه
- PNG آلفا را حفظ میکند، EMF از ثبت و پخش متافایل Windows استفاده میکند و TIFF چندصفحهای از زمان اجرای GDI+ ویندوز بهره میگیرد
- خواندن مستقیم متن، UTF-8 و UTF-16/UTF-32 با نشان BOM را میپذیرد، ورودی جریانی را مدیریت میکند و مالکیت جریان را نزد فراخوان نگه میدارد
- پیش از تغییر فیلدهای منفرد،
TXlsCsvImportOptionsرا باTXlsCsvImportOptions.Defaultمقداردهی اولیه کنید - عبارتهای گزارش و الگوهای درونبری FPC از نحو
URegExprیونیکد استفاده میکنند، نه بکاند PCRE در Delphi. ورودی خالی همانطور پاسخ داده میشود کهTRegExپاسخ میدهد: الگویی که رشته خالی را میپذیرد، مانند^$یا.*، آن را مطابق میکند در حالی که[0-9]+نه، و جایگزینی رشته خالی تنها زمانی متن جایگزین را برمیگرداند که الگو آن را بپذیرد؛ الگوهای پشتیبانینشده و الگوهای خالیERegularExpressionErrorایجاد میکنند که عبارتهای گزارش آن را بهصورتREPORT_EXPRESSION_INVALID_REGEXدر معرض میگذارند