AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Absicherung Excel-Import

Ein Thema von Mongfice · begonnen am 19. Jun 2009 · letzter Beitrag vom 23. Jun 2009
Antwort Antwort
Mongfice

Registriert seit: 26. Feb 2009
40 Beiträge
 
Delphi 7 Professional
 
#1

Absicherung Excel-Import

  Alt 19. Jun 2009, 11:20
Moin,
ich hätte mal ne ganz allgemeine Frage zu der ich ein paar Vorschläge/Ideen/Meinungen bräuchte.

Ich schreib grad ne Export/Import-Funktion nach/von Excel.
Hierbei soll der User nur einmal gefragt werden, ob er die Daten wirklich importieren will, danach wird genau dies dann auch getan - und ggf. bestehende Daten werden durch die neuen ersetzt.

Die Frage die sich mir nun stellt ist die, wie sichere ich ab, dass beim Import auch wirklich das Format vorliegt, dass ich erwarte?

Ein Sperren der Zellen kommt nicht in Frage bzw. nützt nicht unbedingt, da eine Bearbeitung der Excel-Tabellen durch einen User vorgesehen ist... - außerdem geht es mir eher darum, was passiert, wenn "versehentlich" eine falsche Excel-Datei im FileChooser ausgewählt wird...

Bisher hab ich folgende "Sicherungsmaßnahmen"
1. Überprüfung ob der Sheet-Name mit einem der erwarteten Namen übereinstimmt
2. Überprüfung ob die beim Export gesetzten "Überschriften" und "Header-Infos" an der richtigen Stelle sind
3. Überprüfung ob der Inhalt der Überschriften und Header das ist, was ich bei dem Sheet-Namen erwarte?
Dabei betrachten die Prüfungen 2+3 je nach Sheet-Namen 5-11 Zellen, die passen müssen.

Diese 3 Schritte werden für jedes Sheet in der Tabelle wiederholt. Sheets, die diese Prüfung nicht bestehen werden ignoriert und es geht mit dem nächsten Sheet weiter. Wenn ein Sheet den Test allerdings besteht, wird aktuell der Import gestartet. Wenn also die eigentlichen Daten trotzdem "Müll" sind, dann wird nicht mehr lange gefackelt und der Müll importiert - wobei ggf. vorhandene Einträge mit der kleinen Identifikation überschrieben werden...

Meint ihr das reicht?

Ich überlege noch ggf. den Inhaltstyp jedes einzelnen Eintrags in der Tabelle zu testen, aber das ist zum einen schwierig, da es durchaus vorkommt, dass einige Zellen leer sind und zum anderen bei entsprechend langen und vielen Sheets eigentlich zu aufwendig/langsam.

Mir ist klar, dass eine Absicherung gegen "mutwillige" Zerstörung nicht möglich ist, da man immer ein Sheet so manipulieren könnte, dass es die Prüfung besteht und die Datenbank trotzdem "zerstört". Es geht wie gesagt hauptsächlich darum ein versehentliches Zerstören der Datenbank zu verhindern - also die Wahrscheinlichkeit möglichst klein zu halten, dass ein willkürlich gewähltes Excel-Dokument die Prüfung irgendwie besteht.

Gruß
Mongfice
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Absicherung Excel-Import

  Alt 19. Jun 2009, 18:39
Hallo Mongfice,

Zitat von Mongfice:
Mir ist klar, dass eine Absicherung gegen "mutwillige" Zerstörung nicht möglich ist, da man immer ein Sheet so manipulieren könnte, dass es die Prüfung besteht und die Datenbank trotzdem "zerstört".
Wie meinst Du das mit Datenbank zerstören?

Wo kommen die Daten her?
Wo sollen sie hin?

Welche Verarbeitung innerhalb von Excel hast Du vor durchzuführen?
Willst Du mit Hilfe von Delphi das realisieren, oder nur in Excel?

Die Information sind etwas dürftig, um da Gezielt weiterhelfen zu können.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Alfredo

Registriert seit: 4. Mär 2008
Ort: München
264 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Absicherung Excel-Import

  Alt 19. Jun 2009, 19:03
Hallo Mongfice,

Du könnest dir beim Import den ersten Datensatz in Excel auslesen und die
Feldstruktur(Text,Zahl,Datum) überprüfen.


Gruß
Alfred
  Mit Zitat antworten Zitat
Mongfice

Registriert seit: 26. Feb 2009
40 Beiträge
 
