Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Geburtstage in CSV-Datei für Outlook-Import

Hallo,

ich möchte für die Firma in der ich arbeite, eine PHP-Seite mit Kalender erstellen, auf der man auch eine immer aktuelle CSV-Datei runterladen und im eigenen Outlook importieren kann.
Mit Kalender und soweiter das geht, mein Problem ist jetzt folgendes:

Ich möchte mit PHP eine CSV-Datei erstellen. Jedes mal beim aufrufen einer Seite, wo eine Tabelle mit Namen und Geburtsdaten ist, wird diese Datei neu geschrieben, und auf der Seite gibt's einen Link, sodass die Datei runtergeladen werden kann.
Die Datei soll eine Kommagetrennte CSV-Datei sein und wie folgt aussehen:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Mein Problem ist genau, dass zum einen beim Schreiben in eine CSV-Datei mit fputcsv, er jedes 'Feld' in dem ein Leerzeichen steht in Anführungszeichen setzt ("Zum Beispiel").
Zum anderen hab ich das Problem, dass die Datei nicht in Outlook importiert werden kann, ich glaube dies liegt am Format der Datei, weiß aber nicht genau wie diese formatiert werden muss. Beim öffnen der erstellten Datei im Editor fragt er ob die Datei ins DOS-Format umgewandelt werden soll, ist das der Grund, reicht und geht das? Bei der Vorlage (eine Datei die bisher händisch gepflegt ist) wird nicht gefragt.

Hier nochmal mein Code:
Code:                   In Zwischenablage kopieren (nur IE)
2">

Hier gehts zum Orginal Eintrag "Geburtstage in CSV-Datei für Outlook-Import" im Forum

Antworten

Zitat:
Cenny postete
Mein Problem ist genau, dass zum einen beim Schreiben in eine CSV-Datei mit fputcsv, er jedes 'Feld' in dem ein Leerzeichen steht in Anführungszeichen setzt ("Zum Beispiel").
Auf wikipedia.org habe ich schon gesehen, dass Anführungszeichen genutzt werden, um bestimmte Sachen zu unterbinden. Ich schätze also mal, dass Outlook damit klar kommen würde, oder besser gesagt hoffe es!
Aber das andere Problem habe ich immernoch, und das ist auch dringender.

Hierzu habe ich etwas mit BOM (Byte Order Mark) gelesen, kann mir das weiterhelfen? Kann mir jemand sagen, wie man BOM's benutzt? Kenn mich damit leider überhaupt nicht aus und mit den Links die ich im Internet finde kann ich nichts anfangen.

Danke, Cenny..


2.

hmm, also wie ich sehe kannst du deine daten schön wie du willst in eine csv datei schreiben, aber du weisst nicht was dort drin genau stehen sollte damit outlook es richtig importiert, richtig?

wie wärs wenn du mal von outlok exportierst und dir dann so eine csv datei ansiehst? :)


3.

Zitat:
mYkon postete
hmm, also wie ich sehe kannst du deine daten schön wie du willst in eine csv datei schreiben, aber du weisst nicht was dort drin genau stehen sollte damit outlook es richtig importiert, richtig?
Doch, was da drin stehen soll, weiß ich schon. aber ich habe das Problem, dass die Datei scheinbar nicht das richtig Format hat, damit Outlook diese Datei importieren kann..


4.

also exportieren kannst du csv? importieren kannst du csv? da gits doch kein problem... wenn er fragt ob ers im dos modus einlesen soll... ja klicken fertisch :)

komm wieder wenn etwas nicht funktioniert... nicht wenn du dir nicht 100% sicher bist obs nicht funktioniert oder doch.... für das kann man es testen :)


5.

Scheinbar habe ich mich nicht richtig ausgedrückt.

Also, nochmal:
Ich habe eine Vorlage, mit der das Importieren in Outlook geht. Diese wurde jedoch händisch gepflegt (geändert, nicht neugeschrieben). Um das Pflegen zu automatisieren, soll auf der Seite eine CSV-Datei erstellt werden, diese wird jedes mal beim Aufrufen der Seite neu geschrieben. Beim Klicken auf den Link kann man also die aktuelle Datei herunterladen, bei Outlook importieren und wieder löschen (zumindest soll dies in der Theorie möglich sein). Das importieren in Outlook klappt jedoch nicht. Wenn ich die automtisch erstellte Datei im Editor (UltraEdit-32) öffnen möchte um diese mit der Vorlage zu vergleichen, fragt er mich bei der automatisch erstellten Datei, ob diese ins DOS-Format gewandelt werden soll. Dies tut er bei der Vorlage nicht.
Wie kann ich die Datei erstellen, sodass sie im DOS-Format ist, oder muss ich ein bestimmtes Format wählen? Wenn ja wie?


6.

kurz und bündig: du brauchst eine csv datei im dos format das sich in outlook importieren lässt...?


7.

Genau, und wie kann ich mir die mit php erstellen?


8.

Den richtigen Zeichensatz und die richtigen Zeilenenden verwenden!!

Win braucht \r\n als Zeilenende


9.

kannst du mir auch den Zeichensatz sagen?


10.

Leider nicht....


11.

Hallo,

hab's gestern noch geschafft und wollte mich nur nochmal eben bedanken.
Der Zeichensatzt war, so wie er war ok, weiß nicht ob's egal ist, aber es hat gereicht, die Zeilenenden mit den regulären Ausdrücken \n durch die regulären ausdrücke \r\n zu ersetzen, das habe ich wie folgt gemacht. Nach dem Schreiben in die Datei habe ich sie nochmal eingelesen und in eine Variable geschrieben. Diese Variable konnte ich mit preg_replace bearbeiten und \n durch \r\n ersetzen und wieder in die gleiche Datei speichern.
Hier der neue Code, für Andere mit selbigen Problemen:
Code:                   In Zwischenablage kopieren (nur IE)
3">

Also, vielen Dank!
Und allen anderen: Viel Erfolg!
Cenny..


Hier gehts zum Orginal Eintrag "Geburtstage in CSV-Datei für Outlook-Import" im Forum
 
phpforum.de | Impressum | Handy Bundles