Excel in MySQL
Hallo ich habe eine für mich scheinbar unlösbare aufgabe bekommen..
Das Hauptproblem ist, dass ich noch nicht mal weiß, wie ich meine Frage stellen soll
Nun gut, fang ich mal an, also ich habe eine Excel Tabelle mit Daten. Eine Zeile enthält Namen, eine Spalte enthält Daten(Datum) und jede Spalte unter jedem Namen enthält einen Firmennamen. Es geht also um Kurzpraktika die eingetragen wurden.
So nun habe ich in PHP eine Seite gemacht, die Praktikumsdaten erfasst und in eine MySQL Datenbank schreibt. Das ganze ist tabellarisch untereinander aufgebaut, also eine Spalte für Namen, Betrieb, Datum, etc.
Nun brauche ich eine Art Automatismus der mir die Daten der Excel Tabelle nimmt, so anordnet wie ich sie brauche (also Reihenfolge & Anordnung der MySQL Tabelle), mir das ganze als *.csv speichert und dann in die MySQL Datenbank rüberzieht.
Ich beherrsche VB 6 und VB.NET. Gibts da ne Möglichkeit??? Das sind nämlich imens viele Daten, bei denen täglich neue dazukommen...
MfG,
J.R.
Das Hauptproblem ist, dass ich noch nicht mal weiß, wie ich meine Frage stellen soll
Nun gut, fang ich mal an, also ich habe eine Excel Tabelle mit Daten. Eine Zeile enthält Namen, eine Spalte enthält Daten(Datum) und jede Spalte unter jedem Namen enthält einen Firmennamen. Es geht also um Kurzpraktika die eingetragen wurden.
So nun habe ich in PHP eine Seite gemacht, die Praktikumsdaten erfasst und in eine MySQL Datenbank schreibt. Das ganze ist tabellarisch untereinander aufgebaut, also eine Spalte für Namen, Betrieb, Datum, etc.
Nun brauche ich eine Art Automatismus der mir die Daten der Excel Tabelle nimmt, so anordnet wie ich sie brauche (also Reihenfolge & Anordnung der MySQL Tabelle), mir das ganze als *.csv speichert und dann in die MySQL Datenbank rüberzieht.
Ich beherrsche VB 6 und VB.NET. Gibts da ne Möglichkeit??? Das sind nämlich imens viele Daten, bei denen täglich neue dazukommen...
MfG,
J.R.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 131739
Url: https://administrator.de/contentid/131739
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
8 Kommentare
Neuester Kommentar
Hi,
nur mal so als Idee, weil ich mit der eigentlichen DV nicht so viel zu tun habe: Excel kann VBA, also VB für Applications, Du kannst Makros bauen und alles. Also kannst Du auch so eine Datei automatsich starten (per batch), mit Autostartmakro versehen, was das alles sortiert und exportiert und dann eine SQL-Anweisung (in der batch), die die Daten dann an mySQL übergibt.
Falls das Ganze auf zwei Rechnern läuft, beides zeitgesteuert, auf dem mySQL-Server fragst Du dann jede Minute oder wie oft Du das brauchst, ab, ob es schon neue Daten gibt und wenn ja, dann hopp, importieren.
nur mal so als Idee, weil ich mit der eigentlichen DV nicht so viel zu tun habe: Excel kann VBA, also VB für Applications, Du kannst Makros bauen und alles. Also kannst Du auch so eine Datei automatsich starten (per batch), mit Autostartmakro versehen, was das alles sortiert und exportiert und dann eine SQL-Anweisung (in der batch), die die Daten dann an mySQL übergibt.
Falls das Ganze auf zwei Rechnern läuft, beides zeitgesteuert, auf dem mySQL-Server fragst Du dann jede Minute oder wie oft Du das brauchst, ab, ob es schon neue Daten gibt und wenn ja, dann hopp, importieren.
Also in PhP würde das so aussehen.
#!/usr/bin/php
<?php
$DieDaten = File( "Daten.txt" ); // Die Daten aus Excel mit ";" als trennzeichen
$namen = trim( $DieDaten ); // hier sind die namen
$namen = explode( ";", $namen ); // trennzeichen semikolion
$fP = fOpen( "4MySQL.csv", "w" );
// Ab hier daten
for( $x=1; $x<count( $DieDaten ); $x++ )
{
$betrieb = trim( $DieDaten[$x] );
print ".";
if( strlen( $betrieb ) <= 1 ) continue;
$betrieb = explode( ";", $betrieb );
// Datum wie MySQL es gerne mag.
$datum = substr( $betrieb, 6, 4 ) ."-". substr( $betrieb, 3, 2 ) ."-". substr( $betrieb, 0, 2 );
for( $y=1; $y<count($betrieb); $y++ )
{ fWrite( $fP, $namen[$y] .";". $betrieb[$y] .";". $datum ."\r\n" ); }
}
fClose( $fP );
?>
Hi
habe mal zu Hause nachgeschaut, wie ich das einmal gemacht habe:
wenn du ein Excel (.xls) hast und eine mySQL-DB, müssen die Spaltennamen in der Excel-Datei genau gleich heissen wie in der DB.
Dann würde ich dir empfehlen, die .xls-Datei mit Calc von OpenOffice zu öffnen und von OO als CSV zu exportieren. Dies, weil OO die Datensätze besser abtrennt (wähle den Strichpunkt als Trennzeichen).
Danach kannst du die exportierte CSV-Datei über phpMyAdmin in die Datenbank importieren.
habe mal zu Hause nachgeschaut, wie ich das einmal gemacht habe:
wenn du ein Excel (.xls) hast und eine mySQL-DB, müssen die Spaltennamen in der Excel-Datei genau gleich heissen wie in der DB.
Dann würde ich dir empfehlen, die .xls-Datei mit Calc von OpenOffice zu öffnen und von OO als CSV zu exportieren. Dies, weil OO die Datensätze besser abtrennt (wähle den Strichpunkt als Trennzeichen).
Danach kannst du die exportierte CSV-Datei über phpMyAdmin in die Datenbank importieren.