2017-08-23 7 views
1

Je ne suis pas un codeur, mais je suis en train de pirater un script Google Apps pour importer des données de l'application de fitness Strava sur une feuille Google et manipuler ces données pour les analyser. J'ai réussi à utiliser l'API Strava et l'API de feuilles Google pour importer les données. Cependant, maintenant, je dois trouver un moyen de trier mes données afin que je puisse l'analyser. Étant donné que l'API Strava ajoute une nouvelle ligne à chaque activité physique, il semble que je doive dupliquer les données (valeurs) dans une nouvelle feuille. J'ai essayé d'utiliser des formules pour extraire les données de la feuille d'importation, mais cela ne semble pas fonctionner une fois triées. Par conséquent, une solution qui vient à l'esprit est d'utiliser la collection spreadsheets.values ​​dans l'API Sheets pour ajouter des données à une nouvelle feuille. Cela conduit à deux questions:Simple Google Script utilisant l'API Sheets

  1. Existe-t-il une meilleure pratique pour filtrer les données dynamiques?

  2. En supposant que l'approche ci-dessus est raisonnable, à quoi ressemblerait le code? Les exemples donnés par Google dans la documentation de l'API Sheets n'incluent pas les Apps Scripts, et je ne suis pas un codeur, donc je recherche de l'aide. Voici ce que j'ai écrit jusqu'ici. "rangeNamefrom" est la feuille qui reçoit les données Strava. "rangeNameto" est la feuille où je veux placer les données en tant que valeurs. Toute aide serait grandement appréciée. Merci d'avance.

/** 
 
* Creates a Sheets API service object and transfers data from one tab to another of the following spreadsheet as values 
 
* https://docs.google.com/spreadsheets/d/10mCWosPmxW71WtuHDtsfpfVU5459NJ24IRbHtxYwoCI/edit#gid=2030256469 
 
*/ 
 
function TransferValues() { 
 
    var spreadsheetId = '10mCWosPmxW71WtuHDtsfpfVU5459NJ24IRbHtxYwoCI'; 
 
    var rangeNamefrom = 'ProcessedData!A2:AZ1000'; 
 
    var rangeNameto = 'ViewTabs!A2:AZ1000'; 
 
    var values = SpreadsheetApp.values.batchGet(spreadsheetId, rangeNamefrom).values; 
 

 
    if (!values) { 
 
    Logger.log('No data found.'); 
 
    } else { 
 
    SpreadsheetApp.values.batchUpdate(spreadsheetId, rangeNameto).values; 
 
    } 
 
}

Répondre

0

La méthode batchUpdate n'est pas disponible avec le service SpreadsheeetApp. Vous devez passer au service Feuilles avancées comme décrit dans le documentation.

Vous devez également activer l'API Google Sheets dans le projet de console associé.