Продолжая тему обработки файлов формата MS Excel в программах на Delphi, поговорим об их обработке в программе под Linux. Такую возможность программистам на Delphi предоставляет библиотека TMS FlexCel. Она позволяет работать с файлами формата MS Excel под всеми операционными системами, под которые Delphi умеет создавать исполняемый файл: Windows, Linux, Android и iOS.
Для использования TMS FlexCel под Linux необходимо сделать три подготовительные действия:
Но в этой бочке мёда есть своя ложка дёгтя. Функционал этой программы под Linux ограничен. Мы можем читать/записывать файлы xls/xlsx и проводить над ними только те операции, которые не требуют поддержки графики. Например, под Linux в нашей программе перестанут работать все функции, которым нужно измерить длину или высоту текста. Таким образом, вызов метода AutofitCol для расчёта ширины колонок приведет к ошибке:
Если вы решили использовать Skia, то:
Для использования TMS FlexCel под Linux необходимо сделать три подготовительные действия:
- установить на машине с Linux, если они не установлены, библиотеки "build-essential" и "zlib1g-dev". Для Ubuntu это делается так:
sudo apt-get install build-essential
sudo apt-get install zlib1g-dev - В Delphi установить Linux SDK. Если он установлен раньше без build-essential и zlib1g-dev, то его нужно обновить. Для обновления Linux SDK в SDK Manager нужно нажать кнопку "Update Local File Cache".
- В Delphi установить TMS FlexCel с включённым параметром "Linux 64".
Но в этой бочке мёда есть своя ложка дёгтя. Функционал этой программы под Linux ограничен. Мы можем читать/записывать файлы xls/xlsx и проводить над ними только те операции, которые не требуют поддержки графики. Например, под Linux в нашей программе перестанут работать все функции, которым нужно измерить длину или высоту текста. Таким образом, вызов метода AutofitCol для расчёта ширины колонок приведет к ошибке:
FlexCel has not been initialized for the current platform. Make sure you add "uses VCL.FlexCel.Core", "uses FMX.FlexCel.Core" or "uses SKIA.FlexCel.Core" to your uses listДля полноценной работы TMS FlexCel под Linux требуется графическая библиотека Skia. Skia - это open-source библиотека для работы с 2D-графикой. Она является графическим движком для Google Chrome, Chrome OS, Android, Mozilla Firefox, Firefox OS и многих других программных продуктов.
Если вы решили использовать Skia, то:
- в USES программы замените "{$IFDEF MSWINDOWS}VCL.FlexCel.Core{$ELSE}FlexCel.Core{$ENDIF}" на "{$IFDEF MSWINDOWS}VCL.FlexCel.Core{$ELSE}SKIA.FlexCel.Core{$ENDIF}".
- в каталог с вашей программой на машине с Linux скопируйте файл с движком Skia - "FlexCel\ThirdParty\Skia\Linux64\libflexskia.so.3".
- установите на машине с Linux библиотеки, которые Skia требует для своей работы. Например, zlib и fontconfig.
Комментариев нет:
Отправить комментарий