我尝试从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();
}
答案 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。