Googleスプレッドシートを使用して、XMLオンラインファイルから1つの数値を抽出します。数字がゼロで始まる場合もありますが、スプレッドシートで削除されます。セルのフォーマットは「プレーンテキスト」であると確信しています(押す 020 および020
が表示されます)が、数式を入力すると、「数値」になったようになります。
このデータXMLを想定:
<sudoc service="ean2ppn">
<query>
<ean>9782870098585</ean>
<result>
<ppn>080253431</ppn>
</result>
</query>
</sudoc>
次のような式を使用します。
=IMPORTXML("http://www.sudoc.fr/services/ean2ppn/9782870098585","/sudoc/query/result/ppn")
80253431
を返しますが、080253431
を返します。どうすればこれを達成できますか?
式TEXT(number, format)
を使用すると、強制的にゼロを表示できます。
私の場合、式は次のとおりです。=TEXT(IMPORTXML(linkOfData,xpath), "000000000")
Ppnがコードの一部であると見なされる場合、以下を実行することをお勧めします。
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;
}
thisWebサイトには、JSONの使用方法の例があります。上記のコードは、URLを作成し、データを取得して解析します。その後、ppnのコンテンツが返されます。その後、取得した値が文字列か数値かを決定できます。
[ツール]> [スクリプトエディター]でコードを追加し、[バグ]ボタンを押して、外出中です!!
次のクォータはURLFetchAppに適用されます(Gmail、Google Apps、GA for Business):
Google Apps Scriptダッシュボードをご覧ください: https://script.google.com/dashboard
サンプルファイルを作成しました:ean2ppn (