Я пытаюсь импортировать данные из файла csv, сценарий работает, поскольку он вводит данные, но переписывает данные, уже находящиеся в моем листе, пожалуйста, как мне получить этот сценарий для вставки в следующую доступную строку, а также как мне только получить из 3-го ряда?

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var searchMenuEntries = [ {name: "Search in all files", functionName: "search"}];
  var csvMenuEntries = [{name: "Load from CSV file", functionName: "importFromCSV"}];
  ss.addMenu("Search Google Drive", searchMenuEntries);
  ss.addMenu("CSV", csvMenuEntries);
}

function importFromCSV() {
  var fileName = Browser.inputBox("Enter the name of the file in your Google Drive to import (e.g. myFile.csv):");
   
  var searchTerm = "title = '"+fileName+"'";

  var files = DriveApp.searchFiles(searchTerm)
  var csvFile = "";
   

  while (files.hasNext()) {
    var file = files.next();
    if (file.getName() == fileName) {
      csvFile = file.getBlob().getDataAsString();
      break;
    }
  }

  var csvData = Utilities.parseCsv(csvFile);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData); 
}
0
Johnny Cardel 17 Окт 2020 в 15:15

1 ответ

Лучший ответ

Пояснение:

  1. Чтобы вставить данные в следующую доступную строку:

    sheet.getRange(sheet.getLastRow()+1, 1, csvData.length, csvData[0].length).setValues(csvData);
    
  2. Вы можете использовать slice, чтобы получить начиная с третьего ряда:

    csvData.slice(2);
    

Решение:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var searchMenuEntries = [ {name: "Search in all files", functionName: "search"}];
  var csvMenuEntries = [{name: "Load from CSV file", functionName: "importFromCSV"}];
  ss.addMenu("Search Google Drive", searchMenuEntries);
  ss.addMenu("CSV", csvMenuEntries);
}

function importFromCSV() {
  var fileName = Browser.inputBox("Enter the name of the file in your Google Drive to import (e.g. myFile.csv):");
   
  var searchTerm = "title = '"+fileName+"'";

  var files = DriveApp.searchFiles(searchTerm)
  var csvFile = "";
   

  while (files.hasNext()) {
    var file = files.next();
    if (file.getName() == fileName) {
      csvFile = file.getBlob().getDataAsString();
      break;
    }
  }

  var csvData = Utilities.parseCsv(csvFile);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  var s_csvData = csvData.slice(2); // <- new code
  
  sheet.getRange(sheet.getLastRow()+1, 1, s_csvData.length, s_csvData[0].length).setValues(s_csvData); // <- modification
}
0
Mario 17 Окт 2020 в 12:58