J'ai un fichier CSV qui contient les noms des employés dans la colonne A et les cibles dans la colonne B. J'ai le script pour importer les données dans une feuille Google chaque jour. Cependant, je souhaite uniquement importer la colonne B lorsque le déclencheur s'exécute afin que la feuille remplisse une nouvelle colonne avec les valeurs mises à jour quotidiennement sans ajouter la colonne A.

function importCSVFromGoogleDrive() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var file = DriveApp.getFilesByName("Employee Targets.csv").next();
  var csvData = Utilities.parseCsv(file.getBlob().getDataAsString().split('\r').splice(1)) ;
  var sheet = SpreadsheetApp.getActive().getSheetByName("Daily Tracker");
  var lastcol = sheet.getLastColumn();
  sheet.getRange(1, lastcol + 1, csvData.length, csvData[0].length).setValues(csvData);
  sheet.getRange(1,sheet.getLastColumn()).setValue(Utilities.formatDate(new Date(), "your_timezone", "dd-MM-yy")); 
}
0
pm2588 3 févr. 2020 à 14:15

1 réponse

Meilleure réponse

Vous devrez créer un nouveau tableau à partir de csvData avec uniquement les valeurs de la colonne B.

  var outputArray = []
  for (var row in csvData) {
    outputArray.push([csvData[row][1]]); // to post just column 2 to the sheet
  }

Et puis publiez les données dans le outputArray sur la feuille au lieu de csvData.


PS:

-- Comme les tableaux sont basés sur zéro, les valeurs de la colonne 2 sont dans csvData[row][1].

-- Si csvData est susceptible d'être nul, vous pouvez l'envelopper dans une instruction if pour éviter les erreurs.

1
ADW 3 févr. 2020 à 11:38