如何使用 React 中的 google Sheets api 动态获取电子表格中的工作表列表?

sba*_*den 2 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(()=>{
        fetch(API).then(response => response.json()).then(data => {
            console.log(data)

            let rows = data.valueRanges[0].values;

          });
    }, []);
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 6

  • 您想要使用 API 密钥检索电子表格中的工作表名称。
    • 您已经知道电子表格 ID。
  • 该电子表格是公开共享的。
  • 您想使用fetchJavascript 来实现此目的。

如果我的理解是正确的,这个答案怎么样?

修改点:

  • 为了检索电子表格中的工作表名称,使用Sheets API中的spreadsheets.get方法。

脚本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)
});
Run Code Online (Sandbox Code Playgroud)

脚本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;
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

脚本3:

在此脚本中,仅从电子表格中的第一个工作表中检索值。

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;
  });
});
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 如果您想从电子表格中的特定工作表中检索值,请修改上述脚本。

参考:

如果我误解了你的问题并且这不是你想要的方向,我很抱歉。