Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Tool um Excel Daten in Db einzufügen (https://www.delphipraxis.net/181432-tool-um-excel-daten-db-einzufuegen.html)

theoneand 14. Aug 2014 08:24

Datenbank: Sybase • Version: 12 • Zugriff über: TasaSession, TasaSet

Tool um Excel Daten in Db einzufügen
 
Hallo,

suche gerade eine Idee für mein Abschlussprojekt in meiner Ausbildung zum Anwendungsentwickler.
Der zeitliche Rahmen sollte 70 Stunden nicht überschreiben (inklusive Dokumentation, Lastenheft, Pflichtenheft usw.)

Jetzt zu meiner Frage, was haltet ihr von einem Tool welches Excel Daten in eine SQL Datenbank einlesen kann.
Aber nicht nur simpel einlesen, sprich 1 zu 1 übernehmen, es sollen verschiedene Möglichkeiten bestehen.

Ich hatte daran gedacht im Programm zwei Grids zu setzten, das eine simuliert die DB und das andere die Excel Datei.
User hat die Möglichkeit eine Excel Datei zu laden, als Vorschau werden dann im unteren Grid 5 Zeilen der Excel Datei angezeigt.
Dann hat er die Möglichkeit sich mit der gewünschten DB zu verbinden.
In einer Comobobox werden dann sämtliche Tabellen der DB aufgelistet.
Wird eine Tabelle ausgewählt, erscheint eine zweite Comobox, welche alle Spalten der Tabelle auflistet.
Wenn der Anwender nun eine Spalte auswählt wird der Spaltennamen in das obere Db-Grid eingetragen, so kann der user die Spalten festlegen in welche die Excel-Datei eingelesen
werden soll. (Natürlich soll auch möglich sein, in mehrere SQL Tabellen einzulesen)
Dann wird per Drag and Drop vom Excel-Grid die Spalte dem DB-Grid zugeordnet und farbig markiert.
Außerdem sollen auch Modifikationen der Spalten möglich sein(also veränderung der Excel-Daten):
1. Spalten Verbinden: Bspw. aus Strasse und Hausnummer ein Feld in der Db machen
2. Rechnungen: Bspw. Rabatte von Preisen ausrechnen
3. Kürzel voranstellen oder anhängen: Bspw. Bei Arikelnummer einen Zusatz B-xxxxx


gibt es Sowas in der Art schon?? Hab jetzt nichts vergleichbares gefunden....
Vielleicht könntet ihr mir ein kleines Feedback von meiner Idee geben, was ihr davon haltet, oder evtl. Verbesserungen, Anregungen

Grüße

Mschmidt 14. Aug 2014 09:11

AW: Tool um Excel Daten in Db einzufügen
 
Hi, sofern du von einer MS-SQL Datenbank ausgehst, gibt's das schon - MS liefert das mit.

Tipps zur Umsetzung:
- achte auf leere Felder im Excel
- achte auf Formeln im Excel
- achte auf Datentypen (Zeichen, Zahlen, Gleitkomma)
- achte auf Contraints/Indizes/Primaries auf der Datenbanktabelle
- achte auf die verschiedenen Excel-Formate (XLS vs. XLSX)

:-) Mathias

Dejan Vu 14. Aug 2014 09:23

AW: Tool um Excel Daten in Db einzufügen
 
So ein Tool bringt nicht viel, denn die meisten RDBMS bringen ihre eigenes Werkzeug mit, um EXCEL-Dateien einzulesen. Des Weiteren gibt es wesentlich mehr Szenarion, die Daten einzulesen, als die Du angegeben hast. Du willst eigentlich nur eine Tabelle aus EXCEL auf eine Tabelle in der DB Mappen, also
(EXCEL-Spalte --> Feldname). Das ist banal.

Speziell der Passus 'Natürlich soll auch möglich sein, in mehrere SQL Tabellen einzulesen' bedarf einen näheren Erläuterung. Wie soll das gehen? Pro Sheet eine Tabelle oder wie?

Es ist 1000x einfacher, die EXCEL-Datei 'irgendwie' in die DB zu saugen und von da aus die Daten zu konvertieren, aggregieren und zu verteilen. Da es sich im Anwendungsfall häufig um ein und die selbe EXCEL-Struktur handelt, schreibt man sich ein Skript, welches die Daten dann verteilt.

Edit: Ich lese gerade
Zitat:

suche gerade eine Idee für mein Abschlussprojekt in meiner Ausbildung zum Anwendungsentwickler.
Das ist natürlich etwas anderes.

Wie gesagt, in der Praxis vielleicht nur bedingt zu gebrauchen, aber als Abschlussprojekt sehr gut.

Ich denke, mit 70 Stunden bist Du knapp dabei. Nimm Dir nicht zu viel vor. Lieber beschränkter Funktionsumfang (EXCEL-Datei, DB, Tabelle aussuchen, dann das mapping) aber gut dokumentiert, als zu viel, halb fertig, buggy und Schrott-Doku.

Die Basisfunktionalität ist schon ausreichend vom Zeitumfang her. Schließlich willst Du ja auch eine schöne Softwarearchitektur, und die fällt nicht vom Himmel.

Los!

arnof 14. Aug 2014 10:07

AW: Tool um Excel Daten in Db einzufügen
 
Exceltabellen kannst Du öffnen wie eine normale Datenbank (TDataSet). Dann kannst Du alles auslesen und in die andere Datenbank übertragen:

