为什么有些COM索引从1开始而不是0?

时间:2017-03-08 14:15:16

标签: arrays excel indexing com

我使用COM与Excel进行交互,并惊讶地发现2D数组的索引为[1,1]而不是[0,0]。这是非常令人困惑的,因为据我所知,世界上所有其他数组索引都是以[0,0]的索引开始的。

当在[1,1]起始数组上,getLength()等方法在数组上运行时仍然使用0的起始索引时,这会变得更加混乱。

问题:

  1. COM 2D阵列从1开始的原因是什么?
  2. 这是所有COM阵列的标准吗? (我想这可能是尝试专门将数组映射到Excel R1C1引用样式)
  3. 这是生成具有攻击性索引的COM数组的代码:

    // Open the worksheet (just for background)
    Excel.Application app = (Excel.Application)ExcelDnaUtil.Application;
    Excel.Workbook wb = app.ActiveWorkbook;
    Excel.Worksheet _DB_SCRAPE = wb.Worksheets["_DB_SCRAPE"];
    
    // Get the contents of the worksheet (THIS LINE OF CODE)
    object[,] contents = _DB_SCRAPE.Range[_DB_SCRAPE.Cells[rowFirst,colFirst],_DB_SCRAPE.Cells[rowLast,colLast]].Value2;
    

    contents对象的索引从[1,1]开始。

0 个答案:

没有答案