fpspreadsheet: Updates the zipper code
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1868 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
9f27990b0a
commit
20c57c5180
File diff suppressed because it is too large
Load Diff
@ -368,57 +368,13 @@ end;
|
|||||||
procedure TsSpreadOOXMLWriter.WriteToFile(const AFileName: string;
|
procedure TsSpreadOOXMLWriter.WriteToFile(const AFileName: string;
|
||||||
AData: TsWorkbook; const AOverwriteExisting: Boolean);
|
AData: TsWorkbook; const AOverwriteExisting: Boolean);
|
||||||
var
|
var
|
||||||
FZip: TZipper;
|
lStream: TFileStream;
|
||||||
i: Integer;
|
|
||||||
begin
|
begin
|
||||||
{ Fill the strings with the contents of the files }
|
lStream:=TFileStream.Create(AFileName,fmCreate);
|
||||||
|
|
||||||
WriteGlobalFiles(AData);
|
|
||||||
WriteContent(AData);
|
|
||||||
|
|
||||||
{ Write the data to streams }
|
|
||||||
|
|
||||||
FSContentTypes := TStringStream.Create(FContentTypes);
|
|
||||||
FSRelsRels := TStringStream.Create(FRelsRels);
|
|
||||||
FSWorkbookRels := TStringStream.Create(FWorkbookRels);
|
|
||||||
FSWorkbook := TStringStream.Create(FWorkbook);
|
|
||||||
FSStyles := TStringStream.Create(FStyles);
|
|
||||||
FSSharedStrings := TStringStream.Create(FSharedStrings);
|
|
||||||
|
|
||||||
SetLength(FSSheets, Length(FSheets));
|
|
||||||
|
|
||||||
for i := 0 to Length(FSheets) - 1 do
|
|
||||||
FSSheets[i] := TStringStream.Create(FSheets[i]);
|
|
||||||
|
|
||||||
{ Now compress the files }
|
|
||||||
|
|
||||||
FZip := TZipper.Create;
|
|
||||||
try
|
try
|
||||||
FZip.FileName := AFileName;
|
WriteToStream(lStream, AData);
|
||||||
|
|
||||||
FZip.Entries.AddFileEntry(FSContentTypes, OOXML_PATH_TYPES);
|
|
||||||
FZip.Entries.AddFileEntry(FSRelsRels, OOXML_PATH_RELS_RELS);
|
|
||||||
FZip.Entries.AddFileEntry(FSWorkbookRels, OOXML_PATH_XL_RELS_RELS);
|
|
||||||
FZip.Entries.AddFileEntry(FSWorkbook, OOXML_PATH_XL_WORKBOOK);
|
|
||||||
FZip.Entries.AddFileEntry(FSStyles, OOXML_PATH_XL_STYLES);
|
|
||||||
FZip.Entries.AddFileEntry(FSSharedStrings, OOXML_PATH_XL_STRINGS);
|
|
||||||
|
|
||||||
for i := 0 to Length(FSheets) - 1 do
|
|
||||||
FZip.Entries.AddFileEntry(FSSheets[i], OOXML_PATH_XL_WORKSHEETS + 'sheet' + IntToStr(i + 1) + '.xml');
|
|
||||||
|
|
||||||
FZip.ZipAllFiles;
|
|
||||||
finally
|
finally
|
||||||
FSContentTypes.Free;
|
FreeAndNil(lStream);
|
||||||
FSRelsRels.Free;
|
|
||||||
FSWorkbookRels.Free;
|
|
||||||
FSWorkbook.Free;
|
|
||||||
FSStyles.Free;
|
|
||||||
FSSharedStrings.Free;
|
|
||||||
|
|
||||||
for i := 0 to Length(FSSheets) - 1 do
|
|
||||||
FSSheets[i].Free;
|
|
||||||
|
|
||||||
FZip.Free;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -450,9 +406,6 @@ begin
|
|||||||
|
|
||||||
FZip := TZipper.Create;
|
FZip := TZipper.Create;
|
||||||
try
|
try
|
||||||
FZip.OutputDestination:= zodToStream;
|
|
||||||
FZip.OutputStream := AStream;
|
|
||||||
|
|
||||||
FZip.Entries.AddFileEntry(FSContentTypes, OOXML_PATH_TYPES);
|
FZip.Entries.AddFileEntry(FSContentTypes, OOXML_PATH_TYPES);
|
||||||
FZip.Entries.AddFileEntry(FSRelsRels, OOXML_PATH_RELS_RELS);
|
FZip.Entries.AddFileEntry(FSRelsRels, OOXML_PATH_RELS_RELS);
|
||||||
FZip.Entries.AddFileEntry(FSWorkbookRels, OOXML_PATH_XL_RELS_RELS);
|
FZip.Entries.AddFileEntry(FSWorkbookRels, OOXML_PATH_XL_RELS_RELS);
|
||||||
@ -463,7 +416,7 @@ begin
|
|||||||
for i := 0 to Length(FSheets) - 1 do
|
for i := 0 to Length(FSheets) - 1 do
|
||||||
FZip.Entries.AddFileEntry(FSSheets[i], OOXML_PATH_XL_WORKSHEETS + 'sheet' + IntToStr(i + 1) + '.xml');
|
FZip.Entries.AddFileEntry(FSSheets[i], OOXML_PATH_XL_WORKSHEETS + 'sheet' + IntToStr(i + 1) + '.xml');
|
||||||
|
|
||||||
FZip.ZipAllFiles;
|
FZip.SaveToStream(AStream);
|
||||||
finally
|
finally
|
||||||
FSContentTypes.Free;
|
FSContentTypes.Free;
|
||||||
FSRelsRels.Free;
|
FSRelsRels.Free;
|
||||||
|
Loading…
Reference in New Issue
Block a user