Excel.Range.Count 属性报告区域中有多少单元格。例如:
if (targetRange.Count > 1)
{
throw new ArgumentException(...);
}
Excel.Range.Cells[,] 索引器从范围的第一个区域返回任何单元格。但请注意,Excel 使用以 1 为基数的索引(不是以 0 为基数)。因此,要访问范围的左上角单元格,您可以使用:
Excel.Range topLeftCell = (Excel.Range)targetRange.Cells[1,1];
请注意,您必须在上面转换为 Excel.Range,因为 Excel.Range.Cells[,] 索引器返回一个转换为 System.Object 的 Excel.Range 对象。
您还应该注意,当范围包含单个单元格时,Excel.Range.Value 属性将返回一个原子值,例如双精度、字符串、布尔值等。但是,如果范围的第一个区域包含多个单元格,它将返回一个以 1 为基数的二维数组。例如:
if (targetRange.Count = 1)
{
object myValue = targetRange.get_Value(Type.Missing);
MessageBox.Show(myValue.ToString());
}
else
{
object[,] myArray = targetRange.get_Value(Type.Missing);
for(int row = 1; row <= myValue.GetLength(0); row++)
{
for(int column = 1; column <= myValue.GetLength(1); column++)
{
MessageBox.Show(myArray[row, column].ToString());
}
}
}
希望这会有所帮助!
迈克