有没有办法设置一个范围来从单个电子表格中的所有工作表中获取数据?

时间:2018-04-19 03:54:44

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

我可以使用如下所示的代码从单张纸上获取值,但我想知道我是否能以某种方式获取电子表格中所有工作表的所有值,然后操纵关于我得到的日期。换句话说,您可以设置范围以包括从表单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)
        });
});

2 个答案:

答案 0 :(得分:0)

这是正确的方法。我在回答可能的将来参考。

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

<div class="x">
  <div class="y">
    <div>1</div>
    <div>2</div>
    <div>3</div>
  </div>
  <div class="z">
    <div>4</div>
    <div>5</div>
  </div>
</div>

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

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

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

答案 1 :(得分:-1)

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

{{1}}

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

希望这有帮助!