日期:2014-05-17  浏览次数:21027 次

C#中对于object[,]类型的数据如何提取最大下标?
是这样的,我从Excel中提取数据,并用Range类型直接赋值给一个object类型的Arr,获取了值之后,这个Arr类似于一个二维数组,在本地属性中可以看到一维最大下标是10,二维中最大下标是8.
请问有什么方法可以提取其最大下标的两个值10和8?
附上代码(Winform中建立一个按钮):
using System;
using System.Windows.Forms;
using Excel=Microsoft.Office.Interop.Excel;

//首先要在引用里添加Microsoft.Office.Interop.Excel
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application XlsApp = new Excel.ApplicationClass();
            Excel.Workbook Wb = XlsApp.Workbooks.Add();
            Excel.Worksheet Sh = (Excel.Worksheet)Wb.Sheets[1];
            Excel.Range Rng = Sh.get_Range("A1:H10");
            Rng.Value = 1;
            object Arr = Rng.Value;                            //可以区域赋值到arr,为object类型(list?)
            XlsApp.Visible = true;
        }
    }
}

------解决方案--------------------
引用:
引用:Rng.Cells[row,col]不就行了?
你好,我是想用对Arr的操作取出这两个数字.
既然本地窗口能显示10和8,应该会有方法可以取出的吧?

啥意思,最大下标不就是

Rng.Cells.Rows.Count
Rng.Cells.Columns.Count

------解决方案--------------------
object Arr = Rng.Value;
            object[,] array = (object[,])Arr;
            int xlowbound = array.GetLowerBound(0);
            int ylowbound = array.GetLowerBound(1);
            int xTopbound = array.GetUpperBound(0);
            int yTopbound = array.GetUpperBound(1);