我有一個關于使用 java 腳本的 google sheet api 的快速問題。我可以一次輸入多個范圍(例如命名范圍)以保持較低的請求數量嗎?
我到目前為止的代碼:
const RANGE = "'GM Cheat Sheet'!";
const response = await fetch(
`https://sheets.googleapis.com/v4/spreadsheets/${ID}/values/${RANGE}?key=${API_KEY}`
);
const { values } = await response.json();
console.log(values);
任何幫助表示贊賞:)
我嘗試如下定義范圍:
const RANGE = ["'GM Cheat Sheet'!Range1", "'GM Cheat Sheet'!Range2"];
這沒有用。
uj5u.com熱心網友回復:
在您的情況下,如何使用“方法:電子表格.values.batchGet”?使用此方法時,一個 API 呼叫即可使用多個范圍。當這反映在您的腳本中時,它變成如下。
修改后的腳本:
const API_KEY = "###"; // Please set your API key.
const ID = "###"; // Please set your Spreadsheet ID.
const RANGE = ["Range1", "Range2"]; // This is from your question.
const ranges = RANGE.map(e => `ranges=${encodeURIComponent(e)}`).join("&");
const response = await fetch(`https://sheets.googleapis.com/v4/spreadsheets/${ID}/values:batchGet?key=${API_KEY}&${ranges}`);
const { valueRanges } = await response.json();
const obj = valueRanges.reduce((o, { values }, i) => (o[RANGE[i]] = values, o), {});
console.log(obj);
運行此腳本時,將從
RANGE.在命名范圍的情況下,命名范圍的名稱是 Google 電子表格中的唯一值。因此,在這種情況下,當“Range1”和“Range2”是命名范圍時,您可以使用
const RANGE = ["Range1", "Range2"];.通過添加
const res = valueRanges.reduce((o, { values }, i) => (o[RANGE[i]] = values, o), {});,回傳值如下。這樣,您可以將命名范圍的值檢索為obj.Range1和obj["Range1"]。{ "Range1":[### values ###], "Range2":[### values ###] }
參考:
- 方法:電子表格.values.batchGet
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524627.html
