2016-04-10 22 views
0

私はExcelファイルからデータを取得して、に保存しようとしています。int [] array = new int [9]; "一度に1行"というファイルから値を取得するために、forループを使用してこれを実行します。私はファイルを読んでデータを読んでいましたが、反復によってint []に格納することはできません。.xlsxファイルからデータを取得して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

を必要としています!私はあなたが何をしているのか、実際にやっているのか、実際に何が起こっているのかは分かりません。 [this](http://stackoverflow.com/help/how-to-ask)を読んで、新しい質問をしてみてください。 – BanksySan

答えて

2

あなたの配列はforループにのみスコープされています。

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

外に宣言してください。

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

BanksySanに感謝......まだ問題は解決していません。 – Zahra

+1

ありがとう、私は、あなたが何が起こると予想されているのか、実際に何が起こっているのかを明確にしなければならないのではないかと心配しています。 – BanksySan

0

あなたの配列はわずか9要素長いですが、k499までによりすることができます。 IndexOutOfBoundsExceptionのように、forループの反復ごとに1つの要素をこの配列に挿入することはできません。

arrayは、おそらく今、あなたは完全ためのループを削除した、kの最大値と同じサイズになるように、すなわち499

+0

int [] value =新しいint [9]; value = Convert.ToInt32((Object [、])xlRange.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault.ToString())); //オブジェクトの値をarrayasの整数に格納したい – Zahra

関連する問題