我使用microsofts JavaScript API创建了一个excel任务窗格应用程序。我创建了一个包含一些数据的excel表的绑定。
类似的东西:
Column1 | Column2
Value1 | Value2
Value1 | Value1
Value2 | Value3
我的应用为每列创建了一个图表(dc.js
)。然后,用户可以使用图表进行过滤,以便应用程序可以将过滤后的数据写入绑定。
小的装订范围一切正常。当我将绑定范围增加到大约1500行和3列时,他不会更新绑定数据。 Excel不会向我显示一些错误,它什么都不做。
这是我的代码的简化版本:
createBinding({ id, callback = ()=>{}, type = 'matrix' }) {
Office.context.document.bindings.addFromSelectionAsync(type, {id}, callback);
}
// options = { coercionType: "matrix" }
setBindingData({ id, data, options, callback }) {
Office.select(`bindings#${id}`).setDataAsync(data, options, callback);
}
我认为问题是所有数据的最大大小。 但我想知道最大大小是什么?我无法在stackoverflow或Microsoft文档中找到任何内容。
答案 0 :(得分:1)
可能是因为O365不允许任何单个操作挂起应用程序超过5秒。尝试使用异步调用。
答案 1 :(得分:0)
我对这个问题也感兴趣,所以进行了一些测试,空单元格和数据之间似乎存在巨大差异。我可以绑定和读取近400万个空白单元格中的数据。但是当我添加一些简单的数据时,这个数据大约减少了90,000个。绑定的形状似乎并不重要,无论是高还是宽。所以我怀疑你的单元格中的数据可能比我的测试数据要多得多。
您可以使用documentselectionchanged处理程序来解决问题。例如。循环遍历行,并在更改时获取数据。
有关详细信息,请参阅http://microsoft-office-add-ins.com。