如何遍历从指定范围返回的值?
我尝试了以下代码,但它返回:
无法将带有[]的索引应用于类型为' System.Array'
的表达式
var rng = (Excel.Range)sheet.Range[sheet.Cells[3, 2], sheet.Cells[3, 27]];
var wsValues = rng.Cells.Value;
for (var j = 0; j < wsValues.Length; j++)
{
var test = wsValues[j];
}
答案 0 :(得分:1)
它的系统数组不是'普通数组'(基于错误)。所以你应该可以使用var test = wsValues.GetValue(1, j);
注意这将返回一个对象。所以你必须按照预期的类型进行演员表。
另请注意,在这种情况下,1是因为所有测试数据都是1作为多维数组中的第一个值。您可以将多维数组视为网格,使用x坐标和y坐标,因此如果您想要正确迭代它们(就好像您正在使用多个列而不是仅使用一个列)。然后你会这样做:
for (var x = 1; x <= wsValues.GetLength(0); x++)
{
for (var y = 1; y <= wsValues.GetLength(1); y++)
{
var test = wsValues[x, y];
}
}
在此,GetLength命令返回该维度的长度,因此第一个返回“列”或最大x值的长度,第二个返回最大y值或那里有多少行是