我已经看到了另一个答案,但我无法让它工作,我不能再问另一个问题。
How to determine if an Office Add-in is running under Excel or 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有关......这些都没有出现在我的intellisense中,所以我想知道,我有什么遗失的吗?
答案 0 :(得分:1)
快速回答是,您可以检查加载项是否在iframe中运行:
if(window.top == window){
// the add-in is not running in Excel Online
}
但是,我们建议您检查所需的实际行为或功能 - 此方法对未来的更改将更加强大。我们假设您需要Excel Online中当前不可用的特定Excel API。然后按照specifying Office hosts and API requirements的指导进行操作。例如,您可以检查:
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(PM for Office加载项)
答案 1 :(得分:0)
我使用了无脚本选项。 函数INFO可在桌面excel中使用,但在基于Web的视图中会显示错误。
= INFO(“目录”)
在桌面视图中,它提供了一个路径,在网络视图中,它提供了错误,因此我使用= ISERROR()来检查使用哪个视图。
答案 2 :(得分:0)
当前执行此操作的方法是:
orc.column.index.access=false
答案 3 :(得分:-1)
就像ranno说的,但我用...
=IFERROR(IF(INFO("system")="pcdos","PC","Net"),"Net")
因为就我而言,Mac 和 Web 一样糟糕。