# XLS mit PHP dynamisch erzeugen?



## TXC -Freak (31. Juli 2005)

Hi Leute!
Ich bin gerade dabei eine kleine Homepage mit ein paar Admin Features für meine kleine Firma zu programmieren. SOweit funktioniert das auch alles ohne Probleme nur eine Frage hab ich. Ist es möglich mit PHP eine vorgefertigte Excel Datei zu öffnen und dann in bestimmte Felder dynamisch reinzuschreiben? Wäre für mich z.B. sehr gut, wenn ich die Adressdaten der Kunden auf einer mySQL Datenbank auslesen könnte (Adresse, Kundennr. etc.) und diese dann direkt und automatisch in die Excel Tabelle einfügen könnte. Ist das möglich? Wenn ja wie? Danke schonmal im Voraus.


----------



## Dr Dau (31. Juli 2005)

Hallo!

Hast Du die Datenbank mal mit phpMyAdmin als "CSV-Daten für MS Excel" exportiert?

Gruss Dr Dau


----------



## Dennis Wronka (31. Juli 2005)

Ich denke mit richtigen, echten Excel-Dateien wird PHP nicht arbeiten koennen. Eine fixe Suche nach Excel bei php.net haben jedenfalls nichts ergeben.

Aber wie Dr Dau schon erwaehnte koenntest Du mit CSV arbeiten.


So, jetzt muss ich erstmal Simpsons gucken.


----------



## TXC -Freak (31. Juli 2005)

Das Problem ist, dass ich diese Vorlage in Excel bereits habe und auch schon seit langem für Rechnungen nutze. Wenn ich jetzt CSV nutze, kann ich zB mein Firmenlogo nichtmehr einbinden oder geht das doch irgendwie mit CSV? Deswegen wollte ich schon mit XML arbeiten, habs auch mehrmals versucht, aber leider kenne ich mich damit zu wenig aus und es hatte nie geklappt. Oder hat jemand ne andere Idee, wie ich meine Rechnungen generien könnte und sie auch speichern und Archivieren kann? Vllt irgend ein anderes Dateiformat.


----------



## Dennis Wronka (31. Juli 2005)

Du koenntest sie als PDF ausgeben.


----------



## Dr Dau (31. Juli 2005)

Du brauchst eine Excel Datei ja nurmal mit Notepad öffnen, dann wirst Du sehen dass es quasi unmöglich ist.

Ein CSV kannst Du nur als eigenständige Datei öffnen.... den Inhalt müsstest Du kopieren und dann in deine Tabelle mit dem Logo einfügen.

Schonmal nach FPDF gesucht?
Damit kannst Du PDF's erstellen lassen.


----------



## Matthias Reitinger (31. Juli 2005)

reptiler hat gesagt.:
			
		

> Ich denke mit richtigen, echten Excel-Dateien wird PHP nicht arbeiten koennen.





			
				Dr Dau hat gesagt.:
			
		

> Du brauchst eine Excel Datei ja nurmal mit Notepad öffnen, dann wirst Du sehen dass es quasi unmöglich ist.


Ich verstehe das immer nicht, wenn Leute behaupten, mit PHP sei dieses und jenes nicht möglich. PHP stellt sämtliche Funktionalität bereit, um auch Binärdateien manipulieren zu können. Die Vermutung, dass PHP nicht mit Excel-Dateien umgehen kann, ist deshalb IMHO nicht haltbar. Hat man erst mal die Beschreibung eines Dateiformates, dann kann man damit anstellen, was man will. Und bezüglich Notepad: wenn ich eine Excel-Datei mit Notepad öffne, dann sehe ich primär, dass Notepad nicht zur Anzeige und Bearbeitung von Binärdaten geeignet ist 

@TXC-Freak: Der Ansatz mit XML ist schon recht gut, da zur Weiterverarbeitung sogar entsprechende Funktionen von PHP zur Verfügung gestellt werden. Andernfalls könntest du dir das PEAR-Paket Spreadsheet_Excel_Writer mal genauer anschauen.


----------



## Dennis Wronka (31. Juli 2005)

Matthias Reitinger hat gesagt.:
			
		

> Ich verstehe das immer nicht, wenn Leute behaupten, mit PHP sei dieses und jenes nicht möglich. PHP stellt sämtliche Funktionalität bereit, um auch Binärdateien manipulieren zu können. Die Vermutung, dass PHP nicht mit Excel-Dateien umgehen kann, ist deshalb IMHO nicht haltbar. Hat man erst mal die Beschreibung eines Dateiformates, dann kann man damit anstellen, was man will.


An die Beschreibung dieses Formates, insbesondere bei Microsoft-Formaten, zu kommen ist aber nicht immer unbedingt einfach.
Natuerlich kann man sich selbst alles erarbeiten, wie ich es ja bei Tar-Archiven gemacht hab. Aber es ist halt ein sehr steiniger Weg.
Daher ist es mit PHP-Bordmitteln erstmal ohne weiteres nicht moeglich.
Mit PEAR hab ich mich noch nicht auseinandergesetzt. Kann man auf jedem Server einfach so PEAR-Komponenten nutzen oder koennte es da Probleme geben wenn man nicht gerade auf dem eigenen Server oder einem Root-Server arbeitet?


