PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Via PHP: in gezielte Excel-Tabellenblätter ausgeben?


mapel110
2008-06-04, 16:17:10
Kann ich aus PHP heraus ein Tabellenblatt eines Exceldokuments direkt ansprechen?

bzw ich will ja nach Excel exportieren und habe meinen entsprechenden Header.

<?
session_start();
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=export.xls");
$test="testinhalt";
?>
<html>
<head>
<meta name="author" content="Michael Apel">
<meta name="editor" content="Geany 0.14">
</head>
<body>
<table id="bla"><tr><td><?=$test?></td></tr></table>
</body>
</html>

Bekomme ich den Inhalt irgendwie gezielt in eine Tabelle, die ich vorher bezeichne?

Ziel ist es, mehrere Tabellen eben übersichtlich nach Excel zu exportieren. :)

Birdman
2008-06-04, 16:51:48
Die Billigmethode für Excel export ist ja, eine HTML Tabelle zu schreiben und dem File dann einfach eine .xml Dateiendung zu geben - öffnet das Excel dann wunderbar :D

mapel110
2008-06-04, 16:54:34
Ja, geht ja auch schon, mach ich ja. Aber ich will mehrere Dinge in eine Exceltabelle, dort aber in unterschiedliche Tabellenblätter, einfügen.

PHP-Inhalt1 --> Datei1 --> Tabelle1
PHP-Inhalt2 --> Datei1 --> Tabelle2
etc pp

The_Invisible
2008-06-04, 17:03:15
schau dir mal http://pear.php.net/package/Spreadsheet_Excel_Writer/ und http://www.codeplex.com/PHPExcel an

aber leicht ist es sicher einzenle dateien dafür zu erzeugen.

mfg

mapel110
2008-06-05, 09:40:12
Okay, da ich hier nichts auf den Servern installieren darf, hat sich das wohl erledigt. Jetzt werd ich wohl in mehrere Dateien ausgeben.

Dennoch Danke für die Links. Schon geil, was alles möglich ist mit PHP und Erweiterungen.

darph
2008-06-05, 10:45:13
Wäre es nicht vielleicht sinnvoller, das Ganze in eine CSV-Datei zu tun? Dann mußt du dich nicht mit dem Excel-Format abtun und gibt's einfach deine Tabelle im Klartext aus. Header vorher mitschicken, damit der Browser die Datei runterladen und nicht darstellen will.

Excel kann mit CSV ja um.


Übrigens hat eine HTML-Tabelle gaaar nyx mit Excel oder einem anderen Tabellenverwaltungs-Dateiformat zu tun.

Vergiß es. Du brauchst ja mehrere Blätter. ;(

Berni
2008-06-05, 12:24:27
Okay, da ich hier nichts auf den Servern installieren darf, hat sich das wohl erledigt. Jetzt werd ich wohl in mehrere Dateien ausgeben.

Dennoch Danke für die Links. Schon geil, was alles möglich ist mit PHP und Erweiterungen.
PEAR ist nur eine Klassenbibliothek. Es gibt zwar der Einfachheit halber einen Installer, aber man kann auch einfach die reinen php-Dateien (gibts auf der Seite zum Download) runterladen und auf den Server packen.

Wenn mans manuell macht muss man halt auf die Abhängigkeiten achten (also mal schauen was alles unter require bzw. include in den php-Dateien steht bzw. in der package.xml stehts auch drin). In dem Fall brauchst du noch http://pear.php.net/package/OLE/ und das base-Paket http://pear.php.net/package/PEAR/ (nur jeweils die php-Dateien daraus, die andern Dateien kannst du weglassen).

mapel110
2008-06-05, 15:49:01
Ich schau mir das wohl heute Abend zu Hause an. Danke.

Irgendwie steig ich da noch nicht durch, was ich wo runterladen und wohin kopieren muss. Sind das nicht Linux-Archive?
Wenn ich wirklich nur ein paar PHP-Files includen muss, bekomm ich das aber hin.

Berni
2008-06-05, 17:16:35
Das sind tar.gz-Dateien, ist also im Grunde wie ein ZIP-Archiv. Kann man mit WinRAR oder Ähnlichem auch unter Windows entpacken.

Edit: Hab dir hier mal ein fertiges lauffähiges Paket zusammengepackt mit allen Abhängigkeiten unter http://rapidshare.com/files/120290907/PEAR.rar.html . Die test.php enthält das Beispiel aus der Doku. Das andere von The_Invisible vorgeschlagene kannst dir ja auch mal anschauen und vergleichen was du einfacher zu benutzen findest.

mapel110
2008-06-06, 13:36:30
Wow, hab ich Glück, dass ich nochmal in den Thread schaue. Ich hatte gestern dein Edit noch nicht gesehen.

Danke, ich werds gleich testen.

Gast
2008-06-07, 18:17:33
Du könntest das ganze doch über OleDb machen. Du erstellst z.B. eine Exceldatei als Vorlage und stellst dann dorthin dann eine OleDb Verbindung her. Dann kannst du die Excel Datei normal über SQL Statements füllen.