MxSQL nach Excel exportieren

Pinky

Erfahrenes Mitglied
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
DIE LÖSUNG IST IN MEINEM LETZTEN POST
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Liebe Leute,

ein gutes neues Jahr wünsche ich euch.

Ich versuche, MySQL- Daten in eine Excelliste zu exportieren, dazu verwende ich das Script, dass ihr unter nachstehendem Link finden könnt:

http://www.webmaster-portal.de/Tutorial_3_Webmaster.html

Es funktioniert auch, das Excel wird erstellt, nur schreibt er mir alle Daten in ein Feld, und ich möchte halt, dass das Excel anschtändig gefüllt wird.

Kann mir jemand helfen, warum das es mir alles in nur ein Feld schreibt?

Herzlichen Dank für jegliche Antwort & einen ganz lieben Gruss
Euer Pinky
 
Zuletzt bearbeitet:
Moin,

dieses Tutorial gibt zwar vor, eine Excel-Tabelle zu Erstellen, tut es aber nicht, sondern erstellt nur ein CSV-Datenformat.

Du kannst mit PHPMyAdmin MySQL-DAten in eine "echte" XLS exportieren, die dann auch von Excel wie gewünscht dargestellt wird.
 
Guten Abend

So ist das. Nur hilft mir das in dem Moment nicht weiter. Gerne schildere ich euch meine Absicht:

Auf meiner HP kann eine Liste angezeigt werden, die auf MySQL basiert. Nun möchte ich, dass der User die Möglichkeit hat, die Liste über einen simplen Link zu exportieren. Dazu verwendete ich das Skript unter obigem Link. Doch lieder funktiniert es nicht (ebenfals wie oben beschreiben).

Ich weiss, dass über PHPMyAdmin eine Excelliste gezogen werden kann, die auch funktioniert, nur will ich nicht, dass jeder User auf die DB Zugriff hat. Darum möchte ich das über einen einfachen Link lösen. Doch das funktioniert ja bekanntlich nicht. Die Daten werden in das Excel geschrieben, doch lieder nicht in die verschiedenen Spalten und Zeilen, sondern ALLE Daten werden in EINE Zelle geschrieben. Und das kann ich nicht gebrauchen...!

Any solutions....?
Danke
Euer Pinky
 
Naja, dann müsstest du dir halt ein Skript suchen, welches wirklich xls-Files erstellt(denn das genannte tut dies wie erwähnt nicht), oder es rasch selber schreiben.

Das selberschreiben sollte halb so kompliziert sein, denn ein Blick in das, was PHPMyAdmin da bspw. exportiert, zeigt, dass dies im Grunde genommen nur eine simple HTML-Tabelle ist :)
 
Meine lieben,

ein netter Freund hat mir bei der Problemlösung geholfen. Anbei das Lösungsskript, doch zuerst ein kleiner Vermkerk. Unter der Variabel $my_field_names, können die Felder definiert werden, die das Skript aus der Datenbank in die Excelliste übernehmen soll. Selbsverständlich muss auch die Variabel $result mit dem eigenen SQL-Code angepasst werden. In meinem Fall ist diese in einer Session gespeichert, da mein Skript über eine Filterfunktion verfügt.

PHP:
<?
	header("Content-Type: application/vnd.ms-excel");
	header("Content-Disposition: attachment; filename=".date("Ymd", time())."_export.xls");

	$result = mysql_query($_SESSION['sql']) or die (mysql_error());
	$my_field_names = array("hier","können","felder","definiert","werden");
	$fieldcounts = count($my_field_names) - 1;
	$colspan = count($my_field_names);
	
	# DB-TITEL IN EXCEL SCHREIBEN
	echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"font-size:11px; font-family:Trebuchet MS;\">";
	echo '<tr><td valign="top" style="font-size:20px; height:50px; border:0px;" colspan="'.$colspan.'">Export per '.date("d.m.Y", time()).'</td></tr>';
	echo '<tr><td style="border:0px;"></td></tr>';
	echo "<tr>";

	for($i = 0;$i<=$fieldcounts;$i++)
	{
		echo '<td valign="top" style="font-weight:bold; background-color:#9ec85c;">';
		echo "<b>".ucfirst(str_replace("_"," ",$my_field_names[$i]))."</b>";
		echo "</td>";
	}
	
	echo "</tr>";
	#-->
	
	while($myrow = mysql_fetch_array($result))
	{
		echo "<tr>";
		
		foreach($my_field_names as $value)
		{
			$row = $myrow[$value];
			$row = trim($row);
			$row = rtrim($row);
			$row = str_replace("\n"," ",$row);
			$row = str_replace("\r"," ",$row);

			echo "<td valign=\"top\">";
			echo $row;
			echo "</td>";
		}
  		echo "</tr>";
	}

	echo "</table>";
?>

Herzlichen Dank für eure Hilfe und ein schönes Wochenende
Euer Pinky
 
naja....ein echtes Excel Dokument ist es nicht.
Das ist nen ganz normales HTML-Dokument, einfach mit der Erweiterung XLS.
Da du im Header beschreibst das es sich um ein Excel-Doc handelt (und du Excel installiert hast) wird halt Excel zum Anzeigen benutzt.
Könnte Excel kein HTML, würde es auch dieses Dokument nicht richtig darstellen können.
Wenn du es nun nach Word exportieren möchtest, nenne es doch einfach .doc :)

EDIT:
Habe es jetzt nicht getestet, aber kannst du dein so erzeugtes Excel-Dokument denn auch mit Excel bearbeiten (so wie alle anderen Excel-Dokumente, mit Formel und so....)?
 
Zuletzt bearbeitet:
Zurück