关于Excel Add-in API存储、身份获取及Notes支持的技术问询
Excel JS 插件开发相关问题解答
1. 大量数据存储方案
替代Excel.CustomProperty的方案是使用自定义XML部件(Custom XML Parts),它没有255字符的限制,适合存储任意大小的结构化或非结构化数据。你可以将数据序列化为JSON字符串后存入,读取时再反序列化:
写入示例
await Excel.run(async (context) => { // 命名空间可自定义,用于后续区分不同的XML部件 const namespace = "http://your-app-namespace"; const data = { key: "value", largeContent: "这里可以放大量文本、JSON结构等内容" }; const xmlContent = `<root>${JSON.stringify(data)}</root>`; const xmlPart = context.workbook.customXmlParts.add(xmlContent, namespace); await context.sync(); });
读取示例
await Excel.run(async (context) => { const namespace = "http://your-app-namespace"; const xmlParts = context.workbook.customXmlParts.getByNamespace(namespace); xmlParts.load("xml"); await context.sync(); if (xmlParts.items.length > 0) { const xmlContent = xmlParts.items[0].xml; const data = JSON.parse(xmlContent.replace("<root>", "").replace("</root>", "")); // 使用读取到的数据 } });
另外,也可以将数据存入隐藏工作表的单元格中,但自定义XML部件更适合后台存储,不会干扰工作表的可视化结构。
2. 获取用户身份的限制
目前没有无需登录(不使用SSO或Microsoft Graph)的方式获取用户身份信息(如邮箱、用户名)。Office JS的安全机制限制了这类敏感数据的直接访问,必须通过SSO完成用户验证后,再调用相关API获取身份信息。
3. Notes支持的请求
关于在API中添加Notes支持的需求,可通过官方开发者反馈渠道提交,团队会根据需求优先级评估是否纳入后续API更新计划。
内容的提问来源于stack exchange,提问作者Devon Fulcher
相关产品推荐
相关产品推荐

