Javascript 如何使用React中的google sheets api动态获取电子表格中的工作表列表?
有没有办法在下面的谷歌工作表中获得所有工作表的列表?请参见Javascript 如何使用React中的google sheets api动态获取电子表格中的工作表列表?,javascript,reactjs,google-sheets-api,Javascript,Reactjs,Google Sheets Api,有没有办法在下面的谷歌工作表中获得所有工作表的列表?请参见ranges=${sheet}。下面的代码从一个工作表中获取数据,但我希望获得一个工作表列表,以便动态调用它们 const API = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}/values:batchGet?ranges=${sheet}&majorDimension=ROWS&key=${key}`; useEffect(()=>
ranges=${sheet}
。下面的代码从一个工作表中获取数据,但我希望获得一个工作表列表,以便动态调用它们
const API = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}/values:batchGet?ranges=${sheet}&majorDimension=ROWS&key=${key}`;
useEffect(()=>{
fetch(API).then(response => response.json()).then(data => {
console.log(data)
let rows = data.valueRanges[0].values;
});
}, []);
- 您希望使用API键检索电子表格中的工作表名称。
- 您已经知道电子表格ID
- 电子表格是公开共享的
- 您希望使用Javascript的
实现这一点fetch
- 为了检索电子表格中的工作表名称,使用了spreadsheets.get In Sheets API方法
const endpoint = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}?key=${key}`;
fetch(endpoint).then(response => response.json()).then(data => {
const sheetNames = data.sheets.map(sheet => sheet.properties.title);
console.log(sheetNames)
});
脚本2:
修改脚本时,下面的修改如何?在此修改后的脚本中,将从电子表格中的所有图纸中检索值
const endpoint = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}?key=${key}`;
fetch(endpoint).then(response => response.json()).then(data => {
data.sheets.forEach(s => {
const sheetName = s.properties.title;
const API = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}/values:batchGet?ranges=${sheetName}&majorDimension=ROWS&key=${key}`;
fetch(API).then(response => response.json()).then(data => {
console.log(data)
let rows = data.valueRanges[0].values;
});
});
});
fetch(endpoint).then(response => response.json()).then(data => {
const sheetName = data.sheets[0].properties.title;
const API = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}/values:batchGet?ranges=${sheetName}&majorDimension=ROWS&key=${key}`;
fetch(API).then(response => response.json()).then(data => {
console.log(data)
let rows = data.valueRanges[0].values;
});
});
脚本3:
在此脚本中,仅从电子表格中的第一张工作表检索值
const endpoint = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}?key=${key}`;
fetch(endpoint).then(response => response.json()).then(data => {
data.sheets.forEach(s => {
const sheetName = s.properties.title;
const API = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}/values:batchGet?ranges=${sheetName}&majorDimension=ROWS&key=${key}`;
fetch(API).then(response => response.json()).then(data => {
console.log(data)
let rows = data.valueRanges[0].values;
});
});
});
fetch(endpoint).then(response => response.json()).then(data => {
const sheetName = data.sheets[0].properties.title;
const API = `https://sheets.googleapis.com/v4/spreadsheets/${sheetID}/values:batchGet?ranges=${sheetName}&majorDimension=ROWS&key=${key}`;
fetch(API).then(response => response.json()).then(data => {
console.log(data)
let rows = data.valueRanges[0].values;
});
});
注:
- 如果要从电子表格中的特定工作表中检索值,请修改上述脚本
如果我误解了你的问题,而这不是你想要的方向,我道歉。@sbaden谢谢你的回答。我很高兴你的问题解决了。也谢谢你。如果我将上面的内容转换为包含授权,你会建议我在哪里找到一个简单的例子?我觉得API文档对用户不是很友好。“他们很困惑。”斯巴丁,我必须道歉。因为很不幸,我不能理解你的新问题。那么把它作为新问题发布怎么样?这样,它将帮助用户思考解决方案。我为我的拙劣技能深表歉意。