Как добавить таблицу html на лист - PullRequest
1 голос
/ 05 апреля 2020

Этот скрипт отправляет содержимое данных таблицы html в Google Sheet.

Но теперь мне нужно добавить данные в следующую доступную строку.

Я использовал 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());
}

spreadsheet sample

1 Ответ

1 голос
/ 06 апреля 2020
  • Вы хотите поместить таблицу HTML в «следующую доступную строку», используя API Sheets с Google Apps Script, как добавление.

Если мое понимание верно, как насчет этого? ответ? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точка модификации:

  • В вашем случае вы можете использовать как Sheets API, так и Spreadsheet service. Используя это, чтобы добавить таблицу с помощью API Sheets, вы можете использовать getLastRow() сервиса Spreadsheet. И, пожалуйста, используйте значение, полученное от 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
}
...