[英]How do I detect if the user is using Excel online or Excel desktop
我已经看到了另一个答案,但我无法让它发挥作用,我也不能再问一个问题。
如何确定 Office 加载项是在 Excel 还是 Excel Online 下运行?
我发现经常出现 Excel Online 与 Excel Desktop 的行为不同的情况。 我知道它应该但它没有,所以我真的需要能够控制行为让我摆脱热点。
我如何知道我使用的是哪个版本的 Excel。
我已经看到以下代码,但它只是挂起我的 javascript:
if (Microsoft.Office.WebExtension.context.document instanceof OSF.DDA.ExcelWebAppDocument) {
//Your app running on the web
}
if (Microsoft.Office.WebExtension.context.document instanceof OSF.DDA.ExcelDocument) {
//Your app running in excel
}
问题与 OSF.DDA 有关....这些在我的智能感知中没有出现,所以我想知道,我是否缺少某些东西?
快速回答是您可以检查加载项是否在 iframe 中运行:
if(window.top == window){
// the add-in is not running in Excel Online
}
但是,我们建议您检查您需要的实际行为或能力——这种方法在未来的变化中会更加稳健。 假设您需要当前在 Excel Online 中不可用的特定 Excel API。 然后按照指定 Office 主机和 API 要求的指南进行操作。 例如,您可以检查:
if (Office.context.requirements.isSetSupported("ExcelApi", 1.3)){
// use the Excel 1.3 API set which currently isn't available in Excel Online but will be in the future.
}
另一种可能性是,您实际需要的是特定的浏览器功能,根据用户访问 Office Online 所使用的浏览器,该功能可能不可用。 然后我推荐的解决方案再次是直接检查您需要的功能,例如:
if(window.localStorage){
// the browser that the user is accessing Excel Online with has the local storage capability that you need.
}
-Michael(Office 插件的 PM)
我使用了无脚本选项。 函数 INFO 在桌面 excel 中工作,但在基于 Web 的视图中出错。
=信息(“目录”)
在桌面视图中它给出了一个路径,在 web 中它给出了错误,所以我使用 =ISERROR() 来检查使用了哪个视图。
目前的做法是:
if (Office.context.platform === Office.PlatformType.OfficeOnline) {
...
}
就像ranno说的,但我用...
=IFERROR(IF(INFO("system")="pcdos","PC","Net"),"Net")
因为就我而言,Mac 和 Web 一样糟糕。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.