如何根据单元格值动态从网页获取JSON数据?
根据单元格值动态拼接URL并获取网页数据
Excel 实现方案
- 基础函数实现(适用于Excel 365/2021及以上版本)
直接在目标单元格输入公式,完成URL拼接并获取数据:
若需解析返回的JSON数据,可搭配=WEBSERVICE("https://someurl.com/json?v="&A$2)JSON函数提取指定字段(替换fieldName为实际字段名):=JSON(WEBSERVICE("https://someurl.com/json?v="&A$2), "$.fieldName") - VBA脚本实现(适用于全版本Excel,支持批量/复杂逻辑)
按Alt+F11打开VBA编辑器,插入模块后粘贴以下代码:Sub FetchDynamicWebData() Dim targetURL As String Dim cellVal As String Dim respText As String ' 获取A2单元格的值 cellVal = ThisWorkbook.Sheets("Sheet1").Range("A2").Value ' 拼接URL targetURL = "https://someurl.com/json?v=" & cellVal ' 发送HTTP请求获取数据 With CreateObject("MSXML2.XMLHTTP") .Open "GET", targetURL, False .Send respText = .ResponseText End With ' 将结果写入B2单元格 ThisWorkbook.Sheets("Sheet1").Range("B2").Value = respText End Sub
Google Sheets 实现方案
- 基础函数实现
在目标单元格输入以下公式,自动完成URL拼接并导入数据:
解析JSON字段可使用=IMPORTDATA("https://someurl.com/json?v="&A$2)JSON_EXTRACT函数:=JSON_EXTRACT(IMPORTDATA("https://someurl.com/json?v="&A$2), "$.fieldName") - Google Apps Script实现(支持自定义逻辑)
打开Google Sheets,点击「扩展程序」→「Apps脚本」,粘贴以下代码:function fetchDynamicData() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const cellVal = sheet.getRange("A2").getValue(); const targetURL = "https://someurl.com/json?v=" + cellVal; const response = UrlFetchApp.fetch(targetURL); const data = response.getContentText(); sheet.getRange("B2").setValue(data); }
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

