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方法
脚本1: 用于检索电子表格中的工作表名称的示例脚本如下所示

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文档对用户不是很友好。“他们很困惑。”斯巴丁,我必须道歉。因为很不幸,我不能理解你的新问题。那么把它作为新问题发布怎么样?这样,它将帮助用户思考解决方案。我为我的拙劣技能深表歉意。