AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Tool um Excel Daten in Db einzufügen
Thema durchsuchen
Ansicht
Themen-Optionen

Tool um Excel Daten in Db einzufügen

Ein Thema von theoneand · begonnen am 14. Aug 2014 · letzter Beitrag vom 15. Aug 2014
Antwort Antwort
Seite 1 von 3  1 23      
theoneand

Registriert seit: 21. Mär 2013
38 Beiträge
 
Delphi XE8 Professional
 
#1

Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 09:24
Datenbank: Sybase • Version: 12 • Zugriff über: TasaSession, TasaSet
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
  Mit Zitat antworten Zitat
Mschmidt

Registriert seit: 4. Jul 2010
Ort: Berlin
62 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 10:11
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
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 10:23
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!

Geändert von Dejan Vu (14. Aug 2014 um 10:39 Uhr)
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 11:07
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 11:14
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.
Markus Kinzler
  Mit Zitat antworten Zitat
theoneand

Registriert seit: 21. Mär 2013
38 Beiträge
 
Delphi XE8 Professional
 
#6

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 12:17
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.
  Mit Zitat antworten Zitat
theoneand

Registriert seit: 21. Mär 2013
38 Beiträge
 
Delphi XE8 Professional
 
#7

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 12:26
ich bin auch gerne offen für andere Vorschläge, muss auch nicht zwinged was mit Datenbanken sein,
falls jemandem etwas einfaällt.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 13:10
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
...
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.
  Mit Zitat antworten Zitat
DSP

Registriert seit: 10. Jul 2014
49 Beiträge
 
#9

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 13:24
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
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#10

AW: Tool um Excel Daten in Db einzufügen

  Alt 14. Aug 2014, 14:09
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.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.
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