2009-06-10 2 views
1

Ich erstelle eine Excel-Datei php wie folgt aus:PHP Excel creation - ungültige Dateityp

header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=invoice.xls"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
echo "<table><tr><th>Test</th></tr><tr><td>...</td></tr></table>"; 

Wenn ich versuche, die Datei zu öffnen, Excel gibt eine Warnung aus, dass der Dateityp nicht korrekt ist. Die Datei wird jedoch korrekt und genau so angezeigt, wie ich es möchte ...

Gibt es eine Möglichkeit, diese Fehlermeldung zu vermeiden?

Antwort

1

Der beste Weg ist, eine Excel-Datei für sich selbst zu erstellen und speichern Sie es als HTML, öffnen Sie es dann in einem Texteditor und werfen Sie einen Blick auf den Müll. Sie werden schließlich herausfinden, was in Ihrem PHP-Skript ausgegeben wird, damit sich Excel über Dateitypen und Erweiterungen nicht beschweren wird.

+0

Dank bekommen, werde ich versuchen Sie das ... Es sei denn, jemand anderes kann mir sagen, was "Müll" ich in meine PHP-Datei aufnehmen sollte ... – Fortega

+0

Das einfachste Format zu replizieren ist das Excel XML-Datei - also wenn Sie diesen Ansatz verwenden, würde ich empfehlen, das zu kopieren. – BrynJ

0

Die Dateiausgabe, die Sie erzeugen, ist nicht wirklich im Excel-Format, also ist es richtig, sich darüber zu beschweren. Es gibt mehrere PHP-Pakete zum Erstellen von Excel-Dateien, wie phpexcel.net. Die andere Möglichkeit wäre, die Datei als "normale" HTML-Datei anzubieten und Ihre Benutzer anzuweisen, sie in Excel zu öffnen.

Hoffe, das hilft!

+0

Sie sagen also, dass die von Lonut G. Stan vorgeschlagene Lösung nicht funktionieren wird? – Fortega

+0

@Fortega, wie wäre es mit einem Versuch? Ich habe es mit deinem Code versucht und es hat sich beschwert. Ich habe dann eine Tabelle als HTML-Datei gespeichert und habe mich beim Öffnen nicht beschweren. –

+0

Ich bin mir ziemlich sicher, dass es funktioniert, aber Sie müssten die Datei als HTML-Datei noch (dh mit einer Erweiterung .html) dienen. Wenn dies der Fall ist, wird der Endbenutzer die Datei in einer Anwendung für HTML-Dateien (wie einen Webbrowser) wahrscheinlich noch öffnen, anstatt Excel. – ylebre

0

könnten Sie versuchen, Tabulator getrennte Format ich bin nicht sicher, ob es sich um das Laden beschweren würde oder nicht zB echo "$ col \ t $ col \ t $ col \ t $ col \ n"

i excel haben auch die Birne Generation Bibliotheken verwendet sie erzeugen BIFF Format Excel-Dateien, es ganz einfach zu bedienen ist und Sie die Kontrolle über die Formatierung von Zellen als auch zB Schriftart, Größe, Farbe usw.