c#代码从.xlsx文件中获取数据并将其存储到int []中

时间:2016-04-10 13:44:05

标签: c#

我尝试从excel文件中获取数据并将其保存 int [] array = new int [9];  想要使用for循环来做这个,以便从文件中获取值"一次一行" 。我完成了从文件读取数据,但不能通过迭代将其存储到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();

   }

2 个答案:

答案 0 :(得分: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++)
{
    // ...
}

答案 1 :(得分:0)

您的数组只有9个元素长,但k最多可达499。每次迭代for循环都不能将一个元素插入到此数组中,因为您将进入IndexOutOfBoundsException抛出。

array可能需要与k的最大值相同,即499。