0

我使用 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 文档中找不到任何内容。

4

2 回答 2

1

这可能是因为 O365 不允许任何单个操作将应用程序挂起超过 5 秒。尝试使用异步调用。

于 2015-06-19T01:38:29.540 回答
0

我也对这个问题很感兴趣,因此进行了一些测试,空单元格和数据之间似乎存在巨大差异。我可以从近 400 万个空白单元格中绑定和读取数据。但是当我添加一些简单的数据时,这会减少到大约 90,000 个单元格。装订的形状似乎并不重要,无论是高还是宽。所以我怀疑你的单元格中的数据可能比我的测试数据多得多。

您也许可以改用documentselectionchanged 处理程序来解决问题。例如,遍历行并随着它的变化获取数据。

有关详细信息,请参阅http://microsoft-office-add-ins.com

于 2015-08-20T16:04:07.310 回答