Delphi 7 Professional
 
#4

Re: Absicherung Excel-Import

  Alt 22. Jun 2009, 07:35
Moin.
Also, die Realisierung des Imports und Exports würde wenn dann in Delphi erfolgen, die Excel-Datei selbst dient sozusagen nur als Datenspeicher - aber es ging mir halt weniger um spzeifische Code-Elemente als um allgemeine Ideen.

"Zerstörung" ist vielleicht übertrieben - ich meinte damit, dass man über den Import die Datenbank mit unbrauchbaren Daten füttert - und ggf. brauchbare Daten überschreibt.

Es geht mir an sich gar nicht um nen konkretes Projekt sondern eben um Ideen/Meinungen, was man machen kann und was es bringt - deshalb auch hier im "Programmieren allgemein".

Ich habe inzwischen überlegt ob ich ggf. beim Export die Meta-Daten der Excel-Datei (wie z.B. Author etc.) setzen und die ggf. dann auch überprüfen könnte - hilft aber auch nur gegen das versehentliche Auswählen einer falschen Datei.
In diesem Zusammenhang war mir dann noch eingefallen eine DB-Tabelle anzulegen, in der das Erstellungsdatum und z.B. ein Code registriert werden, aber auch den müsste ich ja irgendwo in der Excel-Datei (oder den Meta-Daten) hinterlegen.

Also nochmal, es geht darum, was ist möglich (unabhängig von irgendeinem Projekt) und was ist praktikabel/sinnvoll (also schnell ^^).

@Alfredo:
Mhh, joa, wenn man nen bestimmten Wechsel in der Feldstruktur hat, könnte man den auch leicht überprüfen. Wenn alle Felder die gleiche Struktur hätten (also z.B. nur Zahlen), dann wäre die Prüfung leider sehr sehr schwach - zumal die noch unter die "Standard"-Formatierung fallen würden.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Absicherung Excel-Import

  Alt 22. Jun 2009, 20:33
Hallo Mongfice,

wenn Du sowieso die Datei über Delphi laufen lässt, dann sorgen auch für die Verarbeitung in Delphi, am besten wird die gesamte Erzeugung und Verarbeitung in Delphi durchgeführt. Als Output ist dann nur noch die reine Excel-Datei.

Aber das hängt eigentlich immer vom konkreten Beispiel ab, wie man im einzeln vorgeht.

Nur schlecht finde ich es, mit verschieden Programmen auf eine Datei zuzugreifen und in jedem Programm eine Manipulation der Daten zu ermöglichen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Mongfice

Registriert seit: 26. Feb 2009
40 Beiträge
 
Delphi 7 Professional
 
#6

Re: Absicherung Excel-Import

  Alt 23. Jun 2009, 07:15
Mhh, ich überlege gerade an nem Szenario herum, in dem das von mir angedachte Problem so vorkommt, damit man vielleicht besser versteht, was ich meine...

Sehts mir nach, wenn's etwas Wirr ist ^^ geht wie gesagt eigentlich nur darum, wie man sowas absichern kann - weils mich halt allgemein ziemlich interessiert.

Sagen wir ich schreibe mir eine Adress-Kartei mit Delphi selbst.
Die Tabelle dafür sieht folgendermaßen aus:

ID, Name, Anschrift, E-Mail, Geburtsdatum

Jetzt hab ich 1 Million Freunde, für die ich nicht jede einzelne Adresse manuell eintippern will. Bzw. von denen mir teilweise die aktuellen Adressen gar nicht mehr bekannt sind.

Da ich aber auch nicht meine Datenbank bzw. mein Programm durch die Gegend schicken kann/will, exportiere ich die Daten nach Excel und verschicke diese Excel-Datei per E-Mail an den ersten meiner Freunde (ok, hier wirds wirr ^^ - mir fällt nur grad kein besseres Szenario ein), der seine Adresse einträgt und sie an den nächsten auf der Liste (Mail-Adresse steht ja drin) weiterschickt. Am Ende wird die vollausgefüllte Liste an mich zurück geschickt.
Jetzt möchte ich diese Excel-Tabelle wieder in meine Datenbank importieren, damit ich die Daten dort weiterverarbeiten kann (z.B. PopUp wenn jemand Geburtstag hat, was weiß ich).

