无需Python:Google Sheets API脚本对接Chartink扫描器取数需求
调整后的Google Apps Script 实现Chartink数据获取
以下是满足需求的完整脚本,已按要求修改参数读取和输出路径:
function Chartinkupload() { const ss = SpreadsheetApp.getActiveSpreadsheet(); // 从input工作表读取配置参数 const inputSheet = ss.getSheetByName('input'); const url = inputSheet.getRange('A1').getValue(); const scanClause = inputSheet.getRange('B1').getValue(); const debugClause = inputSheet.getRange('C1').getValue(); // 构造请求payload const payloadData = { "scan_clause": scanClause, "debug_clause": debugClause }; const payload = JSON.stringify(payloadData); try { // 发送POST请求 const response = UrlFetchApp.fetch(url, { method: "POST", payload: payload, contentType: "application/json" }); if (response.getResponseCode() === 200) { const jsonResponse = response.getContentText(); const chartinkData = JSON.parse(jsonResponse); // 将格式化后的JSON数据写入output工作表A1 const outputSheet = ss.getSheetByName('output'); // 使用JSON.stringify格式化输出,便于阅读 outputSheet.getRange('A1').setValue(JSON.stringify(chartinkData, null, 2)); } else { const errorMsg = `请求失败,响应码:${response.getResponseCode()}`; Logger.log(errorMsg); ss.getSheetByName('output').getRange('A1').setValue(errorMsg); } } catch (error) { const errorMsg = `请求出错:${error.message}`; Logger.log(errorMsg); ss.getSheetByName('output').getRange('A1').setValue(errorMsg); } }
关键修改说明
- 参数读取:不再依赖当前激活工作表,改为从固定名称的
input工作表读取A1(URL)、B1(scan_clause)、C1(debug_clause)的内容,确保配置位置固定,避免操作失误。 - 输出目标:将请求结果(格式化后的JSON)写入
output工作表的A1单元格,同时在请求失败或出错时,将错误信息写入该位置,方便直接查看结果。 - 代码健壮性:添加了对
input和output工作表的引用,确保脚本不会因工作表切换而出错;同时在异常分支中也处理了输出,避免无反馈情况。
注意事项
- 确保你的Google Sheet中存在名为
input和output的工作表,拼写需完全一致(区分大小写)。 input工作表的A1需填写Chartink扫描器的正确API端点URL,B1和C1需填写符合Chartink要求的scan_clause和debug_clause语法内容。- 首次运行脚本时,需要授权脚本访问
UrlFetchApp和Google Sheet的权限,按照提示完成授权即可。
内容的提问来源于stack exchange,提问作者brij brij
相关产品推荐
相关产品推荐

