【问题标题】:How to append an html table to a sheet如何将 html 表格附加到工作表
【发布时间】:2020-04-05 20:28:40
【问题描述】:

此脚本将 html 表格的数据内容发送到 Google 表格。

但我现在需要将数据附加到下一个可用行。

我在很多情况下都使用过appendRow(),但我不确定这种特殊情况下的语法。

function pasteRequisicaoHtml(table) {
  var ss = SpreadsheetApp.openById("1J_7GZ1C7pgHuRsdfsdfsdfsdf");
  var sheet = ss.getSheetByName('Sheet5').getSheetId();
  var req = {
    requests: [
      {
        pasteData: {
          html: true,
          data: table,
          coordinate: {
            sheetId: sheet,
            rowIndex: 2,
            columnIndex: 0,
          },
        },
      },
    ],
  };
  Sheets.Spreadsheets.batchUpdate(req, ss.getId());
}

【问题讨论】:

标签: google-apps-script google-sheets google-sheets-api


【解决方案1】:
  • 您希望使用带有 Google Apps 脚本的 Sheets API 将 HTML 表格添加到“下一个可用行”。

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

修改点:

  • 在您的情况下,您可以同时使用 Sheets API 和电子表格服务。使用它,为了使用 Sheets API 附加表格,您可以使用电子表格服务的getLastRow()。请使用getLastRow()检索到的值到rowIndex

当这反映到你的脚本中时,它变成如下。

修改后的脚本:

function pasteRequisicaoHtml(table) {
  var ss = SpreadsheetApp.openById("1J_7GZ1C7pgHuRsdfsdfsdfsdf");
  var sheet = ss.getSheetByName('Sheet5');  // Modified
  var req = {
    requests: [{
      pasteData: {
        html: true,
        data: table,
        coordinate: {
          sheetId: sheet.getSheetId(),  // Modified
          rowIndex: sheet.getLastRow(),  // Modified
          columnIndex: 0,
        },
      },
    }, ],
  };
  Sheets.Spreadsheets.batchUpdate(req, ss.getId());
}

参考资料:

补充:

在此示例脚本中,表头行在追加表格后被删除。在这种情况下,它假设标题行是一行。

function pasteRequisicaoHtml(table) {
  var ss = SpreadsheetApp.openById("1J_7GZ1C7pgHuRsdfsdfsdfsdf");
  var sheet = ss.getSheetByName('Sheet5');  // Modified
  var lastRow = sheet.getLastRow();  // Added
  var req = {
    requests: [{
      pasteData: {
        html: true,
        data: table,
        coordinate: {
          sheetId: sheet.getSheetId(),  // Modified
          rowIndex: lastRow,  // Modified
          columnIndex: 0,
        },
      },
    }, ],
  };
  Sheets.Spreadsheets.batchUpdate(req, ss.getId());
  sheet.deleteRow(lastRow + 1);  // Added
}

【讨论】:

  • 感谢您提供的信息,它有效。我该怎么做才能不包含标题行?
  • @user2916405 感谢您的回复。我很高兴你的问题得到了解决。关于您的附加问题,在这种情况下,为了删除标题行,需要在放置表格之前修改table或在放置表格后删除标题行。但我不确定您的table 的价值。所以我想提出后一种方法。你能确认我更新的问题吗?如果这不是您想要的方向,我很抱歉。
  • 太棒了……成功了,它完美地工作!再次感谢您!
  • @user2916405 欢迎。谢谢你让我知道。我很高兴你的问题得到了解决。如果您的问题得到解决,请按接受按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。而且我认为您的问题和解决方案将对他们有用。
  • @user2916405 感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 2022-11-16
  • 1970-01-01
相关资源
最近更新 更多