Если нужно в Delphi с ZEXMLSS использовать функции экспорта/импорта в/из запакованный ods/xlsx
(начиная с 0.0.6)
-
По умолчанию в Delphi функции SaveXmlssToODFS, ReadODFS, SaveXmlssToXLSX и ReadXLSX недоступны. Чтобы их использовать, нужно:
- прочитать /delphizip/readme.txt (да и /readme.txt)
-
(до установки) нужно скопировать из /delphizip/нужный_упаковщик в /src/ все файлы (заменить). Пока можно использовать:
- После правильной установки функции будут доступны
- (Только запись) Можно использовать функции для экспорта в запакованные ODS и XLSX с использованием
zeZippy: ExportXmlssToODFS и ExportXmlssToXLSX. Для этого нужно подключить модуль zeZyppy и модуль
обёртки нужного упаковщика (перед этим необходимо установить нужный упаковщик):
- zeZippyZipMaster.pas: TZipMaster by www.delphizip.org
- zeZippyXE2.pas: Delphi XE2 zip (System.Zip TZipFile)
- zeZippyJCL7z.pas: www.7-zip.org DLL via wrapper by jcl.sf.net
- zeZippyAB.pas: TurboPower Abbrevia
- по аналогии можно написать обёртку над другими упаковщиками
Пример экспорта в ods и xlsx:
//uses zexmlss, zeodfs, zexmlssutils, zsspxml, zexlsx, zeZippy,
// zeZippyAB {или zeZippyZipMaster/zeZippyXE2/zeZippyJCL7z - выбрать по вкусу};
procedure TForm1.btnExportClick(Sender: TObject);
var
tz: TZEXMLSS;
i, j: integer;
TextConverter: TAnsiToCPConverter;
begin
TextConverter := nil;
{$IFNDEF FPC}
{$IF CompilerVersion < 20} // < RAD Studio 2009
TextConverter := @AnsiToUtf8;
{$IFEND}
{$ENDIF}
tz := TZEXMLSS.Create(nil);
try
tz.Sheets.Count := 1;
tz.Sheets[0].Title := 'zeZippy example';
with tz.Sheets[0] do
begin
RowCount := 20;
ColCount := 20;
for i := 0 to RowCount - 1 do
for j := 0 to ColCount - 1 do
begin
Cell[j, i].CellType := ZENumber;
Cell[j, i].Data := IntToStr(i * j);
end;
end;
//Экспорт в xlsx
ExportXmlssToXLSX(tz, {какой-то путь}'zezippytst.xlsx', [], [], nil, 'UTF-8');
//Экспорт в ods
ExportXmlssToODFS(tz, {какой-то путь}'zezippytst.ods', [], [], nil, 'UTF-8');
finally
tz.free();
end;
end;
|