Das geht via ADO

TADOConnection, dort den Connectionsstring rein:

http://www.connectionstrings.com/excel/

dann ist jede Karteikarte der Execldatei als eigenständige Tabelle da

mkinzler 14. Aug 2014 10:14

AW: Tool um Excel Daten in Db einzufügen
 
Zitat:

Speziell der Passus 'Natürlich soll auch möglich sein, in mehrere SQL Tabellen einzulesen' bedarf einen näheren Erläuterung. Wie soll das gehen? Pro Sheet eine Tabelle oder wie?
Dafür bräuchte man dann kein extra Tool. Ich vermute mal, die Daten müssen auf verscheidene Tabellen verteilt werden.

Zitat:

Es ist 1000x einfacher, die EXCEL-Datei 'irgendwie' in die DB zu saugen und von da aus die Daten zu konvertieren, aggregieren und zu verteilen. Da es sich im Anwendungsfall häufig um ein und die selbe EXCEL-Struktur handelt, schreibt man sich ein Skript, welches die Daten dann verteilt.
Kommt auf den Fall an, natürlich kann man das erst temporär in eine (Temp-)Tabelle schaufeln und dann umbuchen. Wenn sich das Format in der einzulesenden Exceltabelle ändert, bzw. es verschiedene Formate gibt, scheint es mir sinnvoller die Daten gleich in die "richtige" Tabelle einzulesen.

theoneand 14. Aug 2014 11:17

AW: Tool um Excel Daten in Db einzufügen
 
danke erst mal für die teilweise hilfreichen Antworten.

Vielleicht ist es nicht deutlich hervogetreten aus der Fragestellung:

Das Ganze ist als Abschlussprojekt für meine Ausbildung gedacht.


Mir ist bis jetzt bewusst, dass es nur möglich ist, die Daten von Excel 1 zu 1 in die DB zu übertragen,
um sie dort dann anzupassen, bzw zu verändern.

Mein tool soll ja diese Aufgaben schon übernehmen.

theoneand 14. Aug 2014 11:26

AW: Tool um Excel Daten in Db einzufügen
 
ich bin auch gerne offen für andere Vorschläge, muss auch nicht zwinged was mit Datenbanken sein,
falls jemandem etwas einfaällt.

Dejan Vu 14. Aug 2014 12:10

AW: Tool um Excel Daten in Db einzufügen
 
Zitat:

Zitat von mkinzler (Beitrag 1268639)
Dafür bräuchte man dann kein extra Tool. Ich vermute mal, die Daten müssen auf verscheidene Tabellen verteilt werden.

Da Du das vermutest, vermutest Du auch nur, das man dafür kein extra Tool benötigt. Ich wollte nachfragen, bevor ich nicht vermute, sondern weiß.

Zitat:

Kommt auf den Fall an,
Sehr selten passt das alles 1:1 (meine Erfahrung). Und daher ist der 'normale' (weil schnellste) Fall imho der, erst einmal alles mit quasi Default-Einstellungen in die DB zu saugen um anschließend (weil viel schneller) mit entsprechenden SQL-Befehlen ein Skript zu bauen.

Es ist unterm Strich wirklich schneller, das so zu machen, als (ich habe die SSAS vom SQL-Server vor Augen) sich durch irgendwelche Wizards zu klicken oder tolle Einstellungen per Combo vorzunehmen.

in TSQL wäre das
Code:
select * into #tempExecl from Openrowset(.....)
merge from #tempExcel
  into myDestination
...
Zitat:

Zitat von theoneand (Beitrag 1268649)
Mein tool soll ja diese Aufgaben schon übernehmen.

Also ich würde an deiner Stelle die Aufgabe und den Funktionsumfang klar definieren und zum Prof/Ausbildungsleiter gehen und ihm das vorstellen. Wenn Du das gut hinbekommst, wäre das -auch vom Umfang- ein Beleg für dein Können.

DSP 14. Aug 2014 12:24

AW: Tool um Excel Daten in Db einzufügen
 
Wie wäre es mit einer Währungsumrechnung? Holst grundsätzlich die Daten mal bei der EZB ab, berechnest und hinterlegst die Wechselkurse in einer Tabelle. Stellst einen Funktionsbaustein für die Währungsumrechnung in eine andere Währung zur Verfügung. Als Beispiel dann noch eine Testoberfläche und am schluss dann hier in die Code Libary :)

Kannst so komplex machen wie du willst, mit Mengen-/Preisnotierung, Kehrwerte, Multiplier, Basiswährung, unterschiedliche Kurstypen, Euro Konvertierung ... Ne nach Lust und Zeitbudget :)

Jumpy 14. Aug 2014 13:09

AW: Tool um Excel Daten in Db einzufügen
 
Hallo,

afaik sollen das sinnvolle Projekte sein, oder Teile/Module eines größeren Projektes. Entweder für einen Kunden oder für etwas internes. In der Realität sieht das wahrscheinlich oft anders aus, aber es sollte mMn schon etwas sein, was es nicht haufenweise gibt und was in der eigenen Firma tatsächlich gebraucht werden könnte. Daher vielleicht wirklich mal beim Ausbilder nachfragen, ob es nicht in der (für die) Firma irgendetwas gibt, dass man machen könnte.

Just my 2 cents.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:15 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz