2016-04-10 2 views
0

zu speichern Ich versuche, Daten von Excel-Datei zu erhalten und speichern Sie in Int [] Array = New Int [9]; möchten dies mit for-Schleife tun, um den Wert aus der Datei "eine Zeile zu einer Zeit" zu erhalten. Ich habe mit dem Lesen von Daten aus der Datei fertig, aber konnte es nicht in int [] durch Iteration speichern.C# code, um die Daten aus .xlsx Datei zu erhalten und in ein int []

static void Main() 
    { 
     string i="B1410"; 
     string j="J1410"; 
     Excel.Application xlApp = new Excel.Application(); 
    Excel.Workbook xlWorkbook = 

    xlApp.Workbooks.Open(@"E:\Normalized_sheet1.xlsx"); 
     string currentsheet = "Sheet1"; 
     Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[currentsheet]; 
     Excel.Range xlRange = xlWorksheet.get_Range(i, j.ToString()); 
     Object[,] valueArray = 

    (Object[,])xlRange.get_Value(Excel.XlRangeValueDataType. 
    xlRangeValueDefault); 
     int[] array = new int[9]; 

     array = Convert.ToInt32((Object[,])xlRange.get_Value 
       (Excel.XlRangeValueDataType.xlRangeV  
        alueDefault.ToString())); //Error 
     //want to enter values row wise one by one through loop 


     //close the workbook 

     xlWorkbook.Close(false); 

     // Release Com object by decrementing the reference count 

     xlApp.Quit(); 
     Console.ReadLine(); 

    } 
+0

Jetzt haben Sie die for-Schleife ganz gelöscht! Ich habe keine Ahnung, was du tust, was du tust oder was tatsächlich passiert. Lesen Sie [this] (http://stackoverflow.com/help/how-to-ask) und versuchen Sie, eine neue Frage zu stellen. – BanksySan

Antwort

2

Ihr Array ist nur auf die for-Schleife beschränkt.

for (int k = 1; k < 500; k++) 
{ 
    int[] array = new int[9]; 
} 

Erklären Sie es draußen.

int[] array = new int[9]; 
for (int k = 1; k < 500; k++) 
{ 
    // ... 
} 
+0

danke BanksySan ...... aber immer noch ist das Problem nicht gelöst. – Zahra

+1

Ich fürchte, Sie müssen ein klareres Beispiel dafür geben, was Sie erwarten und was tatsächlich passiert. – BanksySan

0

Ihr Array ist nur 9 Elemente lang, aber k können 499 um bis. Sie können nicht ein Element in dieses Array pro Iteration der for-Schleife einfügen, wie Sie in IndexOutOfBoundsException geworfen bekommen.

array wahrscheinlich muss die gleiche Größe wie der Maximalwert von k sein, das heißt 499.

+0

int [] Wert = neuer int [9]; Wert = Convert.ToInt32 ((Objekt [,]) xlRange.get_Value (Excel.XlRangeValueDataType.xlRangeValueDefault.ToString())); // Ich möchte die Werte im Objekt in arrayas Ganzzahlen speichern – Zahra

Verwandte Themen