如何解决Office Script结合Power Automate在Excel Online中添加二维码的Fetch兼容问题
解决方案:通过Power Automate HTTP连接器替代Office Script的fetch方法
由于Power Automate运行Office Script时不支持fetch API,我们可以将获取二维码并转换为Base64的逻辑转移到Power Automate的HTTP连接器中,再将Base64字符串传递给Office Script完成插入操作。该方案使用微软官方Premium连接器,无第三方依赖。
步骤1:修改Office Script代码
修改后的脚本仅负责接收Power Automate传入的二维码Base64字符串,并插入到指定单元格位置:
async function main(workbook: ExcelScript.Workbook, qrImageBase64: string) { // 直接使用传入的Base64字符串添加图片 const imageShape = workbook.getWorksheet("Sheet1").addImage(qrImageBase64); // 定位图片到N15单元格位置 const targetRange = workbook.getWorksheet("Sheet1").getRange("N15"); imageShape.setLeft(targetRange.getLeft()); imageShape.setTop(targetRange.getTop()); }
步骤2:配置Power Automate流程
- 添加触发动作:选择合适的触发方式(例如「手动触发一个流」)
- 添加HTTP动作(Premium连接器):
- 方法:
GET - URI:填写二维码生成地址(示例:
https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Samundra,若需动态内容可拼接动态参数) - 响应格式:选择「二进制」
- 方法:
- 添加Run script动作(Excel Online (Business) Premium连接器):
- 选择工作簿存储位置(OneDrive/SharePoint)及目标工作簿
- 选择修改后的Office Script
- 在参数
qrImageBase64中输入表达式:base64(body('HTTP'))(将HTTP响应的二进制内容转换为Base64)
- 保存并测试流程
关键说明
- HTTP连接器负责完成外部请求,绕开了Office Script中
fetch的限制 - 若需动态生成二维码内容,可在Power Automate中拼接URI参数(例如将
chl=Samundra替换为动态文本变量) - 所有使用的连接器均为微软官方Premium连接器,符合要求
内容的提问来源于stack exchange,提问作者Samundra
相关产品推荐
相关产品推荐

