如何获取googlesheet中的第一个空单元格

时间:2019-11-27 22:46:26

标签: node.js google-apps-script google-sheets

我正在使用下面的Node.js代码向Google电子表格中插入一些文本,我需要知道的是:

如何使代码检测特定列中的第一个空单元格,例如A列中的第一个空单元格,以便可以开始向其添加文本(或最后一个在A列中具有值的单元格,所以我可以开始在其后添加我的文字)

这里是现有代码:

const mySpreadSheetId = 'mySheetId';
const range = 'Sheet2!A10';
return new Promise((resolve, reject) => {
    sheets.spreadsheets.values.update({
        auth: jwtClient,
        spreadsheetId: mySpreadSheetId,
        range: range,
        valueInputOption: 'USER_ENTERED',
        resource: {range: 'Sheet2!A10',
            majorDimension: 'ROWS',
              values: [["some Text"]]}     
    } ,(err, resp) => {

        if (err) {
            console.log('Data Error :', err);
            reject(err);
        }
        resolve(resp);
    });
});

1 个答案:

答案 0 :(得分:3)

  • 您要在特定列的第一个空单元格中添加一个值。
  • 您要使用带有Node.js的googleapis实现此目的。
  • 您已经能够使用Sheets API获取和放置Google Spreadsheet的值。

如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。

流量:

为了知道特定列中的第一个空行,首先,需要检索这些值。修改后的脚本的流程如下。

  1. 检索要检索第一个空单元格的特定列的值。
  2. 检索第一个空行。
  3. 使用检索到的第一个空行将值放入单元格中。

修改后的脚本:

请按照以下说明修改new Promise((resolve, reject) => { ### })中的脚本。在运行脚本之前,请设置变量mySpreadSheetIdsheetName。在此修改后的脚本中,将检索列“ A”的第一个空单元格,并将some Text的值放入检索到的单元格中。

const mySpreadSheetId = 'mySheetId';
const sheetName = "Sheet2";

sheets.spreadsheets.values.get(
  {
    auth: jwtClient,
    spreadsheetId: mySpreadSheetId,
    range: `${sheetName}!A:A`
  },
  (err, res) => {
    if (err) {
      console.error(err);
      return;
    }
    const data = res.data.values;
    let i = 0;
    for (i = 0; i < data.length; i++) {
      if (!data[i][0]) break;
    }
    sheets.spreadsheets.values.update(
      {
        auth: jwtClient,
        spreadsheetId: mySpreadSheetId,
        range: `${sheetName}!A${i + 1}`,
        valueInputOption: "USER_ENTERED",
        resource: {
          majorDimension: "ROWS",
          values: [["some Text"]]
        }
      },
      (err, resp) => {
        if (err) {
          console.log("Data Error :", err);
          reject(err);
        }
        resolve(resp);
      }
    );
  }
);

注意:

  • 以上已修改的脚本检索特定列的第一个空单元格。在这种情况下,例如,当将值设置为1, 2, , 4, 5时,该值将放入第三个单元格。如果要将值附加到特定列,请按如下所示修改上面的脚本。

    • 发件人:

      let i = 0;
      for (i = 0; i < data.length; i++) {
        if (!data[i][0]) break;
      }
      
    • 收件人:

      let i = data.length;
      

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。