如何确定 Office 加载项是否在 Excel 或 Excel Online 下运行?

2023-11-26

我正在编写一个 Office 加载项(以前称为 Apps for Office)。我在用着office.js在某些代码点中,我想检查应用程序是在 Excel(桌面软件)中运行还是在 Web 上运行(Excel Online)

就像是:

if (Office.IsRunningOnWeb){
    // Do something.
}

@Mehrandvd,如果我可以问的话,您需要这种区别的目的是什么(例如,根据知道您在 Excel Online 中与在桌面中,您会做哪些不同的事情)?我负责 Office.js API,因此如果您能提供一些具体信息,我很乐意将您的反馈传达给我的团队。

如果您需要这种区别来进行功能检测,我建议您通过新的(但向后移植到所有端点)API 检查 API 要求集,Office.context.requirements.isSetSupported(name, version)。请参阅我的回答获取环境的巧妙方法(即 Office 版本).

如果这是由于您在 Excel 桌面版本与在线版本之间看到的一些 API 差异造成的,则目标是让 API 在端点之间表现相同,因此这可能是一个错误。如果你告诉我具体情况,我可以跟进。

关于。 @Afshin 提到的答案——它可能有效,但请注意它不是公共 API,而是您正在测试的内部工作原理,因此这种方法将来有可能停止工作......只有公开暴露的命名空间是Office(并且,随着2015 年 9 月发布新的 Excel 和 Word API, also Excel and Word and OfficeExtension).

希望这可以帮助!

〜迈克尔·兹拉特科夫斯基

MSFT Office 可扩展性团队的开发人员

