web-dev-qa-db-fra.com

importXML supprime les zéros non significatifs dans la feuille de calcul Google

J'extrais un numéro d'un fichier XML en ligne avec Google Spreadsheets. Parfois, le nombre commence par un zéro mais la feuille de calcul le supprime. Je suis sûr que le format de la cellule est "texte brut" (j'appuie sur 020 et 020 apparaît), mais après avoir entré la formule, c'est comme si elle devenait 'nombre'.

En supposant que ces données XML:

<sudoc service="ean2ppn">
<query>
<ean>9782870098585</ean>
<result>
<ppn>080253431</ppn>
</result>
</query>
</sudoc>

En utilisant une formule telle que:

=IMPORTXML("http://www.sudoc.fr/services/ean2ppn/9782870098585","/sudoc/query/result/ppn")  

retournera 80253431 alors que je voudrais qu'il retourne 080253431. Comment pourrais-je y parvenir?

3
mizolm

Avec la formule TEXT(number, format) on peut forcer l'affichage des zéros.

Dans mon cas, la formule est maintenant: =TEXT(IMPORTXML(linkOfData,xpath), "000000000")

3
mizolm

Si ppn est considéré comme faisant partie d'un code, je suggérerais alors de procéder comme suit:

Code

function ean2ppn(value) {
  // create array to hold results
  var output = [];

  // build URL
  var url = "http://www.sudoc.fr/services/ean2ppn/"+value+"&format=text/json";

  // fetch data as text
  var txt = UrlFetchApp.fetch(url).getContentText();

  // convert to JSON
  var data = JSON.parse(txt);

  // preset result
  var results = data.sudoc.query.result;

  // prepare output 
  if(typeof results.length != "number") {
    output.Push(results.ppn);
  } else {  
    for(var i in results) {
      output.Push(results[i].ppn);
    }
  }

  // return output to sheet
  return output;
}

Capture d'écran

enter image description here

A expliqué

Sur le site this, vous trouverez un exemple d'utilisation de JSON. Le code ci-dessus, construit l'URL, récupère les données et les analyse. Ensuite, le contenu de la ppn est renvoyé. Ensuite, vous pouvez décider si la valeur extraite est une chaîne ou un nombre.

Ajoutez le code sous Outils> Editeur de script, appuyez sur le bouton "bug" et le tour est joué !!

Restriction

Les quotas suivants sont applicables à URLFetchApp (Gmail, Google Apps, GA for Business):

enter image description here

Voir le tableau de bord de script Google Apps: https://script.google.com/dashboard

Exemple

J'ai créé un exemple de fichier pour vous: ean2ppn

2
Jacob Jan Tuinstra