Excel Range erstellen



  • Hallo Leute,

    label_Titel.Text = "Kundenauswahl";
    
                Excel.Application xlApp;
                Excel.Workbook xlWorkBook;
                Excel.Worksheet xlWorkSheet;
                object misValue = System.Reflection.Missing.Value;
    
                xlApp = new Excel.ApplicationClass();
                xlWorkBook = xlApp.Workbooks.Open("C:\\Users\\Gero\\Desktop\\Rahmenaufträge.xlsx", 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
    
                for (int Nr = 3; Nr < 10; Nr++)
                {
    
                    string A = "A" + Nr.ToSting();
                    string B = "B" + Nr.ToString();
    
                    string Kundenname = xlWorkSheet.get_Range(A, A).Value2.ToString();
                    string Rahmennummer = xlWorkSheet.get_Range(B, B).Value2.ToString();
                    listView_Kundenauswahl.Items.Add(Kundenname, 0);
                    listView_Kundenauswahl.Items.Add(Rahmennummer, 1);
                }    
    
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
                listView_Kundenwahl.Show();
    

    Mit diesem Programmauschnitt habe ich das folgende Problem:
    Wie zu erkennen ist versuche ich mittels for-schleife die Excel Tabelle Spalte A von Reihe 3 bis zur Reihe 10 auszulesen und in der ersten Spalte meiner listView anzuzeigen. Mit der Rahmennummer soll das gleich in Spalte B und der zweiten Spalte in meiner Listview passieren.
    Mir ist klar das ich an dieser Stelle:

    string A = "A" + Nr.ToSting();
                string B = "B" + Nr.ToString();
    
                    string Kundenname = xlWorkSheet.get_Range(A, A).Value2.ToString();
                    string Rahmennummer = xlWorkSheet.get_Range(B, B).Value2.ToString();
    

    den Fehler habe. Ich kann in die Parameter von get_Range nicht einfach zwei string-Werte setzen sondern muss eine Excel range oder so (?) erstellen..
    Punkt ist nur das es im Endeffekt genau so aussieht, dass sieht man an diesem Programmabschnitt der fehlerfrei läuft:

    string Zeile2 = xlWorkSheet.get_Range("J1", "J1").Value2.ToString();
    

    Kennt jemand vielleicht eine einfache, da ich Anfänger bin, Möglichkeit dieses Problem zu beheben..?

    Bitte um hilfreiche Antworten

    Danke schonmal 🙂



  • Edit:

    r vergessen:

    [cpp]

    string A = "A" + Nr.ToString();
    string B = "B" + Nr.ToString();

    string Kundenname = xlWorkSheet.get_Range(A, A).Value2.ToString();
    string Rahmennummer = xlWorkSheet.get_Range(B, B).Value2.ToString();

    [/cpp]

    behebt das Problem nicht.

    Fehler Meldung:

    Null Reference Exeption nicht behandelt



  • Das ist das falsche Sub-Forum. Aber dein Problem kann ich trotzdem lösen.
    Was du in deinem Code machst, ist das du eine Range angibst. Also von welcher Zelle aus, bis zur welchen Zelle die Range geht, um somit z.B. einen Rand um diese Zellen zu ziehen, nur dort die Schrift zu vergrößern und so weiter. Damit kannst du aber nicht auf die Werte der Zellen zugreifen. Um das zu machen, brauchst du ein WorkSheet, womit du dann auf die Zellen 2 dimensional zugreifen kannst.
    D.h., wenn du die genauen Koordinaten deines Kundennamens und der Rahmennummer weißt, weist du dem WorkSheet das WorkBook zu, damit du zugriff auf die Tabellen der momentanen Exceltabelle bekommst.
    Dann kannst du sowas machen

    string Kundenname = excelWorkSheet.Cells[5, 6];
    

    Schau dir am besten dazu nochmal diesen Beitrag an:
    http://christian.bloggingon.net/archive/2008/09/05/exceldateien-mit-c-erstellen.aspx


Anmelden zum Antworten