PS:请使用office-js用于将来标记此类问题的标签;这是 Microsoft Office 可扩展性团队积极关注的 stackoverflow 标签。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确定 Office 加载项是否在 Excel 或 Excel Online 下运行? 的相关文章

  • 无法在弹出窗口和 Excel for Mac 之间切换

    我制作了一个 Excel 插件 它会弹出一个窗口window open or 对话框API https dev office com docs add ins develop dialog api in office add ins 我刚刚
  • 将整个工作表复制到 Excel 2010 中的新工作表

    我发现了类似的问题 涉及复制一个工作簿中的整个工作表并将其粘贴到另一个工作簿 但我感兴趣的是简单地复制整个工作表并将其粘贴到同一工作簿中的新工作表 我正在将 2003 xls 文件转换为 2010 xlsm 用于在工作表之间复制和粘贴的旧方
  • 为什么 Jshint 在此 if 语句中说“变量已定义”?

    我有这个代码 if something is true var someVar true else var someVar false JsHint 表示在 else 语句部分 someVar 已被定义 这是为什么 我该如何解决 Thank
  • 如何将工作表和范围作为变量传递?

    我想在子例程之间传递工作表的名称和范围 以下抛出 下标超出范围 错误 Sub This x Sheet1 y D3 MsgBox x Range y Value End Sub This is 我的项目资源管理器的示例 https i st
  • 如何使用标准 JavaScript 在 CSS 转换结束后立即重新启动它?

    我构建了一种密码生成器 只要倒计时到期 它就会显示新密码 不幸的是 我只设法弄清楚如何运行我的代码一次 倒计时由一个简单的 CSS 过渡组成 我想保留它 因为它比我的其他尝试平滑得多 其中我尝试使用 JavaScript 重复更新宽度 va
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • 如何使传单圆圈标记可拖动?

    使用传单 我创建了一个L circleMarker我希望它是可拖动的 var marker L circleMarker new L LatLng 48 94603 2 25912 draggable true bindPopup Circ
  • 在 Cordova 中合并文件的多个部分

    在我的 Cordova 应用程序中 我正在下载任意文件 例如图像或视频文件 这是通过 Cordova 文件传输插件和 Range 标头完成的 因为我需要分段下载文件 我的问题是 我想将几 个小 字节 文件合并回原来的文件中 他们曾经在其中使
  • html 图像 src 调用 javaScript 变量

    这是我的代码 我想问 我怎样才能做到这一点 img src img apple 我一直在尝试使用 call 函数和 document onload 但它根本不起作用 有人可以救我吗 我假设你只是想用 javascript 更新图像 src
  • 如何用 JavaScript 修复图像透视变形和旋转?

    我有一些用手机拍摄的图像 有没有可以拉直纸张照片并将其压平的 JavaScript 库 例如 我想创建一个矩形图像 该图像没有任何失真 换句话说我想知道如何用 JavaScript 修复透视变形和旋转 例如 我发现下面的示例图像来自this
  • setTimeout范围问题

    我在控制玩家重生的函数内部定义了一个 setTimeout 我正在创建一个游戏 var player death function this alive false Console log death var timer3 setTimeo
  • vuejs 模板和 asp.net 部分视图,好的做法吗?

    我在网站中使用 Vue js 并将模板添加到 html 代码中 并将 js 代码添加到单个 js 文件中 所以我不想使用 vue Vuefy Browserfy 方法 而是稍后捆绑并缩小我的 js 文件 由于我必须使用 Asp Net MV
  • Angular UI-Router:多个 URL 到单一状态

    我已经开始使用 Angular 的 ui router 并且我正在尝试弄清楚如何让多个 URL 引用单个状态 例如 orgs 12354 overview retyrns the same pages as org overview 我的
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • 在 javascript 中实现固定位置会导致 Safari 滚动时出现抖动

    固定位置不适用于我的用例 因为它固定在浏览器窗口上 您可能会处于文本在屏幕右侧之外且无法到达的状态 无论如何 我尝试使用绝对定位 然后调整javascript中的 顶部 它在 Firefox 和 Chrome 中运行良好 但在 Safari
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 如何使用 Javascript 在 html 文件中搜索字符串?

    我有 5 个 html 文件 并且有一个搜索表单 我想用它来搜索这些 html 文件中的文本
  • 为什么我的 D3 SVG 图上的轴不会更新?

    I have 简单的 D3 散点图 http www raxacoricofallapatorius com test scattertest html我在显示数据的几个不同属性之间切换 但是虽然我可以更改数据点 并按照我想要的方式进行转换
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 如何使用 VBA 将行从一张 Excel 工作表复制到另一张 Excel 工作表并创建重复项?

    我有一个包含两张表的 Excel 工作簿 sheet1 在 A 到 R 列中包含一个大型数据表 标题位于第 1 行 Sheet2 在 A 到 AO 列中包含数据 我试图使用 VBA 从sheet1 复制行并将它们粘贴到sheet2 的末尾

