在Office外接程序中是否可获取Office文档的加载来源位置
Office外接程序获取文档加载路径的实现方案
你提到的Office.FileProperties接口下的url属性就是你需要的文档加载位置,该属性支持返回三类你需要的路径格式:
- 本地磁盘存储的文档返回绝对路径,如
C:\someFolder\myDocument.docx - 局域网共享存储的文档返回UNC路径,如
\\folder1\folder2\myDocument.docx - SharePoint/OneDrive等云端存储的文档返回完整HTTPS访问链接
代码实现方式
有两种常用的获取方式,你可以根据自己的代码逻辑选择:
1. 直接读取上下文属性
外接程序初始化完成后可以直接读取全局上下文的属性值,写法最简单:
Office.onReady((info) => { // 可根据需要替换为Excel、PowerPoint等对应主机枚举 if (info.host === Office.HostType.Word) { const documentLocation = Office.context.document.url; // 此处可对拿到的路径做后续业务处理 console.log(documentLocation); } });
2. 异步调用获取完整文件属性
如果需要同时获取其他文件属性,可以调用异步接口:
Office.context.document.getFilePropertiesAsync((result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { const fileProperties = result.value; const documentLocation = fileProperties.url; console.log(documentLocation); } else { // 可按需添加失败处理逻辑 console.error("获取文件属性失败", result.error.message); } });
注意:如果当前文档是新建未保存的临时文档,该属性会返回空值,需要用户将文档保存到本地或云端后才能正常获取路径。
内容的提问来源于stack exchange,提问作者in-pv
相关产品推荐
相关产品推荐

