Laden...

Einlesen und Berechnung bestimmter Werte aus Excel-Datei

Erstellt von CDV# vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.699 Views
C
CDV# Themenstarter:in
4 Beiträge seit 2018
vor 5 Jahren
Einlesen und Berechnung bestimmter Werte aus Excel-Datei

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.

4.931 Beiträge seit 2008
vor 5 Jahren

Wie genau liest du denn die Daten ein (mit welcher Technik/Technologie) und in welcher Datenstruktur?

C
CDV# Themenstarter:in
4 Beiträge seit 2018
vor 5 Jahren

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.

4.931 Beiträge seit 2008
vor 5 Jahren

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];

C
CDV# Themenstarter:in
4 Beiträge seit 2018
vor 5 Jahren

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ß

4.931 Beiträge seit 2008
vor 5 Jahren

Da mußt du dann schon eine Schleife verwenden, die alle Zeilen (Rows) durchläuft.