2016-10-17 83 views
0

我試圖用通過Excel表格來遍歷在Excel MAC表遍歷辦公室JS使用辦公室的js不工作

下面是代碼示例(同爲一體,在文檔這裏https://github.com/OfficeDev/office-js-docs/blob/master/reference/excel/tablecollection.md):

Excel.run(function (ctx) { 
    var tables = ctx.workbook.tables; 
    tables.load('items'); 
    return ctx.sync().then(function() { 
     console.log("tables Count: " + tables.count); 
     for (var i = 0; i < tables.items.length; i++) 
     { 
      console.log(tables.items[i].name); 
     } 
    }); 
}).catch(function(error) { 
     console.log("Error: " + error); 
     if (error instanceof OfficeExtension.Error) { 
      console.log("Debug info: " + JSON.stringify(error.debugInfo)); 
     } 
}); 

獲取表的數量。

Excel.run(function (ctx) { 
    var tables = ctx.workbook.tables; 
    tables.load('count'); 
    return ctx.sync().then(function() { 
     console.log(tables.count); 
    }); 
}).catch(function(error) { 
     console.log("Error: " + error); 
     if (error instanceof OfficeExtension.Error) { 
      console.log("Debug info: " + JSON.stringify(error.debugInfo)); 
     } 
}); 

代碼正常的Windows版Excel 2016,但在Mac的Excel 2016都示例代碼拋出類型的錯誤:「一般例外」,和錯誤的位置:「TableCollection.count」

回答

0

我們試圖重現這個問題,但沒有得到「一般例外」。在「PropertyNotLoaded」的第一個示例中,我們遇到了一個錯誤,儘管從樣本稍微不正確的意義上可以理解,但裝入語句應該是tables.load('name, count')而不是tables.load('items')。但是這仍然不能解釋錯誤。第二個樣品應該可以正常工作。

您是否在現有文檔上運行此操作?該文件有什麼特別之處嗎?如果你運行這個代碼對付一個帶有幾個表格的全新文檔,它會起作用嗎?此外,什麼版本號是您的Mac版Office?

+0

我在Mac客戶端遇到類似問題。對於新的工作簿 –

+1

對於調用'var tables = ctx.workbook.tables; tables.load();'拋出一個錯誤,而不是返回成功與tables.count = 0和一個空的tables.items集合。錯誤是'{「errorLocation」:「TableCollection.count」}'。在我的情況下,當我使用API​​來添加表格時,即使存在表格,錯誤仍然會發生。解決方法的唯一方法是保存工作簿並重新打開它。然後tables.load()代碼工作正常。只有在新的工作簿上才能看到問題。 –

+0

Mac Version 15.30(170107) –