Как переписать существующий лист Google с похожим именем и данными, используя скрипт Google? - PullRequest
0 голосов
/ 18 апреля 2020

Я немного погуглил / исследовал, и приведенный ниже код ближе всего к тому, что я хотел сделать sh.

У меня есть электронная таблица с данными, и код проверяет столбец A исходного листа, создает новые листы с именем в этом столбце, а затем переносит все строки. данные, соответствующие этому имени новому листу.

Этот код прекрасно работает, я буду признателен за помощь в его модификации:

  • Вместо того, чтобы говорить "Лист уже существует" он должен просто перезаписать лист с похожим именем.
  • При копировании совпадающих значений, он должен включать первую строку ( A1 , строку заголовка)

    function backUP() {
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var templateSheet = ss.getActiveSheet();
        var sheet1 = ss.getSheetByName("Source")
        var getNames = [...new Set(sheet1.getRange("A2:A").getValues().filter(String).toString().split(","))];
    
    for (var i = 0; i < getNames.length; i++) {
        var copy = ss.getSheetByName(getNames[i]);
        if (copy) {
            Logger.log("Sheet already exists");
        } else {
    
    
            var rowIndexes = sheet1.getRange("A:A").getValues()
                .map((value, index) => [value[0], (index + 1)])
                .filter(value => value[0] === getNames[i]);
            var namedSheet = ss.insertSheet(getNames[i]);
            rowIndexes.map(index => {
                var rowValues = sheet1.getRange(index[1], 1, 1, sheet1.getLastColumn()).getValues();
                namedSheet.appendRow(rowValues[0]);
            });
    
    
            ss.setActiveSheet(ss.getSheetByName(getNames[i]));
            ss.moveActiveSheet(ss.getNumSheets());
        }
      }
    }
    

1 Ответ

1 голос
/ 19 апреля 2020

Это сработало для меня.

 if (copy) { 

 ss.deleteSheet(copy)

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...