Seite 1 von 1
xlsx richtig verpacken
Verfasst: 13.07.2013 01:35
von The_Dark_Zim-.-
Hey ho,
ich versuche gerade eine *.xlsx Datei zu erstellen. Die xml Datein bekomme ich geschrieben. Wenn ich das ganze dann mit 7zip oder Winrar verpacke kann ich es mit LibreOffice öffnen. Aber wenn ich es mit dem PB Packer verpacke geht es nicht. Dann kommt immer eine Filterliste, wenn ich dort dann Excel 2010 raussuche kommt es zu einem Fehler.
Ich denke mal er verpackt, trotz UseZipPacker(), anderes. Hat jemand eine Idee was ich anders machen könnte? Kann da CompressMemory() evtl. funktionieren oderso?
Gruß Zim
Re: xlsx richtig verpacken
Verfasst: 13.07.2013 11:30
von uweb
hey ho,
eventuell klappt das mit CompressMemory() - versuch macht klug.
für den fall, dass nicht:
ich habe zwar keine erfahrung mit *.xlsx, wohl aber damit manchmal den wald vor lauter bäumen nicht zu sehen.
es gibt zahlreiche alternativen. du bist nicht auf die pb-packer-funktionen angewiesen.
suche doch einfach mal nach 'zip' mit 'Nur im Betreff der Themen'. da findest du zahlreiche möglichkeiten - z.t. aus älteren versionen.
ffpx
uwe
Re: xlsx richtig verpacken
Verfasst: 13.07.2013 12:33
von Kiffi
die mit folgendem Code erstellte XLSX-Datei kann MS Excel 2007 problemlos öffnen
SoftMaker PlanMaker 2012 meldet: Unbekanntes Dateiformat.
LibreOffice habe ich nicht installiert; dürfte aber ähnlich wie SoftMaker sein.
Code: Alles auswählen
EnableExplicit
Global NewList FileToZip.s()
Procedure ListFiles(EntryPath.s)
; Original von Lebostein
Protected UsedDirectory
Protected EntryType
Protected EntryName.s
If Right(EntryPath, 1) <> "\" : EntryPath + "\" : EndIf
UsedDirectory = ExamineDirectory(#PB_Any, EntryPath, "*.*")
While NextDirectoryEntry(UsedDirectory)
EntryType = DirectoryEntryType(UsedDirectory)
EntryName = DirectoryEntryName(UsedDirectory)
If EntryName = "." Or EntryName = "..": Continue: EndIf
If EntryType = #PB_DirectoryEntry_File
AddElement(FileToZip())
FileToZip() = EntryPath + EntryName
EndIf
If EntryType = #PB_DirectoryEntry_Directory
ListFiles(EntryPath + EntryName)
EndIf
Wend: FinishDirectory(UsedDirectory)
EndProcedure
Define RootFolder.s = "D:\xlsxtest\xlsxtest\"
ListFiles(RootFolder)
UseZipPacker()
If CreatePack(0, "D:\xlsxtest\xlsxtestpb.xlsx")
ForEach FileToZip()
AddPackFile(0, FileToZip(), ReplaceString(FileToZip(), RootFolder, ""))
Next
ClosePack(0)
EndIf
Grüße ... Kiffi
// Edit: Hat wohl was mit dem Komprimierungsgrad zu tun. Die Originaldatei,
aus der ich den Inhalt entzippt habe, ist 8 KB groß; die von PB erstellte ist
nur 6 KB groß.
Re: xlsx richtig verpacken
Verfasst: 15.07.2013 09:36
von alen
Hallo Zusammen,
vor längerem hatte ich damit auch rumgespielt. Ging es da nicht um in einer XML Datei verpackten Checksumme die zum Archiv passen musste.
Kann mich nicht mehr so gut daran erinnern. Aber ich meine wenn man keine Checksumme gebildet und mitgegeben hat wurde das als "unbekanntes Format" bemängelt.
Hoffe Die Info hilft ein wenig weiter.
Grüße
Alen