Excel 2016中Office.js插件调用getFileAsync报7000权限拒绝错误
Excel 2016插件调用getFileAsync返回7000权限拒绝问题解决
核心原因
Office.context.document.getFileAsync的文件类型支持并非所有Office应用和版本通用:
- Word 2016支持Compressed、Pdf、TextFile等文件类型的获取
- Excel 2016仅支持获取Office Open XML格式的工作簿(
Office.FileType.OfficeOpenXml),不支持你代码中使用的Compressed类型,这既是特性检测返回false的原因,也是触发7000权限拒绝错误的本质(API本身不被支持,系统以权限错误形式抛出)。
解决步骤
替换文件类型参数
将Office.context.document.getFileAsync的第一个参数改为Office.FileType.OfficeOpenXml,这是Excel 2016唯一支持的文件类型。修改适配后的代码示例
function getDocumentAsCompressed() { // Excel 2016仅支持OfficeOpenXml类型,检测该特性即可 console.log("OfficeOpenXml status: " + Office.context.requirements.isSetSupported("OfficeOpenXml")); // 应为true Office.context.document.getFileAsync(Office.FileType.OfficeOpenXml, { sliceSize: 65536 /*64 KB*/ }, function (result) { if (result.status == "succeeded") { const myFile = result.value; const sliceCount = myFile.sliceCount; const docdataSlices = []; let slicesReceived = 0, gotAllSlices = true; console.log("File size:" + myFile.size + " #Slices: " + sliceCount) } else { console.log("err: " + result.error.message + result.error.code) } }); }确认manifest权限配置
检查插件的manifest.xml文件,确保<Permissions>节点设置为至少ReadDocument权限:<Permissions>ReadDocument</Permissions>
内容的提问来源于stack exchange,提问作者nelify nelify
相关产品推荐
相关产品推荐

