Google Sheets脚本如何引用列数据作为CoinMarketCap币种查询输入
你只需要将原代码中硬编码币种列表的逻辑,替换为读取工作表B2:B10区域内容的逻辑即可,同时增加空值过滤避免发起无效请求,修改后的完整代码如下:
function coin_price() { const myGoogleSheetName = // 请将"Sheet1"修改为你要运行脚本的工作表名称 SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1') // 调用CoinMarketCap接口的配置信息 const coinMarketCapAPICall = { method: 'GET', uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest', qs: { start: '1', limit: '5000', convert: 'USD', }, headers: { 'X-CMC_PRO_API_KEY': 'YOUR_API_KEY_GOES_HERE' }, json: true, gzip: true, } // 读取B2:B10区域的币种符号,自动过滤空行 const myCoinSymbols = myGoogleSheetName.getRange('B2:B10').getValues() .flat() // 将读取到的二维数组转为一维数组 .filter(symbol => symbol.toString().trim() !== '') // 剔除空值和纯空格内容 // 遍历查询币种价格 for (let i = 0; i < myCoinSymbols.length; i++) { const coinSymbol = myCoinSymbols[i] const coinMarketCapUrl = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=${coinSymbol}` const result = UrlFetchApp.fetch(coinMarketCapUrl, coinMarketCapAPICall) const txt = result.getContentText() const d = JSON.parse(txt) const row = i + 2 // 已移除原写入币种符号到B列的逻辑,避免覆盖你手动填写的内容 // 将对应币种的美元现价写入工作表C列对应位置 myGoogleSheetName .getRange(row, 3) .setValue(d.data[coinSymbol].quote.USD.price) } }
注意事项
- 请将代码中的
YOUR_API_KEY_GOES_HERE替换为你自己的CoinMarketCap API密钥 - 如果后续需要调整读取币种的单元格范围,直接修改
getRange('B2:B10')中的区域参数即可 - 无需填满B2到B10的所有单元格,脚本会自动跳过空行
内容的提问来源于stack exchange,提问作者Finn
相关产品推荐
相关产品推荐

