Excel öffnen und Daten auslesen in C#?

Gotenks

Mitglied
Hallo...

Ich habe mal eine Frage:
Ist es möglich, dass ich mit C#, Excel 2007 (COM-Veweis hinzugefügt) starten kann und deren Datensätze auslesen kann?

Ich habe eine Datei die lässt sich NUR mittels MS Excel öffnen!
Ich kann sie nicht mittels OleDb oder ähnliches implementieren...
jz dachte ich mir ich öffne während mein Programm im Hintergrund MS Excel, doch kann ich dann noch mittels Visual Studio auf diese Datensätze zugreifen?

http://blog.stefan-macke.com/2006/06/28/c-projekt-zugriff-auf-excel-dateien/
Hier mal Link, doch hier wird meine Frage NICHT beantwortet :)

Lg
 

Gotenks

Mitglied
So ich habe es nun geschafft die Datei mittels Excel über C# zu öffnen :D

Doch wie schaffe ich es nun diese Datensätze auszuwählen?
Z.B. so:
C#:
 while (dr.Read())
            {
                Zeile Zeilen = new Zeile();               
                
                Zeilen.KundenN = Convert.ToString(dr[1]);
                if(!dr.IsDBNull(2))
                Zeilen.Bank = Convert.ToInt32(dr[2]);
                if (!dr.IsDBNull(3))
                Zeilen.BankNa = Convert.ToString(dr[3]);
                if (!dr.IsDBNull(4))
                Zeilen.KontoN = Convert.ToInt32(dr[4]);

                row.Add(Zeilen);


            }

so es soll eine schleife durchgeführt werden und in eine variable gespeichert werden.?

lg
 

Schormi

Mitglied
Hallo,

ich weiß jetzt nicht genau was du willst aber ich versuchs mal.

aus Excel lesen:
Code:
while (worksheet.Cells[x, 1] != null) //bin nicht sicher ob null oder leer
                {
                    merkbestelldatum.Add(Convert.ToString(worksheet.Cells[x, 1].Value));
                    merklieferant.Add(Convert.ToString(worksheet.Cells[x, 2].Value));
                    merkbestellnummer.Add(Convert.ToString(worksheet.Cells[x, 3].Value));
                    merkbestätigungsnr.Add(Convert.ToString(worksheet.Cells[x, 4].Value));
                    merkbestellmenge.Add(Convert.ToString(worksheet.Cells[x, 5].Value));
                    merkwareneingang.Add(Convert.ToString(worksheet.Cells[x, 6].Value));
                    x++;
                }

schreiben für 16 zeilen z.B:
Code:
for (int i = 16; i < (bestellmenge.Count + 16 - count); )
                {
                    if (bestelldatum[index] != "" && bestellnr[index] != 0)
                    {
                        if (bestelldatum[index] != null) worksheet.Cells[i, 1].Value = bestelldatum[index].Substring(0, 10);
                        worksheet.Cells[i, 2].Value = lieferant[index];
                        worksheet.Cells[i, 3].Value = bestellnr[index];
                        worksheet.Cells[i, 4].Value = "";
                        worksheet.Cells[i, 5].Value = bestellmenge[index];
}

was dir vielleicht noch helfen könnte: "RunningObjectTable"