Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Einlesen und Berechnung bestimmter Werte aus Excel-Datei
CDV#
myCSharp.de - Member



Dabei seit:
Beiträge: 4
Herkunft: DE

Themenstarter:

Einlesen und Berechnung bestimmter Werte aus Excel-Datei

beantworten | zitieren | melden

Hallo,

Ich hoffe dass ich mit meiner Frage im richtigen Unterforum bin. Ich bin kein Neuling in der Programmierung mit C#, die Grundlagen kann ich. Jetzt möchte ich mit Visual Studio ein kleines Programm schreiben, weiss aber nicht genau wie ich anfangen soll.

Ich habe eine Tabelle in der verschiedene Werte stehen (MS office), diese lese ich mit dem visual studio ein, das klappt schonmal aber es wird alles was in der xls Datei steht eingelesen. Die Zahlen die sich in den Zeilen mit dem Text "Bestellmenge" und "Preis pro Stück" befinden möchte ich multiplizieren. Wie kann ich die Zellen ansprechen? Das Ergebnis soll in eine Textbox geschrieben werden und die fertige Tabelle als xml Datei gespeichert werden. Ich weiss dass man im Internet viele Beispiele findet, ich weiss im Moment nur nicht womit ich anfangen soll. Über ein paar tipps würde ich mich sehr freuen.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von CDV# am .
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3950

beantworten | zitieren | melden

Wie genau liest du denn die Daten ein (mit welcher Technik/Technologie) und in welcher Datenstruktur?
private Nachricht | Beiträge des Benutzers
CDV#
myCSharp.de - Member



Dabei seit:
Beiträge: 4
Herkunft: DE

Themenstarter:

beantworten | zitieren | melden

Ich mache das so: hier ein Codeausschnitt

private void Openxls(string Table)
        {
            this.table = Table;
            path = Application.StartupPath +   "\\Bestellungen.xlsx";
            string pathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";
            OleDbConnection conn = new OleDbConnection(pathConn);
            OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from [" + table + "$]", conn);
            DataTable dt = new DataTable();
            myDataAdapter.Fill(dt);
            dgvBestellmengen.DataSource = dt;

Die ausgefüllten Zeilen sollen in die Form

Produkt -> Beschreibung -> Lieferadresse -> Bestellmenge -> Preis pro Stück

mit den Zahlen möchte ich rechnen und am ende eine xml Datei erzeugen die ich danach woanders einlesen kann.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3950

beantworten | zitieren | melden

Die Daten stehen ja dann in der DataTable-Variablen dt, d.h. du kannst darauf (wie bei einem zweidimensionalen Array) zugreifen:


object wert = dt.Rows[zeile][spalte];
private Nachricht | Beiträge des Benutzers
CDV#
myCSharp.de - Member



Dabei seit:
Beiträge: 4
Herkunft: DE

Themenstarter:

beantworten | zitieren | melden

Danke für die Antwort. Ja so könnte ich das machen. Kannst du mir noch einen tipp geben wie ich die Berechnungen machen kann? Wie man eine Formel einfügt und wie man Zahlen multipliziert weiss ich.

Meine Tabelle hat ca 200 Einträge, mal mehr mal weniger, es kommt auf die Anzahl der Bestellungen an die ist jeden Monat anders. In Excel kann ich die Formel die in einer Zelle steht mit der Maus nach unten ziehen um alle Werte der Spalten B und C zu berechnen. Wie macht man das mit C#?

Gruß
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3950

beantworten | zitieren | melden

Da mußt du dann schon eine Schleife verwenden, die alle Zeilen (Rows) durchläuft.
private Nachricht | Beiträge des Benutzers