Die Frage ist nun
1. wie kann ich absichern, dass nichts importiert wird, wenn ich z.B. aus Versehen nicht die Excel-Tabelle meiner Freunde auswähle, sondern - keine Ahnung - die Haushaltsabrechnung vom letzten Monat
2. (was ich fast für unmöglich halte) wie kann ich mich dagegen schützen, dass einer meiner Freunde ein Arsch ist und die Datei zwischendurch verändert hat (z.B. Anschrift und E-Mail ausgetauscht oder zwar die Überschriften gelassen, aber den Inhalt der Spalten vertauscht oder was weiß ich) um mich zu ärgern.

Dabei will ich nur einmal am Anfang gefragt werden, ob ich diese Datei wirklich importieren möchte oder nicht, und nicht 1 Mio. mal, bei jedem Datensatz.

Die Verarbeitung und die Prüfung und alles soll alles in Delphi erfolgen, nicht in der Excel-Tabelle selbst.

Export-/Import gibts ja in fast jeder Software irgendwie. Mich wurmt halt grad einfach die Frage, wie ich absichere, dass ich das was ich importiere auch verarbeiten kann - und welcher Aufwand dafür nötig/sinnvoll ist.

Gruß
Mongfice
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Absicherung Excel-Import

  Alt 23. Jun 2009, 09:46
Hallo Mongfice,

kurz und knapp gesagt, das kannst Du nicht.
was möglich ist, ist eine formale Prüfung der Daten, also sollten Namen immer mit einem Großbuchstaben anfangen, irgendwo in der Mitte einer Mail-Adresse sollte das @-Zeichen sein, usw.
(Es soll aber auch Funktionen für die Adressverifikation geben)

Eine inhaltliche Prüfung schaffst Du nur, wenn Du Dir die Daten selbst, Satz für Satz anschaust.

Was vielleicht noch machbar wäre, das Feld "Vorname" gegen ein Vornamenwörterbuch abzugleichen, das gleiche mit den Ortsnamen usw..

Da Du ein Beispiel konstruiert hast, sollte die "Wörterbuchmethode" wohl das Hilfsmittel Deiner Wahl sein. Eine andere Möglichkeit wäre es, Deinen vorhandenen Datenbestand mit den Imposrtdaten zu vereinigen und die "Doppelten" heraus zu löschen. Die Abweichungen, die dann noch übrig bleiben können echte oder gefakte Änderungen sein oder Schreibfehler oder Erfassungsfehler oder was auch immer.

Gruß
K-H
  Mit Zitat antworten Zitat
Mongfice

Registriert seit: 26. Feb 2009
40 Beiträge
 
Delphi 7 Professional
 
#8

Re: Absicherung Excel-Import

  Alt 23. Jun 2009, 10:18
Joa, 100%ige Sicherheit ist quasi unmöglich, dass ist mir klar.
Spätestens wenn man "Kenntnis des Systems" beim "Angreifer" als möglich erachtet kann natürlich eine Datei so erstellt werden, dass sie jede Prüfung besteht und trotzdem nur falsche Daten liefert.

Hab ja auch oben erwähnt, dass es eher um Ideen und die "Praktikabilität" geht.

Die Idee mit dem Abgleich mit nem "Wörterbuch" und der Adressprüfung ist gut, müsste man halt im Realfall testen ob's durchführbar ist - also wie die Daten ggf. wirklich aussehen, das Szenario war ja nur nen schnell herbeigeholtest Beispiel.

Genauso der Abgleich mit den vorhandenen Daten, wobei dann gesichert sein müsste, dass die Daten die ich habe noch denen entsprechen die in der Datei stehen - ich also nicht z.B. selbst gemachte Tippfehler bereits korrigiert habe - oder ich müsste bei Diskrepanzen doch einzeln nachfragen...

Sowas will ich *gg* Ideen, Vorschläge, Meinungen...

Was haltet ihr denn von meinen oben genannten Maßnahmen?
Bezieht sich halt auf nen einfaches "Test-Tool". Hab mir ne Excel-Datei angelegt und will das nun testweise als "korrekt" erkennen...
Ich denke gegen 1. - also versehentliche Falschauswahl sollte das schon recht gut helfen (wenn die Datenmenge bzw. Spaltenzahl/Sheetzahl groß genug ist).

Haltet ihr das schon eher für übertrieben oder gar sinnlos, weils eh keine 100%ig Sicherheit gibt, oder noch zu lasch?
Was würdet ihr tun, wenn ihr sowas absichern solltet/wolltet?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:54 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