Excel Daten in DGV laden und per Button als XML speichern

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Sam85.

    Excel Daten in DGV laden und per Button als XML speichern

    Hallöchen,

    ich hab mal wieder eine Frage:

    Ich habe eine Excel Tabelle und würde diese gerne in ein DGV laden. Anschließend wollte ich die Daten im DGV per Button als XML abspeichern, um dann die Daten anschließend daraus zu Binden.
    Macht sowas Sinn? Oder sollte ich es einfach bei der Excel Tabelle belassen, anstatt noch zusätzlich auf ein XML überzugehen (wenn das überhaupt geht)?

    Freue mich über Feedback.
    Es stellt sich die Frage, ob das quasi ein Konverter Excel-zu-XML werden soll, um von Exceldaten wegzukommen und zukünftig alles im XML-Format zu speichern. Allerdings wäre dann wohl der direkte Gang einfacher, oder nicht?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Das Problem ist, die Liste mit den Daten wird dann über Excel hin und wieder ergänzt bzw. korrigiert (keine neuen Spalten, nur neue Zeilen oder in den bestehenden Zeilen).
    Daher wollte ich es aufgrund der Menge nicht über das DGV manipulieren sondern direkt in Excel. Daher meine zweite Frage, ob es dann überhaupt Sinn macht nachträglich in eine XML umzuwandeln?
    Obwohl mir dein Vorschlag mit dem direkten Gang sogar sehr gut gefällt, dann kann ich die Excel Datei ja weiterhin aktualisieren und die XML überschreiben, wenn das funktioniert?
    Machen wir es anders: Was erhoffst Du Dir von XML und DGV, wenn die Excel-Daten manipulierbar bleiben? Eine bessere Kontrolle/Filterung der Daten in VB? Da gibt es doch in Excel auch schon einiges an Möglichkeiten. Ansonsten importier doch Deine Excel-Daten in eine DataTable in VB.Net und binde das DGV dort ran. Dann kannst Du die XML weglassen.
    Wie oft werden denn die Excel-Daten verändert und wie oft das geplante DGV-Programm genutzt?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Tja was erhoffe ich mir davon :) eigentlich empfand ich das einbinden von XML Dateien als sehr angenehm, im Vergleich zu Access, bei Excel habe ich es noch nicht probiert.
    Die Veränderungen kommen in regelmäßigen Abständen vor, so ca. 1 bis 2 mal im Monat. Nur die Änderungen werden ggf. nicht von mir vorgenommen.
    Ok, ein Teil der Fragen ist beantwortet. Excel it also nötig und wird (auch) von anderen verwendet, um Daten zu ändern. Jetzt die Frage: Was versprichst Du Dir von der Verbindung der Daten mit VB.Net?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Bonusfrage:

    Reden wir hier nur von einer Excel Tabelle Die in dein DGV eingefügt wird?
    Wenn nein, verfolgen deine Excel Tabellen immer die gleiche Struktur?

    Bedeutet im Klartext: Wenn jmd anderes die Tabelle bearbeitet kannst/musst du gewährleisten das die Excel Tabellen dahingehend kompatibel mit deinem Programm bleiben, sodass nicht bei jeder Änderung gleich eine Exception fliegt

    VaporiZed schrieb:

    importier doch Deine Excel-Daten in eine DataTable in VB.Net und binde das DGV dort ran. Dann kannst Du die XML weglassen.


    So tät ich das auch machen. Man kann per "SQL" super easy die Daten aus der Excel Datei einlesen und als DataTable dem Grid anhängen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo
    @VaporiZed

    funktioniert das dann wie bei Access?
    Ich hatte es gerade soweit mit dem XML :) nur dazu hab ich eine kleine Nebenfrage (siehe Bild). Wie kommt das "ns1:" da rein und viel wichtiger, wie bekomme ich es wieder raus (umbenannt)?
    Ansonsten würde ich der Einfachheit halber, den direkten Weg über Excel auch mal probieren.

    PS: ist das der Weg dazu? msdn.microsoft.com/de-de/library/cc464080(v=vs.71).aspx

    PPS: Muss für den Nutzer Excel als Programm vorhanden bzw. können mehrer gleichzeitig das Form verwenden während es auf Excel zugreift?

    @Kameo

    ja die Struktur bleibt gleich und soll nicht manipuliert werden. Lediglich neue Zeilen oder Veränderungen in bestehenden Zeilen aber keine Spalten.
    Bilder
    • Bild.PNG

      12,59 kB, 338×574, 191 mal angesehen

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Sam85“ ()

    Bei Accessfragen bin ich raus. Was zeigt Dein Screenshot? Aus welchem Programm kommt der? Wie das ns1 reinkommt, lässt sich ggf. durch die Antwort auf die Frage klären, wie das gezeigte Konstrukt entstanden ist.
    Der auf MSDN verlinkt gezeigte Weg sieht doch ganz gut aus, obwohl ich ihn nicht probiert habe. Versuch's mal, mal sehen, wie weit es geht.
    Ob der MSDN-Weg auch ohne Excel klappt, kann ich nicht sagen, einfach probieren.
    Ob mehrere das VB-Programm verwenden können, hängt von der seit Post#4 unbeantworteten Frage ab, was man in dem Programm machen soll. Schreibzugriff oder nur lesend? Bei nur-Lese-Zugriff: ja, da könnten grundsätzlich ca. 1439842 User gleichzeitig Dein Programm laufen lassen. Mit Schreibzugriff wird's übel.

    btw: die "Steigerung" von PS (postscriptum, nach dem Schreiben) ist PPS (postpostscriptum)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Hätte wohl besser die ganze Seite nehmen sollen :) ... das Fenster kommt, wenn ich in Excel in der Entwicklerumgebung "Quelle" auswähle, um aus der Excel Datei eine XML Datei zu generieren.
    excel-easy.com/examples/xml.html
    Ja das lesen (also wenn das Programm dann läuft) ist von mehreren zu Nutzen, schreiben maximal einer. :)
    Ups :) Rechtschreibfehler :D..korrektur "PPS" statt "PSS"
    Wegen ns1 hab ich was gefunden.

    Sam85 schrieb:

    schreiben maximal einer

    Erfolgt das Schreiben nur über Excel oder nur über Dein VB-Prog oder ggf. über beides? Der Knackpunkt ist da einfach, dass es passieren kann, dass jemand Dein Programm nutzt, was in die Daten reinschreiben will und dann aber jemand kommt und gleichzeitig in die Exceldaten was reinschreiben will. Oder ist das mit dem in-die-Excel-Datei-ohne-Dein-Programm-zu-nutzen eine Art Datenupdate von offizieller Seite? Denn das ganze erinnert mich ein wenig an die 2-Wochen-Updates der ABDATA für Apotheken, wo dann die neuesten Medikamente, Rabattverträge, Preise usw. eingespielt werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für den Link! :D

    Es soll nur über Excel stattfinden, in VB wird das ggf. zu umständlich für den User.
    Hmm nein so wie ABDATA soll es nicht stattfinden :). Im Grunde ist es so, wir haben Daten auf PDF oder in anderen Excel Dateien die zusammen gelegt werden sollen, um mit der Form dann die Daten im Gesamten schneller zu filtern.
    Da die Daten aber häufig unterschiedlich auftreten, empfand ich es als einfacher vom Blatt in die Gesamttabelle zu kopieren, wo der User dann alles sauber anpassen kann, statt die Daten alle manuell abzutippen (über die Form).
    Zumindest war das mein Grundgedanke (bin auch nur blutiger Laie).
    Aha, dann mal meine Zusammenfassung mit eigenen Worten: Es gibt x Dateien (pdf, Excel) mit Daten. Diese Daten willst Du alle in Deinem VB-Prog zusammenführen. Dann willst Du diese Gesamttabelle dazu nutzen, um daraus Daten zu filtern, zu finden, zu sortieren, organisieren, wieauchimmer. Aber egal, was in Deinem Prog gemacht wird: Die Quelldaten werden nie von Deinem VB-Prog geändert, richtig? Falls ja, dann wär das endlich mal ne vollständige Restantwort auf Post#4.
    Dann ginge es nämlich nur darum, die Daten aus unterschiedlichen Dateien, die hoffentlich alle denselben Aufbau haben (inhaltlich, auch Spaltenreihenfolge, ...) in eine einzige DataTable zu importieren. Und wenn das der Fall ist, dann brauchst Du eigentlich nur den Excel-zu-DataTable-Import-Teil. Naja, und ggf. nen Import aus PDF.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Das eintragen in die Gesamttabelle erfolgt manuell, da die Stücke alle unterschiedlich aufgebaut sind..da geht leider kein Weg dran vorbei. :)
    Nur der Aufbau der Gesamttabelle ist fix, also wird der User die Daten, in die fixe Struktur, manuell eintragen, also in der Excel Datei.

    Die Form ist am Ende der "Filter"..es werden dann die Daten aus dem Datatable im DGV angezeigt, der ausgewählte Wert in Textboxen unterteilt, der User füllt weitere manuelle Textboxen aus und führt dann sein ausgewähltes Item zurück in ein anderes DGV welches dann als PDF gespeichert und ggf. auf Papier gedruckt wird...aber eins nach dem anderen :saint:
    Aha, also: manuelle Daten in die Exceldatei schreiben => diese Daten in die DataTable (verbunden mit DGV) packen => Daten ggf. ändern/ergänzen/bla => PDF => drucken. OK.
    Woran scheitert's jetzt noch? Oder ist dieser Thread jetzt erledigt?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Im Grunde bin ich jetzt zwischen der Wahl von xml und excel.
    Wobei ich bereits das Binding mit xml erfüllt habe.

    Das mit den TextBoxen in ein weiteres DGV zu übertragen, daran bin ich heute gescheitert.

    Weiter wollte ich den zweiten DGV dann als XML speichern und mehrere zeilen als eine "id" (vorgang) speichern, bzw. durch eine textbox eine fortlaufende Nummer generieren um diese dann wieder aufzurufen. Geht das?

    Dann noch der PDF print...ist also was zu tun. Aber dafür sollte ich dann wohl jeweils einen neuen Thread öffnen.

    Und was ich fast vergessen habe, ich wollte über ein ComboBox einen Filter auf den DGV mit dem DataTable umsetzen. Wie gehe ich da vor? Also habe z.b. in einer Spalte Kriterien 23 und 24, oder Arm und Bein. Nun will ich im DGV nur die mit Zeilen sehen mit 23 (Auswahl der ComboBox).

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Sam85“ ()