Ich kann CSV-Dateien problemlos per Drive-API hochladen und konvertieren, aber beim Senden von XLS (gerendert mit PEAR XLS-Writer) oder XLSX (gerendert mit PHPExcel) beschwert sich die Drive API:
%Vor%MIME-Typ "application / vnd.ms-excel" funktioniert anscheinend besser als "application / vnd-excel"
Wenn ich XLSX mit dem Inhaltstyp "application / vnd.openxmlformats-officedocument.spreadsheetml.sheet" schreibe, ist das ziemlich gleich ... Beim Laden der Vorschau bleibt es hängen, wenn convert = true ist.
Wenn Sie Dateien mit MS Excel erstellen und manuell hochladen, funktioniert das problemlos.
Ich kann die Dateien einfügen / aktualisieren, herunterladen / öffnen (alles in Ordnung) - aber ich möchte sie konvertieren.
Bei allen durchgeführten Tests denke ich, dass das Problem mit dem erstellten Dateiformat - oder MIME-Typ - zusammenhängt.
Hinweise, warum die Konvertierung fehlschlägt ...
"Hat jemand jemals gerenderte XLS / XLSX konvertiert?"
Die Frage ist im Grunde: Was ist das erwartete Dateiformat + MIME-Typ um in gSheet zu konvertieren?
Ich würde jede Antwort für die Bounty akzeptieren, die eine Möglichkeit bietet, ein mehrdimensionales Array in gSheet mit mehreren Seiten umzuwandeln, falls dies (noch) nicht über die Drive API möglich ist (sicherlich wäre das das bevorzugte) Weg).
Dies ist eine Google Drive-API -Frage - es ist nur ein einzelnes Tag dafür verfügbar.
Der schnellste Vorlauf bestand darin, das Array in Excel 2007 zu rendern und Google Drive App auf den Desktops für den Zugriff auf die Daten zu installieren. Spreadsheets API kann keine Dokumente erstellen, muss dies mit der Docs API tun; Momentan unterstützt der API-Wrapper für PHP diese beiden Endpunkte nicht - so kann ich auch die Dateien revidieren. Zeitaufwand: 1h.
Update: Wenn ich XLSX mit Excel2007 rende, schlägt die Konvertierung fehl. Wenn ich die gleiche Datei mit MS-Excel und "Speichern unter" öffne - kann ich es sogar über die Drive API konvertieren.
Ich habe einige Dinge beim Entpacken der Dateien bemerkt und verglichen:
a) MS-Excel verwendet die Werte '0/1' anstelle von 'false / true'
b) Verzeichnis 'xl / worksheets / _rels' wurde entfernt (vielleicht nutzlos?).
c) Die Zeilenenden der XML wurden von UNIX in DOS konvertiert.
d) MS-Excel hat alle leeren Zellen zum XML hinzugefügt - welche PHPExcel nicht ausgeschrieben hat.
e) die Beziehungs-IDs scheinen verschoben zu sein ... gibt es eine +3 Berechnung im Code ??
Das Problem ist, dass das generierte Dateiformat nicht mit dem XML-Parser der Drive API übereinstimmt.
Ich bin mir immer noch nicht ganz sicher, was mit dem generierten Dateiformat nicht stimmt, Durch das Patchen der gerenderten XLSX-Datei mit XML-Dateien, die nativ von MS-Excel erstellt wurden, funktioniert es jedoch:
%Vor%Die Zellenformatierung ist nicht richtig - aber die Konvertierung & amp; Vorschau funktioniert.
Kann sogar einige XML-Dateien vom Patchen überspringen, einige andere machen es kaputt.
Sie können Ihre Excel-Dokumente mit der App oder dem SDK von Google Drive auf Google Drive hochladen, aber ich glaube nicht, dass Google eine Möglichkeit bietet, die Dateien noch zu konvertieren.
Könnte es sich lohnen, eine Dateikonvertierung für das Google-Team vorzuschlagen? Ich habe nie eine Notwendigkeit dafür persönlich gesehen, da Excel gut funktioniert.
Tags und Links php google-drive-sdk phpexcel xlsx