Как изменить скрипт в Google Sheets, чтобы автоматически подставлять данные в Google Docs?

Как исправить скрипт Google Sheets для заполнения только тех ячеек документа, которые не пусты в таблице, а оставлять пустыми те, которые не содержат данные?
  • 19 февраля 2024 г. 20:38
Ответы на вопрос 2
Для автоматического заполнения данных в Google Docs из Google Sheets, вам понадобится использовать Google Apps Script. Вот пример скрипта, который вы можете изменить для выполнения этой задачи:

```javascript
function fillGoogleDoc() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var dataRange = sheet.getDataRange();
  var data = dataRange.getValues();
  var docId = 'YOUR_GOOGLE_DOCS_ID'; // замените на ID вашего документа Google Docs

  var doc = DocumentApp.openById(docId);
  var body = doc.getBody();

  for (var i = 0; i < data.length; i++) {
    for (var j = 0; j < data[i].length; j++) {
      if (data[i][j]) {
        body.replaceText('{{' + i + j + '}}', data[i][j]);
      }
    }
  }
}
```

Для исправления скрипта Google Sheets, чтобы он заполнял только те ячейки документа, которые не пусты в таблице, вам нужно добавить условие проверки данных перед заполнением:

```javascript
function fillGoogleDoc() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var dataRange = sheet.getDataRange();
  var data = dataRange.getValues();
  var docId = 'YOUR_GOOGLE_DOCS_ID'; // замените на ID вашего документа Google Docs

  var doc = DocumentApp.openById(docId);
  var body = doc.getBody();

  for (var i = 0; i < data.length; i++) {
    for (var j = 0; j < data[i].length; j++) {
      if (data[i][j] && data[i][j] != "") { // проверка на пустую ячейку
        body.replaceText('{{' + i + j + '}}', data[i][j]);
      }
    }
  }
}
```

Эти скрипты помогут вам автоматически заполнять данные из Google Sheets в Google Docs и оставлять пустыми только те ячейки, которые не содержат информацию.
Какой-то у вас сложный подход к получению данных в переменные... 
Используйте getValues()
// № строки, № номер столбца, количество строк, количество столбцов
let vals = list.getRange(1, 2, 10,1).getValues()


На выходе в переменной будет двумерный массив типа [["a", "b", "c", ""],["1", "2", 3.0, ""]]
Похожие вопросы