Chaque semaine, je reçois une pièce jointe .xls/.csv dans mon courriel qui contient des données. Je télécharge ensuite les données dans Confluence à partir d'une feuille Google. Comment puis-je faire en sorte que la pièce jointe .xls mette automatiquement des données dans la feuille Google? Y a-t-il un script que je peux utiliser? La pièce jointe n'a jamais le même nom je pense.Comment importer automatiquement des données Excel hebdomadaires d'une pièce jointe à une feuille google?
0
A
Répondre
0
Voici un script que j'ai fait récemment pour quelqu'un d'autre. Je pense qu'il obtient des fichiers dans un dossier et les ajoute à une feuille, puis renomme les anciens fichiers en filename.old afin qu'il ne les chargera plus la prochaine fois que la fonction est appelée.
function appendingCSV() {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sht=ss.getActiveSheet();
var drng = sht.getDataRange();
var lastRow = drng.getLastRow();
//var data = loadFile();
var data = loadFiles();
var dataA =Utilities.parseCsv(data);
if(dataA.length>0)
{
var rng = sht.getRange(lastRow + 1, 1, dataA.length, dataA[0].length);
rng.setValues(dataA);
}
else
{
SpreadsheetApp.getUi().alert('No Data Returned from LoadFiles');
}
}
function loadFiles(folderID)
{
var folderID = (typeof(folderID) !== 'undefined')? folderID : 'FolderID';
var fldr = DriveApp.getFolderById(folderID);
var files = fldr.getFiles();
var s='';
var re = /^.*\.csv$/i;
while (files.hasNext())
{
var file = files.next();
var filename = file.getName();
if(filename.match(re))
{
s+=file.getBlob().getDataAsString().split('\n').splice(1).join('n') + '\n';//this was an attempt to strip off the headers. I don't know if it worked or not.
//s += file.getBlob().getDataAsString() + '\n';
file.setName(filename.slice(0,-3) + 'old');
}
}
return s;
}