我肯定错过了什么:
[问题]:
我有一个二维数据数组,我想从单元格 A1 开始插入到当前工作表中。我还必须格式化这些数据。当前文档可能为空,也可能不为空。我无法控制这一点。
稍后,我需要从文档中删除数据并插入新数据。这组新数据可能有不同的维度。
使用 Office JavaScript Api 似乎不可能做到这一点。
我尝试使用 TableBindings 等的所有事情都失败了。在许多情况下,根据 MSDN 应该工作的功能失败了,给我一些神秘的错误消息,例如“内部错误”(代码 5001)或不受支持的绑定操作(3010)。我必须使用表格绑定,因为根据 MSDN 文档,我无法将格式应用于其他任何内容。
以下解决方案是不可接受的:
- 强制用户使用具有预先存在的命名表的特定文档模板
- 在我的加载项开始工作之前强制用户选择单元格“A1”。
- 强制用户在插入数据之前选择一个范围。
从可用性的角度来看,所有这些都是噩梦般的解决方案。
我可以从命名项目创建一个绑定,并通过计算列和行来构造范围,并构建一个像“A1:C232”这样的字符串,但这只能工作一次,因为:
- 我无法删除数据(是的。在使用这种命名范围创建的绑定上调用“deleteAllDataValuesAsync”会引发错误 3010(即使绑定说它是“表”绑定.. wat?)。
- 我不能用不同大小的数据覆盖它(覆盖错误)
- 我无法对其设置格式(是的,它是作为表格绑定创建的绑定,是的,我可以调用 setFormatAsync 函数,它会引发“内部错误,5001”-> #headdesk
我希望微软的人能读到这篇文章,并能给我指明正确的方向。我真的希望!因为我开始担心这实际上是设计使然。(在过去几周的挣扎之后,我对 office.js 感到非常沮丧,我很难不咆哮,所以我会在这里停下来......不要让我开始使用 ui 结构)