微软最近宣布支持直接在 Excel 中使用 JavaScript 创建自定义函数, 目前为开发者预览版. 这一特性超出了现有微软 Office JavaScript API https://dev.office.com/reference/add-ins/javascript-api-for-office 的范围, 这组 API 仅限于构建与 Office 应用程序中的对象模型发生交互的插件或 web 应用程序.
微软 Office 团队创建了一个 GitHub 代码库, 演示如何在 Excel 中使用 JavaScript 创建自定义函数 https://github.com/OfficeDev/Excel-Custom-Functions . 示例代码库将功能分为四类:
JavaScript: 自定义函数源代码
JSON:Excel 用来显示可用自定义函数的元数据
html: 引用相关 JavaScript 源代码的预览发布机制以及初始化自定义函数的方法
XML: 告诉 Excel 有关自定义函数及其资源的位置和命名空间
自定义函数没有相关的用户界面, 开发人员不应该尝试操纵 DOM. 开发团队希望在最终发布此功能之前删除用于自定义函数初始化的 HTML 文件.
支持 Promise 等现代 JavaScript 特性, 允许开发人员将自定义函数定义为同步函数, 以便快速求值, 或定义成异步函数, 用于可能需要一段时间才能完成的计算. Streams 是一种异步 Promise, 它可以多次返回值, 而不仅仅是一次, 这也是 Excel 自定义 JavaScript 函数的一个选项.
Excel 的 JavaScript 同样利用了微软 Edge 浏览器所使用的 Chakra JavaScript 引擎.
自定义函数目前仅支持 Windows,Mac 和 Excel Online 的开发者预览版 Excel, 不适用于移动设备上的 Excel 或生产版本的 Excel.
这一特性带来了与 Google Sheet 类似的一些功能, Google Sheet 已经支持 使用 JavaScript 来自定义函数 https://developers.google.com/apps-script/guides/sheets/functions .
TypeScript 用户也可以编写自定义 JavaScript 函数, 只不过要先转成 JavaScript. 微软不打算在 Excel 中提供直接的 TypeScript 支持.
尽管在 Excel 中自定义 JavaScript 函数没有正式的产品发布日期, 但对这一特性感兴趣的用户应该尝试此预览版本, 并向 Office 团队 提供反馈 https://docs.microsoft.com/en-us/teamblog/a-new-feedback-system-is-coming-to-docs .
来源: http://www.tuicool.com/articles/I7fUFb7