You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让OfficeRuntime.Storage在Mac实现跨Office应用插件数据共享?

跨Excel/Word插件数据共享的Mac兼容性问题及解决方案

问题概述

开发的Office插件通过OfficeRuntime.Storage结合Shared Runtime实现Excel与Word间的数据共享,Windows平台运行正常,但Mac平台无法实现跨应用数据共享。

已完成的配置与验证

  1. API调用:使用OfficeRuntime.storage.setItem(key, value)和OfficeRuntime.storage.getItem(key)进行存储读写
  2. Shared Runtime配置:Excel和Word的清单Host节点均已启用长生命周期Runtime:
    <!-- Excel 配置 -->
    <Host xsi:type="Workbook">
        <Runtimes>
                <Runtime resid="Taskpane.Url" lifetime="long" />
        </Runtimes>
    </Host>
    
    <!-- Word 配置 -->
    <Host xsi:type="Document">
        <Runtimes>
            <Runtime resid="Taskpane.Url" lifetime="long" />
        </Runtimes>
    </Host>
    
  3. 通用行为(Windows/Mac一致):
    • 同一应用内的插件可正常读写存储值
    • 关闭插件仅隐藏任务窗格,重新打开后状态恢复(符合Shared Runtime预期)
    • 存储值写入localStorage,键名格式如_OfficeRuntime_Storage_myKey

平台差异现象

  • Windows:Word插件可读取Excel写入的存储值,反之亦然
  • Mac:跨应用完全无法读取对方的存储内容,且无法看到对方插件的localStorage条目(已在十余台符合版本要求的Mac设备验证,均存在该问题)

疑问点

清单中两个Host节点均配置了以下Action,是否会影响跨应用共享?

<Action xsi:type="ShowTaskpane">
    <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId>
    <SourceLocation resid="Taskpane.Url" />
</Action>

解决方案建议

1. 调整TaskpaneId配置

当前使用的Office.AutoShowTaskpaneWithDocument是系统默认任务窗格ID,Mac平台对该ID的共享上下文存在隔离限制。建议改为自定义唯一ID,且两个Host节点保持一致:

<Action xsi:type="ShowTaskpane">
    <TaskpaneId>MyCrossAppTaskpane</TaskpaneId>
    <SourceLocation resid="Taskpane.Url" />
</Action>

2. 替换为RoamingSettings实现用户级跨应用共享

如果共享数据是用户级别的,使用Office.context.roamingSettings(存储于用户Office账户),支持跨平台、跨应用读取:

  • 写入数据:
    Office.context.roamingSettings.set("myKey", "myValue");
    Office.context.roamingSettings.saveAsync(function(result) {
        if (result.status === Office.AsyncResultStatus.Succeeded) {
            // 保存成功
        }
    });
    
  • 读取数据:
    const value = Office.context.roamingSettings.get("myKey");
    

3. 采用后端服务器作为中间存储(通用跨平台方案)

由于OfficeRuntime.Storage在Mac上的跨应用隔离是平台级限制,可通过自定义后端服务实现数据共享:

  • 插件通过HTTP请求向服务器写入/读取数据
  • 使用用户ID、设备ID等标识作为存储上下文的区分依据
  • 该方案完全不受Office平台限制,兼容所有操作系统

4. 确认Mac Office版本与系统权限

  • 确保Mac Office版本≥16.57(Shared Runtime跨应用共享需此版本支持)
  • 检查系统权限:打开Mac「系统偏好设置」→「安全性与隐私」→「隐私」→「文件与文件夹」,确认Office应用拥有相关访问权限

内容的提问来源于stack exchange,提问作者Andrew Hall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 22:10:26