遗憾的是,Office API的某些功能在所有环境中的行为都不完全相同(例如:Excel Online和Excel 2013中的格式化).此外,Excel 2013中没有一些不错的新功能,但在Excel 2016中可用(Excel.js)
当然,我可以告诉用户他们只能在2016年使用我的应用程序,而不是实现在所有环境中都不完全支持的东西.
我更愿意向Excel 2013的用户提供我的应用程序,即使他们没有办法(或倾向于)升级到2016年.我宁愿优雅地降级我的功能列表在功能较少的环境中,而不是将应用程序的功能限制为整个)
它很容易封装与文档的所有交互,并根据环境运行不同的代码.也就是说,如果我知道我所处的确切环境.当前的office.js是否提供了一种发现主机应用程序的版本和上下文(在线/离线)的简洁方法?我在office.context等等找不到任何东西.
在网上有一些关于黑客攻击整个.getContext
链条的建议,但这些似乎是"无证件"的,所以我对此并不满意.
有什么建议?
我肯定错过了什么:
[问题]:
我有一个二维数据数组,我想从单元格A1开始插入当前工作表.我还必须格式化这些数据.当前文档可能是空的或不是.我无法控制这一点.
稍后,我需要从文档中删除数据并插入新数据.这组新数据可能具有不同的维度.
使用Office JavaScript Api似乎无法做到这一点.
我尝试使用TableBindings等所有事情都失败了.在许多情况下,应该根据MSDN工作的功能失败,给我一些神秘的错误消息,例如"内部错误"(代码5001)或不支持的绑定操作(3010).我必须使用tablebindings,因为我无法根据MSDN文档将格式应用于其他任何内容.
以下解决方案是不可接受的:
从可用性的角度来看,所有这些都是噩梦般的解决方案.
我可以从命名项创建一个绑定,并通过计算列和行来构建范围,并构建一个类似于"A1:C232"的字符串,但这只能工作一次,因为:
我希望微软的某位读者能够读到这一点并指出我正确的方向.我真的希望!因为我开始担心这实际上是设计的.(在最后几周的斗争之后,我对office.js感到非常沮丧,我很难不咆哮,所以我会在这里停下来......不要让我开始使用ui面料)