Добавление строки в Google Sheet с помощью Nodejs - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть следующий лист Google Sheet sample

Я использую этот модуль nodejs Google-таблица Я могу читать, редактировать ячейки.Нет проблем.Но когда я пытаюсь добавить строку, я получаю эту ошибку.

sheet #1: Sheet22 1000x26
Error: HTTP error 400 (Bad Request) - Blank rows cannot be written; use delete instead.

Я искал ответы, они все о редактировании заголовков?Но я не могу понять, чего здесь не хватает, поскольку заголовки уже есть.

Большое спасибо!

Это мой код

saveTransaction: function(transaction){
        var creds = require('./credentials.json');
        var doc = new GoogleSpreadsheet('xxxxxxxx');
        doc.useServiceAccountAuth(creds, function (err) {
          if (err) console.log(err);
          doc.getInfo(function (err, info) {
            console.log('Loaded doc: ' + info.title + ' by ' + info.author.email);
            sheet = info.worksheets[21];
            console.log('sheet #1: ' + sheet.title + ' ' + sheet.rowCount + 'x' + sheet.colCount);

            var newrow = {
                title: 'banana',
                type: 'fruit',
                url: 'http://example.com'
            };
            doc.addRow(17, newrow, function( err, rows ){
                if (err) console.log(err);
                console.log(rows);

              });

          })
        })
    },

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

GoogleSpreadsheet.addRow (worksheet_id, new_row, callback)

check worksheet_id

посмотрите это

0 голосов
/ 27 апреля 2019

Я вижу несколько возможных проблем здесь.Во-первых, вы добавляете к doc вместо sheet.Это может сработать - я не знаком с этой частью - но в случае, если она помогает другим, я заставил ее работать, используя

sheet.addRow(newrow, function( err, rows ){

.

Во-вторых, иСкорее всего, я получил именно это сообщение об ошибке, когда мои столбцы не были настроены в соответствии с ключами, которые я пытался добавить.Когда ни один из них не соответствовал, он выдавал эту ошибку о пустой строке.

Например:

doc.addWorksheet({headers: ['A', 'B', 'C']}, function(addWorksheetErr, newSheet) {
  if (addWorksheetErr) console.error(addWorksheetErr);
  else {
    newSheet.addRow({ A: 1, B: 'two', C: 3 }, function(addRowErr, row) {
      // this works fine
    });
    newSheet.addRow({ X: 4, Y: 'five', Z: 6 }, function(addRowErr, row) {
      // This will get the "Blank rows cannot be written; use delete instead"
      // error, because there's no A, B, or C in the row data.
    });
  }
...