----------



## Matthias Reitinger (31. Juli 2005)

reptiler hat gesagt.:
			
		

> An die Beschreibung dieses Formates, insbesondere bei Microsoft-Formaten, zu kommen ist aber nicht immer unbedingt einfach.
> Natuerlich kann man sich selbst alles erarbeiten, wie ich es ja bei Tar-Archiven gemacht hab. Aber es ist halt ein sehr steiniger Weg.


Excel: http://sc.openoffice.org/excelfileformat.pdf
TAR: http://en.wikipedia.org/wiki/TAR_file_format#File_format_details


----------



## Dennis Wronka (31. Juli 2005)

Mit Tar bin ich bereits fertig.
Ein kleines Beispiel dazu kannst Du im Moment in der Tutorials-Inbox sehen, bist ja Admin. 
Trotzdem danke fuer den Link.


----------



## Sven Mintel (31. Juli 2005)

Wenn dieses Feature nur für dich gedacht ist, und du mit dem IE unterwegs bist, könntest du das auch mittels JScript/VBScript machen.

Du musst deine HP nur als vertrauenswürdig einstufen(sollte kein Problem sein, denke ich ) .... dann kannst du per Scripting die XLS-Datei öffnen und bearbeiten, z.B. irgendwelche Daten automatisch einfügen. Die kundendaten kannst du per XMLHttpRequest von einem PHP-Skript abfragen, welches sie wiederum aus der DB holt.

Es ginge natürlich auch per COM-Scnittstelle, wenn es ein Windows-Server mit installiertem Excel wäre... davon gehe ich aber eher nicht aus.

Ich würds aber auch als PDF machen.... ist eher angebracht für Rechnungen, falls du diese dem Kunden mailen oder sonstwie als datei zustellen willst.


----------



## Matthias Reitinger (31. Juli 2005)

reptiler hat gesagt.:
			
		

> Mit Tar bin ich bereits fertig.
> Ein kleines Beispiel dazu kannst Du im Moment in der Tutorials-Inbox sehen, bist ja Admin.
> Trotzdem danke fuer den Link.


Ich wollte dir nur zeigen, dass es eigentlich unnötig war, sich das Dateiformat selber zu erarbeiten  

Zur PEAR-Installation bei einem Webhoster: http://builder.com.com/5100-6371-5163311.html


----------



## Dennis Wronka (31. Juli 2005)

Matthias Reitinger hat gesagt.:
			
		

> Ich wollte dir nur zeigen, dass es eigentlich unnötig war, sich das Dateiformat selber zu erarbeiten
> 
> Zur PEAR-Installation bei einem Webhoster: http://builder.com.com/5100-6371-5163311.html


Naja, aber es war interessant und ich hab wieder was gelernt.
Ich find das war die Arbeit durchaus wert.

Ich probier mich ja gern mal an neuen Sachen, auch gern komplizierten Sachen.
Daran kann man nur wachsen, auch wenn es erstmal schwierig ist.


----------



## Dr Dau (31. Juli 2005)

@Matthias, ich habe ja nicht gesagt "es ist nicht möglich" sondern "quasi unmöglich".
Und dass Notepad kein HEX-Editor ist, ist mir auch klar, ich wollte damit nur veranschaulichen dass es nicht damit getan ist die Datei "mal eben schnelll auszulesen" bzw. zu schreiben.


----------



## Matthias Reitinger (31. Juli 2005)

Dr Dau hat gesagt.:
			
		

> @Matthias, ich habe ja nicht gesagt "es ist nicht möglich" sondern "quasi unmöglich".
> Und dass Notepad kein HEX-Editor ist, ist mir auch klar, ich wollte damit nur veranschaulichen dass es nicht damit getan ist die Datei "mal eben schnelll auszulesen" bzw. zu schreiben.


Dann hättest du „quasi unmöglich“ durch „nicht trivial“ ersetzen müssen  Dann wär auch klar gewesen, was du meinst. Denn (quasi) unmöglich ist es definitiv nicht.


----------



## TXC -Freak (31. Juli 2005)

Dr Dau hat gesagt.:
			
		

> Schonmal nach FPDF gesucht?
> Damit kannst Du PDF's erstellen lassen.


Danke für den Tipp. Ich hab mir das ma angeschaut und bis jetzt funktioniert das einwandfrei. Ich denke, ich werde dann auf PDF umsteigen  Vielen Dank nochmal


----------



## Dr Dau (31. Juli 2005)

*hmpf* Ich werde das Gefühl nicht los dass sich im moment alle Admins/Mods gegen mich stellen.  
Vielleicht sollte ich mich besser auf die Seite derer gesellen, die nur nehmen und nicht geben.


----------



## Dr Dau (31. Juli 2005)

@TXC -Freak, bitte.


----------

