Excel/CSV Datei automatisch bearbeiten ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Excel/CSV Datei automatisch bearbeiten ?

Beitrag von Condor »

Hallo,

ich habe eine excel/csv datei, in der namen, nachnamen etc stehen.

Wie kann ich jetzt ein Script basteln, das mir diese Datei öffnet und bei
jedem Datensatz den namen nimmt und ihn als md5 verschlüsselt und in die nachbarspalte einfügt ?

Ist das überhaupt möglich mit PHP ?
Muss doch machbar sein, meiner Meinung nach, oder ?

Wäre sehr nett wenn ihr mir mal wieder helfen könntet.

Mfg
Condor
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: Excel/CSV Datei automatisch bearbeiten ?

Beitrag von mad-manne »

Condor hat geschrieben:Wäre sehr nett wenn ihr mir mal wieder helfen könntet.
Also zunächst mal ... machbar ist das mit einer csv-Datei, da dies eine reine Textdatei ist!

Die Frage wäre also, wie wir dir genau weiterhelfen können?

Hast du Probleme mit einem bestimmten Teil der Aufgabe oder möchtest du die komplette Lösung haben?

Kleiner Tipp zum prinzipiellen Aufbau eines solchen skripts:
  • Datei öffnen mittels fopen()
  • Zeilenweise einlesen mittels fgets()
  • Die Zeile in ihre Bestandteile zerlegen mittels explode()
  • die Daten aus der gewünschten "Spalte" mittels md5 verschlüsseln
  • die daten in der gewünschten Reihenfolge in eine andere zurückschreiben mittels ...
  • Bitte den rest selbst erforschen :wink:
Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hi,

das Problem ist nicht Öffnen (fopen) oder Einlesen (fgets), sondern
mit der Verschlüsselung und einfügen.

Mein genaues Problem:

Wie gesagt, die Datei ist eine Textdatei und ich kann nicht sagen, nimm die Spalte "Name" mach daraus md5(name) und füge es in Spalte "user_id" ein.
Bei einer DB kann ich ja die Spalten direkt ansprechen.
Hier sind die ja "virtuell", durch ein Kommata getrennt.

Wie kann ich da am besten vor gehen ?

Mfg
Condor
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Condor hat geschrieben:Wie kann ich da am besten vor gehen ?
Hatte ich dir doch geschrieben!
mad-manne hat geschrieben:Die Zeile in ihre Bestandteile zerlegen mittels explode()
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hi,

ja danke für die Tipps, aber mein Problem ist:

Wie sage ich ihm, nach dem es zerteilt wurde, füge den Wert XY da und da ein ?

Mfg
Condor
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Letzter Tipp erstmal bevor ich meine Moralpredigt ablasse :D
Du hast ja nun die Spalten in einem Array was von 0 bis n (Anzahl der Spalten aus deiner csv) indiziert ist.
Nun schreibst du genau diese einzelnen Spalten des Arrays zurück in eine neue Datei und "fügst" zwischen den Spalten, wo du deine neue Spalte einfügen willt ein

Code: Alles auswählen

md5($deinarray[$dein_index_der_zu_verschlüsselnden_spalte])
ein .. Trennzeichen dahinter .. fertig.

Moralpredigt
Entschuldige bitte .. kannst/willst du nun selbst programmieren, oder möchtest du ein fertiges Skipt haben?
Das hatte ich schonmal aus gutem Grund am Anfang gefragt.
Wenn ich dir das jetzt weiterhin Schritt für Schritt vorkaue(was ich vom Ablauf her übrigens ebenfalls bereits gemacht habe), wirst du zwar ein funktionierendes Programm haben. Verstanden hast du dann aber nix :o

Dieses Forum ist in erster Linie dafür gedacht Autoren bei konkreten Problemen Hilfe anzubieten und nicht um Instant-Scripte "zu bestellen". Wenn du also bei jedem Problem gleich wieder eine Rückfrage stellst anstatt selbst zu versuchen mittels der dir gegebenen Ratschläge selbst weiterzukommen .. dann wirst du es als Programmierer nicht weit bringen.
Sorry für die harten Worte, aber so sehe ich das.

FAZIT: Wenn du an einer vollständigen Lösung interessiert bist, dann stelle deine Anfrage in die Jobbörse .. ansonsten helfe ich dir gerne weiter vorausgesetzt ich kann erkennen, dass du selbst versuchst ein wenig mitzuarbeiten. Wie wäre es zum Beispiel damit dein bisher vorhandenes Script hier zu verlinken, damit man sehen kann, wie weit du schon bist ?

Nix für Ungut :wink:
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hi,

dankeschön. Habs jetzt so hinbekommen:

Code: Alles auswählen

<?php

$datei = fopen ("xy.csv", "r");
$fn="test.csv";
$fp=fopen($fn,"w");
while (!feof($datei)) {
$puffer = fgets($datei, 4096);

list($spalte1, $spalte2, $spalte3) = explode(";", $puffer);

$ver = md5($spalte3);
$text=$spalte1.";".$spalte2.";".$ver."\n";

fwrite($fp,$text);

}
fclose($fp);
fclose ($datei);
?>
Mfg
Condor
Zuletzt geändert von Condor am 16.03.2006 11:47, insgesamt 3-mal geändert.
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hi nochmal,

hab erst jetzt deinen Beitrag gelesen.

Was meinst du warum ich so frage ?
Ich hätte von Anfang an sagen können, das mir jemand ein fertiges Script bauen soll.
Das will ich aber nicht, weil ich davon nichts habe.

Ich stelle auch manchmal absichtlich dumme Fragen um an mein Ziel zu kommen.

Ich habe NIE gesagt das ich ein fertiges Script haben möchte, deshalb hättest du dir das mit der "Jobbörse" sparen können, da diese für mich uninteressant ist.

Ich finde das gerade nicht sehr nett.
Bei den Leuten die schreiben: "Hey, schreibt mir bitte ein Script das ... kann. Brauche es bis morgen. Cu", verstehe ich deine Aussage.
Sonst nicht.

Mein Beitrag ist nicht böse gemeint, soll nur eine Gegenkritik sein.

Ich danke dir trotzdem, da ich mein Problem mit dir gelöst habe.
Bis bald.

Mfg
Condor
Antworten

Zurück zu „Coding & Technik“