随机推荐

  • 管道回显到 gcc?

    To call printf Hello 在我使用的终端的 C 中 echo include
  • multiprocessing.Pool 与 maxtasksperchild 产生相同的 PID

    我需要在一个与所有其他内存完全隔离的进程中运行一个函数多次 我想用multiprocessing为此 因为我需要序列化来自函数的复杂输出 我设置了start method to spawn 并使用一个游泳池maxtasksperchild
  • java中比较数组

    int nir1 new int 2 nir1 1 1 nir1 0 0 int nir2 new int 2 nir2 1 1 nir2 0 0 boolean t nir1 equals nir2 boolean m nir1 toSt
  • 字典初始化时出现KeyNotFoundException的原因

    下面的代码 new Dictionary
  • Apache 拒绝外部文件中的 IP 列表

    我想维护一个文件 其中包含被阻止使用网站的 IP 列表 据我了解 可以使用拒绝来实现此目的 例如 拒绝 127 0 0 1 10 0 0 1 some other ip address 但是 我想要一个外部文件 以便无权访问配置的个人可以使
  • 在 Windows Server 数据中心上找不到 WebAdministration powershell 模块

    在 Windows Server 2008 Datacenter 中 我找不到 PowerShellwebadministration模块 我试过Get PSSnapin and Get Module ListAvailable 两者都没有
  • 导出 .NET 中的圈复杂度

    我知道我可以通过右键单击并选择 计算代码指标 来访问 Visual Studio 2008 团队资源管理器中代码的圈复杂度 我想公开此数据以供 Web 应用程序显示 有谁知道通过 API 访问这些数据的方法吗 感谢您的帮助 I use ND
  • 您是如何学习的/学习 Silverlight 的最佳方式

    所以我在 stackoverflow 上搜索过 似乎没有任何答案 因此 如果可以的话 真正完全学习 silverlight 的最佳方法是什么 我有这方面的书 但似乎当你读到 30 章中的第 15 章时 你已经有点忘记了所学的内容 必须重新开
  • 将数组保存为 xml

    array name gt text surname gt text country gt text date gt text 1 如何将此数组保存为 xml 文件 2 如何读取这个文件作为数组 save doc new DOMDocume
  • 我可以在 JavaScript 中将数组附加到“formdata”吗?

    我正在使用 FormData 上传文件 我还想发送一系列其他数据 当我只发送图像时 效果很好 当我将一些文本附加到表单数据时 它工作正常 当我尝试附加下面的 标签 数组时 其他一切都正常 但没有发送数组 FormData 和附加数组有任何已
  • 在 Windows 启动时启动 Window

    我希望我的应用程序 WPFWindow 在 Windows 启动时启动 我尝试了不同的解决方案 但似乎没有一个有效 我必须在代码中写什么才能做到这一点 当您说必须向注册表添加一个密钥时 您是正确的 添加一个键 HKEY CURRENT US
  • 如何在 Erlang 中处理 SIGINT?

    感谢 Google 和大量教程 我知道如何用 Java Python Ruby Perl 和 Lisp 创建自定义信号处理程序 我无法在线找到如何在 Erlang 中为 SIGINT SIGTERM HUP 等创建处理程序 你不能 操作系统
  • 如何修复对 inflate/deflate 函数的未定义引用?

    我正在尝试编译示例中提供的现有代码zlib 但它本身就给了我错误 nikhil nikhil Vostro 3500 zlib 1 2 8 examples gcc o zpipe g zpipe c tmp ccVZzqsb o In f
  • shell 脚本的第一行空白:解释 UID 变量的行为

    我有两个非常简单的脚本 区别仅在于第一行存在空白 cat test bash bin bash echo UID cat test blank bash bin bash echo UID 现在我跑步 无论有没有nice test bash
  • 如何让 PHP 会话在 30 分钟后过期?

    我需要让一个会话保持 30 分钟的活动状态 然后销毁它 Answer recommended by PHP Collective 您应该实现自己的会话超时 其他人提到的两个选项 会话 gc maxlifetime and session c
  • 如何解决 http 和站点行为:android 应用程序中的导航错误?

    最近我将 android 9 更新到 android 10 但不幸的是 该应用程序有时会崩溃并给出此错误 com fgapps maker E chromium ERROR cookie manager cc 137 Strict Secu
  • 智能支付按钮为 IPN 传递自定义变量

    我的网站上有两个用于每月订阅的智能按钮 运行良好 我成功收到 IPN 响应 其中付款信息已准备好添加到数据库中 但我需要通过 IPN 响应获取应用程序的 UserID 如何使用智能支付按钮传递自定义变量 以便将其传递到 IPN 如果可能的话
  • Maven 本地存储库与 leiningen 的依赖关系

    我正在开始lein newclojure 中的项目并想要使用goose文章提取库 不幸的是 我在任何公开可用的 Maven 存储库中都找不到该库的 jar 因此我开始将其添加到本地 Maven 存储库中 在项目目录中 我复制了 goose
  • 如何在 Python 中使用 BeautifulSoup 找到文本字符串后的表格?

    我正在尝试从几个网页中提取数据 这些网页的显示方式并不统一 我需要编写代码来搜索文本字符串 然后转到紧随该特定文本字符串的表 然后我想提取该表的内容 这是我到目前为止所得到的 from BeautifulSoup import Beauti
  • 如何确定 Office 加载项是否在 Excel 或 Excel Online 下运行?

    我正在编写一个 Office 加载项 以前称为 Apps for Office 我在用着office js在某些代码点中 我想检查应用程序是在 Excel 桌面软件 中运行还是在 Web 上运行 Excel Online 就像是 if Of