【问题标题】:Is there a way to set a range to get data from all the sheets in a single spreadsheet?有没有办法设置一个范围以从单个电子表格中的所有工作表中获取数据?
【发布时间】:2019-02-08 00:17:18
【问题描述】:

我可以使用您在下面看到的代码从单个工作表中获取值,但我想知道是否可以以某种方式从电子表格中的所有工作表中获取所有值,然后根据我得到的结果操纵日期.换句话说,您是否可以将范围设置为包括从工作表 x 到工作表 y 的工作表,或者至少从所有工作表中获取所有数据,然后我会以某种方式尝试包括/排除工作表。我正在使用 Sheets API,但不能为此使用 Google App Scripts。

let { google } = require("googleapis");
let authentication = require("./authentication");

function getData(auth) {
  var sheets = google.sheets('v4');
  sheets.spreadsheets.values.get({
    auth: auth,
    spreadsheetId: '1XOqjUJ1eAMhl2g4KLIS4qPUzdwebSVeoE8OGJtPYyPw',
    range: 'Test!A2:C', **//I would love to get all sheets. This is only one of them. Possible?**
  }, (err, res) => {
    if (err) {
      console.log('The API returned an error: ' + err);
      return res;
    } 
    var rows = res.values;
    if (rows.length === 0) {
      console.log('No data found.');
    } else {
        for (var i = 0; i<= rows.length; i++) {
            var row = rows[i];
            console.log(row);
          }
        }
      });
    }

authentication.authenticate()
    .then((auth) => {
        getData(auth)
        .catch((err) => {
            console.log(err)
        });
});

【问题讨论】:

    标签: javascript google-sheets google-spreadsheet-api


    【解决方案1】:

    这是正确的做法。我正在回答潜在的未来参考。

    copyFormatToRange(sheet, column, columnEnd, row, rowEnd)
    将范围的格式复制到给定位置。如果目标大于或小于源范围,则相应地重复或截断源。请注意,此方法仅复制格式。

    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const source = ss.getSheets()[0];
    const destination = ss.getSheets()[1];
    
    const range = source.getRange("B2:D4");
    
    // This copies the formatting in B2:D4 in the source sheet to
    // D4:F6 in the second sheet
    range.copyFormatToRange(destination, 4, 6, 4, 6);
    

    授权 使用此方法的脚本需要获得以下一项或多项scopes 的授权:

    -https://www.googleapis.com/auth/spreadsheets.currentonly
    - https://www.googleapis.com/auth/spreadsheets

    这是整个article。祝你好运:)

    【讨论】:

      【解决方案2】:

      您可以参考此blog,了解如何使用查询公式组合来自多个工作表的数据。下面是一个示例查询公式,用于将上述两个工作表的数据合并到一个工作表中。

      =query({junesheet!A2:H5;julysheet!A2:H5},”Select * where Col1 is not null “)
      

      以下是可能有帮助的其他链接:

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多