如何确定 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 下运行? 的相关文章

  • 如何修复 Nuxt 中导航器/窗口/文档未定义的问题

    我试图确定 Nuxt 应用程序内的 UserAgent 和 Retina 信息 但应用程序抛出错误并显示导航 窗口未定义 我如何在 nuxt 应用程序中获取这些信息 const userAgent navigator userAgent t
  • javascript 使用 onclick 创建按钮

    我正在尝试使用 javascript 创建一个具有 onclick 事件的按钮 该事件调用 head 中定义的函数 该函数接收相对于按钮的 dom 对象作为参数 我该怎么做呢 ex
  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 如何根据按钮单击折叠和展开 Kendo UI 树视图中的所有树节点?

    这是行不通的 您可以使用此代码 1 崩溃 折叠kendoTree查看文档 http docs kendoui com api web treeview methods collapse treeview kendoTreeView var
  • 如何使用 axios / jest 测试失败的请求

    我创建了一个非常小的应用程序 如果您传递硬币和数量 它可以计算为某些加密货币支付的总价格 我想测试错误 但我总是收到 收到的承诺已解决而不是被拒绝 我相信这是因为如果 url 错误 axios 仍然会解决承诺 我遇到的第二个问题是 我尝试测
  • 通过 SVG 背景传递鼠标事件

    我有两个 SVG 元素 每个元素覆盖整个屏幕 html body height 100 svg position absolute top 0 left 0 bottom 0 right 0
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • 引入 V8 后,Google Apps 脚本无法为其他用户完全执行

    我编写了一个脚本 得到了这里好心人的大力帮助 该脚本使用 Google Sheets 脚本复制 Google Drive 上的文件夹 和内容 它运行了很长一段时间 但后来我启用了 V8 引擎 现在已禁用 问题是 它仍然适用于我 也许还有其他
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • 使用 onBlur 事件上的值更新 React 输入文本字段

    我有以下输入字段 在模糊时 该函数调用服务来更新服务器的输入值 完成后 它会更新输入字段 我怎样才能让它发挥作用 我可以理解为什么它不允许我更改字段 但我能做些什么才能使其工作 我无法使用defaultValue因为我会将这些字段更改为其他
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • 管道回显到 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