簡體   English   中英

如何檢測用戶使用的是 Excel 在線版還是 Excel 桌面版

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM