CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
08.09.2013, 19:41:37
|
Anfänger
|
|
Registriert seit: Nov 2003
Beiträge: 91
|
|
csv erstellen, Strichpunkt im Inhalt
Hallo
Ich sollte ein CSV-File erstellen, für ein Excel-Export. Nun gibt es leider innherhalb des Textes Texte mit Strichpunkt(;) und das Excel trennt logischerweise dort. Doch das ergibt dann ein unbrauchbares Resultat.
Kann ich die von untershciedlichen User erfessten ; markieren, damit das Excel dies nich erkennt?
PHP-Code:
$file = 'Liste'; // csv name.
$select = "SELECT ...FROM ...";
$result = mysql_query($select,$link);
$num =mysql_num_rows($result);
$i = 0;
for ($i=0;$i<$num;$i++)
{
$row=mysql_fetch_array($result);
$csv_output .=$row['...'].";";
$csv_output .=$row['....'].";";
$csv_output .=$row['information'].";";
$csv_output .= "\n";
}
$csv_output .="Schluss;";
$csv_output .=date("d-m-Y_H-i",time()).";";
$csv_output .= "\n";
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$file.".csv");
print $csv_output;
exit;
Wie muss ich es machen, dass die ; im $csv_output .=$row['information'].";"; nicht Zellen Trennen
Danke
|
08.09.2013, 22:22:35
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Zitat:
Zitat von Riegelhaus
Ich sollte ein CSV-File erstellen, für ein Excel-Export. Nun gibt es leider innherhalb des Textes Texte mit Strichpunkt(;) und das Excel trennt logischerweise dort. Doch das ergibt dann ein unbrauchbares Resultat.
Kann ich die von untershciedlichen User erfessten ; markieren, damit das Excel dies nich erkennt?
|
; == ;
Allerdings hat Excel möglicherweise mit dem Zeilenumbruch ein Problem:
Zitat:
PHP-Code:
$csv_output .=$row['...'].";";
$csv_output .=$row['....'].";";
$csv_output .=$row['information'].";";
$csv_output .= "\n";
|
Linux -> "\n"
Windows -> "\r\n"
Zitat:
Wie muss ich es machen, dass die ; im $csv_output .=$row['information'].";"; nicht Zellen Trennen
|
KA - Excel kommt mir nicht auf die Platte. Exportiere doch mal Deine Tabelle als CSV File. Dann weißt Du "aus erster Hand", wie es aussehen muß. Möglicherweise fehlen ein paar Gänsefüße...
|
09.09.2013, 16:11:16
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Dein Wunsch wäre frickeln, da Excel nicht wissen kann, wann du ein Semikolon als Trenner wünscht und wann nicht.
Alternative:
PHP-Code:
$csv_output .=$row['...']."\t";
$csv_output .=$row['....']."\t";
$csv_output .=$row['information']."\t";
$csv_output .= "\n";
Dann wird ein Tabstop statt eines Semikolons verwendet.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
13.09.2013, 07:18:57
|
Anfänger
|
|
Registriert seit: Nov 2003
Beiträge: 91
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Danke sysop das brachte mich ans Ziel
$csv_output .=$row['...']."\t"; machte jede Zelle in eine Zeile, konnte es so nicht gebrauchen.
Doch das geht
PHP-Code:
$feld1=$row['feld1'];
$feld2=$row['feld2'];
$information=$row['information'];
$csv_output .="$feld1;$feld2;$information";
$csv_output .= "\n";
Danke nochmals
|
14.09.2013, 13:27:13
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: csv erstellen, Strichpunkt im Inhalt
|
15.09.2013, 08:34:40
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Hi,
Zitat:
Wie muss ich es machen, dass die ; im $csv_output .=$row['information'].";"; nicht Zellen Trennen
|
Zitat:
Doch das geht ... $csv_output .="$feld1;$feld2;$information";
|
Wo ist da deiner Meinung nach der Unterschied?
Zitat:
Dein Wunsch wäre frickeln, da Excel nicht wissen kann, wann du ein Semikolon als Trenner wünscht und wann nicht.
|
Logo kann man Excel(oder anderen ;)) das beibringen.
Man kann auch Anführungszeichen maskieren etc.
test.csv
Code:
_;"\;,";;
1;2;"3""";"4;";5
Und mit der richtigen PHP Funktion ( strpos ?) kann man ja prüfen ob man es in Anführungszeichen setzt oder Anführungszeichen maskiert.
MfG
CKaos
PS: Beim Umlauten solltest du dir mb_convert_encoding anschauen und >hier< hat jemand ne Funktion dazu geschrieben.
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
15.09.2013, 09:39:22
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: csv erstellen, Strichpunkt im Inhalt
|
15.09.2013, 13:04:19
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Hi,
@Doku
Schon die beste Lösung nur fällt die Wahl des Zeilentrenners weg!
Aber vielleicht brauch er die Wahl nicht.
MfG
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
16.09.2013, 13:36:50
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Genau bei den vielen "Vielleichts" hakt es ja.
Wenn Semikola vollkommen unmotiviert in den Spalten vorkommen und keinerlei Regelmässigkeiten unterliegen, wird Excel (oder Andere ;-) ) mit obigem Code ein Problem bekommen.
Die Einträge in "" zu packen ist natürlich auch eine Variante.
fputcsv kann auch mit einem beliebigen Delimiter versehen werden.
Lösungen gibt es also zu Hauf, der Rest ist Coder-Sache....
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
17.09.2013, 16:22:16
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: csv erstellen, Strichpunkt im Inhalt
Zitat:
Zitat von sysop
Wenn Semikola vollkommen unmotiviert in den Spalten vorkommen
|
Davon sollte man immer ausgehen. Alles, was keine Zahl ist (das betrifft auch Zahlen mit Dezimalkomma anstelle des Dezimalpunktes), gehört zwischen zwei Anführungszeichen.
Murphy: "Wenn bei einer beliebigen mechanischen Vorrichtung irgend etwas falsch gemacht werden kann, so wird sich immer jemand finden, der das auch tut." oder
"Bei einer beliebigen Berechnung erweist sich die Größe, deren Richtigkeit für alle außer Frage stand, am Schluß als Fehlerquelle."
Zitat:
Die Einträge in "" zu packen ist natürlich auch eine Variante.
|
Es ist die einzig brauchbare Lösung.
Ob man nun auf Comma-separated oder semicolon-separated values besteht, kann man vorher klären.
Nachteilig an der Bibliothek ist, daß man bei der Zeilenschaltung nicht zwischen "\n", "\r" oder "\r\n" wählen kann.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:12:15 Uhr.
|