Поддръжка на Free Pascal и Lazarus
HotXLS поддържа Free Pascal 3.2.2 с Lazarus/LCL на Windows Win32 и Win64, включително API за работни книги XLS/XLSX, формули, форматиране, директно поточно предаване, компонентите за експорт TDataToXLS и TGridToXLS и помощните модули за рендериране
Изграждане и тестване
Отворете Lib/FPC/HotXLSLaz.lpk в Lazarus и компилирайте runtime пакета, или изпълнете тези команди от директорията на 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, или добавете runtime пакета като зависимост на Lazarus проект
Поставете Interfaces преди единиците на HotXLS в списъка с uses на приложението, включително конзолните приложения; това инициализира LCL widgetset и 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 Unicode семантика, така че низовете, знаците и текстът на формулите запазват поведението си UTF-16; приложният код може да използва предпочитания от него Pascal режим
Подробности за съвместимост
- Runtime пакетът изисква Windows и LCL;
TDataToXLSекспортира LCL набори от данни, аTGridToXLSекспортираTDBGrid, с изрични колони или без, докато Linux, macOS, VCL демо-формите, VCL визуализаторът на работни книги и адаптерът на DevExpress за мрежи са извън този пакет - ZIP и компресионните потоци използват вградения Pascal бекенд и не изискват отделен zlib DLL
- AES използва Pascal бекенд и за двете архитектури, включително за XLSX файлове, защитени с парола
- PNG запазва алфа канала, EMF използва запис и възпроизвеждане на Windows метафайлове, а многостраничният TIFF използва Windows GDI+ runtime
- Директното четене на текст приема UTF-8 и UTF-16/UTF-32 с BOM маркер, обработва поточен вход и запазва собствеността над потока при извикващия
- Инициализирайте
TXlsCsvImportOptionsсTXlsCsvImportOptions.Default, преди да промените отделни полета - Отчетните изрази и шаблоните за импорт на FPC използват Unicode синтаксиса на
URegExpr, а не PCRE бекенда на Delphi. Празен вход получава отговора, койтоTRegExдава: шаблон, който приема празен низ, като^$или.*, съвпада с него, докато[0-9]+— не, а заменянето на празен низ връща заместващия текст само когато шаблонът го приема; неподдържани и празни шаблони повдигатERegularExpressionError, който отчетните изрази излагат катоREPORT_EXPRESSION_INVALID_REGEX