hundertwasser
Goto Top

Probleme bei Daten aus mysql nach excel exportieren (nicht über phpmyadmin)

Hallo Gemeinde,

hier erstmal der Code:

$erg = $db->query_daten($sql);
$tsv  = array();
     foreach($erg as $row){ 		
$tsv  = implode("\t", $row);  
}
$tsv = implode("\r\n", $tsv);  

$fileName = 'mysql-to-excel.xls';  
header("Content-type: application/vnd.ms-excel");   
header("Content-Disposition:inline; filename=$fileName");  

echo $tsv;

Nun mein Problem.

Ich habe in einer Spalte sehr lange Zeichenfolgen, diese können auch nur aus Nummern bestehen.

Wenn ich nun das Ergebnis aus der Mysql-Datenbank nach excel portiere,
gibt mir excel die Zeichenkette (die nur aus Nummern besteht) als exponentialzahl aus.

Kann ich dies Verhindern?

Bei phpmysqladmin funktioniert das ja auch dort werden die zeichenfolgen richtig dargestellt.

Kann mir da jemand helfen
Danke im vorraus !!


-> Wieso kann ich nicht auf die Antwort antworten? Wollte Auf die Antwort Antworten aber geht nicht.

Dann halt so:
Es ist mir klar das ich von PHP nicht Excel manipulieren kann (schonmal nicht mit einfachen PHP mitteln).

Bei Mysqladmin funktioniert es ... wie machen die das?

Content-ID: 125659

Url: https://administrator.de/contentid/125659

Ausgedruckt am: 14.11.2024 um 15:11 Uhr

nxclass
nxclass 24.09.2009 um 09:27:54 Uhr
Goto Top
Ich schätze in der xls Datei sind keine Informationen zum Datentyp vorhanden !? - da kann Excel natürlich nur raten.
Evtl. reicht es schon nach dem Import die Datenfeld Typen in Excel anzupassen.
Guenni
Guenni 25.09.2009 um 08:00:43 Uhr
Goto Top
Hi hundertwasser,

du kannst Excel zwar nicht manipulieren, aber du kannst eine CSV-Datei mit

MySQL formatieren und ausgeben:

<?php

/*
Feldnamen auswählen(oder alle mit *) und Verzeichnispfad/Datei angeben.

Das Verzeichnis muß von jedem beschreibbar sein dürfen.

Alternativ: $query="select * into outfile 'tab2.csv'" . . . ohne Verzeichnispfad. 

Dann wird die Datei in das Datenbankverzeichnis geschrieben
*/

$query="select * into outfile '/home/tmp/tab2.csv'"  

			/* Trennzeichen für die Datenfelder angeben. */

			
			." fields terminated by ';'"  


			/* Festlegen, dass Felder mit " eingeschlossen werden */ 


			." enclosed by '\"'"  


			/* Datenquelle angeben */


			." from tabelle2";  


			mysql_query($query) or die(mysql_error());
?>

Die Datei nicht mit Excel öffnen, sondern importieren. In der Regel öffnet sich dann ein

Dialog, wo du die mit MySQL festgelegten Trennzeichen angeben und Zellen entsprechend

formatieren kannst.

Stichworte für Google: excel csv importieren


Gruß
Günni

PS.: In Excel Zellen nachträglich als Text zu formatieren bringt nix: da werden die

Exponentialzahlen lediglich links ausgerichtet.