Autor Beitrag
schnubber
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 11.05.12 12:15 
Hallo,
Hab ein programm, welches alle inhalte innerhalb eines gewünschten bereiches in excel ausliest und in listview ausgibt.
Problem: es funktioniert nur wenn der bereich A1:C3 ist (der zeilenindex ist dabei egal)
Will aber nur den inhalt einer einzigen spalte auslesen(in dem Fall Spalte A), doch sobald ich die Range zu z.B. A1:A5 abändere kommt der fehler :"Der Index war außerhalb des Arraybereichs.", sprich solang die range über mehr als eine spalte geht klappts.
Wie behebe ich das? wo ist mein Denkfehler?

mein code:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
      
      {
            //...excel aufmachen, workbook starten usw...
            // lastUsedRow ist eine int variable mit einer beliebigen zahl darin zb 6
            for (int i = 1; i <= lastUsedRow; i++)
            {
                Excel.Range range = worksheet.get_Range("A" + i.ToString(), "A" +
                5.ToString());
                System.Array myvalues = (System.Array)range.Cells.Value;
                string[] strArray = ConvertToStringArray(myvalues);
                listView1.Items.Add(new ListViewItem(strArray));
             } 
        }
        string[] ConvertToStringArray(System.Array values)
        {
            string[] theArray = new string[values.Length];
            for (int i = 1; i <= values.Length; i++)
            {
                //hier kommt der Fehler
                if (values.GetValue(1, i) == null)
                    theArray[i - 1] = "";
                else
                    theArray[i - 1] = (string)values.GetValue(1, i).ToString();
            }

            return theArray;
        }


Edit: Crosspost myCSharp - [c# excel] Range innerhalb einer einzigen Spalte

Moderiert von user profile iconTh69: Crosspost hinzugefügt