我是c#的新手,如果我不能很好地解释我需要什么,请告诉我。 我从excel文件中读取一些数据,然后将数据存储到数组中。
excel.Application x1app = new excel.Application();
x1app.Visible = true;
excel.Workbook x1workbook = x1app.Workbooks.Open(@"...");
x1workbook.Activate();
excel.Worksheet x1worksheet = x1workbook.Worksheets[1];
excel.Range x1range = x1worksheet.UsedRange;
System.Array myvalues;
myvalues = (System.Array)x1range.Cells.Value;
现在我想在数组上使用来自InStr
的{{1}}的等价物,但我不知道它的等价物。
我尝试了VBA
,但这项工作只针对一个维度数组。
答案 0 :(得分:0)
如果你要将一个范围导入数据结构,我认为你想要的是一个二维数组:
[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath: indexPath];
可以按如下方式提取单个值:
object[,] myvalues = x1range.Cells.Value;
如果你想循环遍历所有细胞,那么foreach是最简单的:
object cellValue = myvalues[3, 4];
或者,如果x / y位置很重要,您可以按如下方式遍历X / Y:
foreach (object o in myvalues)
{
string myText = o == null ? null : o.ToString();
}
请注意,C#是基于0的,但在Excel输出中,您确实希望使用基于1的引用。
for (int i = 1; i < myvalues.GetLength(0); i++)
{
for (int j = 1; j < myvalues.GetLength(1); i++)
{
object o = myvalues[i, j];
}
}
函数在C#中起作用,但不能在这样的数组中起作用。如果您想使用它,您始终可以将数组转换为列表:
IndexOf