Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Excel-Datei erzeugen (https://www.delphipraxis.net/145419-%5Bphp%5D-excel-datei-erzeugen.html)

Chrissi91 31. Dez 2009 20:38


[PHP] Excel-Datei erzeugen
 
Ich versuche über ein PHP-Script eine Excel-Datei dynamisch zu erstellen. Klappt auch prima:

Code:
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=export.xls");
Den Inhalt packe ich in eine Tabelle, d.h. ich arbeite nur mit <table>, <tr>, <th>, <td> und den entsprechenden schließenden Tags.

Mein Problem ist aber, dass ich beim Öffnen der Excel-Datei folgende Warnung bekomme:

Sie versuchen eine Datei zu öffnen, 'export.xls', deren Format von dem in der Dateierweiterung angegebenen abweicht. Stellen Sie sicher, dass die Datei nicht beschädigt ist und aus einer vertrauenswürdigen Quelle stammt, bevor Sie die Datei öffnen. Möchten Sie die Datei jetzt öffnen? "Ja", "Nein", "Hilfe"

Ich habe daraufhin etliche Schreibweisen für den Content-type ausprobiert, da im Internet eine Vielzahl von Möglichkeiten kursiert, aber der Fehler ist nicht verschwunden. Dargestellt wird die Datei richtig, aber ich will den Internetusern den Fehler ersparen.

Was tun? :glaskugel:

P.S.: Euch allen einen guten Rutsch :cheer:

Matze 31. Dez 2009 20:55

Re: [PHP] Excel-Datei erzeugen
 
Hallo,

erstellst du wirklich eine Excel-Datei oder ist es evtl. eine CSV?
Wenn du die Datei aus einer HTML-Tabelle zusammen bastelst, wäre CSV sinnvoller. Das kann Excel öffnen, aber auch zahlreiche andere Programme.

Grüße, Matze

Chrissi91 31. Dez 2009 21:01

Re: [PHP] Excel-Datei erzeugen
 
Einen CSV-Download biete ich u.a. auch an. Da klappt es wunderbar (ein Editor meckert beim Öffnen auch nicht rum :zwinker:).

Ich würde schon gerne eine xls-Datei erzeugen, eine csv habe ich wie gesagt schon ... :-D

Deine Frage, ob ich auch wirklich eine Excel-Datei erstellen würde, verstehe ich nicht. Außer dem Header und echo's mit <table><tr><td>... steht nichts drin.

fatalerror 31. Dez 2009 21:19

Re: [PHP] Excel-Datei erzeugen
 
Zitat:

Zitat von Chrissi91
Deine Frage, ob ich auch wirklich eine Excel-Datei erstellen würde, verstehe ich nicht. Außer dem Header und echo's mit <table><tr><td>... steht nichts drin.

Es genügt nicht einfach im Header anzugeben, dass es eine Excel Datei sei, du musst die Daten schon auch so aufbereiten. So wie ich deinen Text interpretiere, exportierst du html und nicht xls.

Ein Tutorial findest du zb hier

Matze 31. Dez 2009 21:28

Re: [PHP] Excel-Datei erzeugen
 
Jupp genau, da reicht es nicht, den Header zu senden.
Aber wenn du nur eine Excel-Datei haben willst, damit du sagen kannst "ich kann als xls exportieren", ist das eigentlich weniger sinnvoll, wenn in der CSV genau das gleiche enthalten ist.
Aber das musst du natürlich wissen.

Chrissi91 31. Dez 2009 22:23

Re: [PHP] Excel-Datei erzeugen
 
Jetzt wo ich noch mal recherchiert habe, steht es überall, dass es so einfach nicht geht. Komisch, dass ich das damals nicht gelesen habe. :gruebel:

Die Möglichkeit mit einem Windows-Server scheidet aus und der Link von fatalerror weist auf ein Tutorial bei dem es bei den Meisten Probleme gibt. Selbst das Beispiel des Programmierers der Klasse funktioniert bei mir nicht.

Sieht wohl so aus, als müssen sich die User mit der blöden Fehlermeldung abgeben. :mrgreen:

Alien426 1. Jan 2010 01:16

Re: [PHP] Excel-Datei erzeugen
 
Benutze doch das Spreadsheet Writer-Paket von Pear. Damit kannst du sehr viel anstellen, was Excel kann. Farben, Dimensionen, Sichtbarkeit, Rahmen, Schriftformatierung... ach ja, und Formeln!

omata 24. Mai 2011 20:30

AW: [PHP] Excel-Datei erzeugen
 
Oder ein aktuelleres Projekt (für das neue Format xlsx) siehe hier


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz