[App Script] Copier un CSV vers un google sheet depuis Drive

Bonjour,

Je reçois tous les jours un fichier CSV dans un répertoire Google Drive et je souhaiterais automatiser le traitement que je fais.

Copier coller les valeurs de A3 à B8 du fichier CSV dans un fichier google sheets.

Ce fichier CSV change de nom tous les jours car il inclus la date.

Merci d'avance si vous avez des idées ou pistes pour pouvoir automatiser cela.

Bonne journée

Bonjour,

Pas de problème

  • Quelle est la structure du nom du fichier ?
  • Y a t'il des dates à l'intérieur du fichier ?
  • Quel est le séparateur ?

Bonsoir,

La structure du nom du fichier : AAAA-MM-JJ-NOM

Il y a une date à l'intérieur du fichier mais elle ne sera pas traité via l'appscript vu qu'elle n'a pas un format Standard, j'ai une solution pour la retraité plus facilement, elle se situe en A2 en dehors de la zone que je souhaite copier

Séparateur : Valeurs séparées par des virgules

J'ai placé les données à partir de A3 ...

function importFichierCSV() {
  var d = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd"); 
  var files = DriveApp.getFilesByName(d + '-test.csv');
  while (files.hasNext()) {
    var file = files.next();
    // Logger.log(file.getId())
    var id = file.getId();
    var csv = DriveApp.getFileById(id).getBlob().getDataAsString();
    var csvData = Utilities.parseCsv(csv);
    var f = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    // A3 à B8
    var result = []
    for (var i = 2; i < 8; i++) {
      var prov = []
      for (var j = 0; j < 2; j++) {
        prov.push(csvData[i][j])
      }
      result.push(prov)
    }
    f.getRange(3, 1, result.length, result[0].length).setValues(result);
  }
}

Vérifie la timezone du script ... change si nécessaire

Bonjour,

Cela ne fonctionne pas encore mais en tout cas merci pour vote temps, je vais regarder de mon côté d'où peut provenir le problème et faire des tests.

Bonjour,

Cela ne fonctionne pas encore mais en tout cas merci pour vote temps, je vais regarder de mon côté d'où peut provenir le problème et faire des tests.

hum ... j'ai fait des tests de mon côté avant de répondre, j'aurais bien aimé savoir ce qui ne fonctionne pas !

le fichier se trouve-t-il bien dans ton drive ?

oui, mais encore ...

Ha le message n'est pas parti....

C'était simplement sur la date, il fallait mettre la date de la veille.

Encore merci !

remplace alors

var d = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd"); 

par

  var d = new Date();
  var veille = new Date();
  veille.setDate(d.getDate() - 1)
  var d = Utilities.formatDate(veille, Session.getScriptTimeZone(), "yyyy-MM-dd");

C'est ce que j'ai fait.

Merci, j'ai mis en résolu le post avec tout ton code pour les futurs utilisateurs qui pourront profiter de tes bons conseils.

Rechercher des sujets similaires à "app script copier csv google sheet drive"