- Регистрация
- 11.04.2016
- Сообщения
- 121
- Благодарностей
- 38
- Баллы
- 28
В новой зенке появилась возможность парсинга XML, вот я что то никак не пойму как зенкой можно розпарсить файл. Есть скрипт который парит результат в таблицу. Хочется понять как это можно сделать в зено?
Собственно сам скрипт:
Файл исходник и результат в архиве.
Забыл сказать скрип парсит результат Таблицы google а мне бы просто в эксель.
Заранее спасибо.
Собственно сам скрипт:
Код:
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Admin');
var o=JSON.parse(Utilities.newBlob(Utilities.base64Decode(ss.getRange("D15").getValue())).getDataAsString());
var col=ss.getRange('C15').getValue();
var i = sheet.getLastRow()+1;
var xml = UrlFetchApp.fetch(o.url[e]).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var n=0;
var tovar = "";
var s = document.getRootElement().getChildren();
var price = 0;
var id_order = 0;
while(n < s.length){
if (s[n].getChild('status').getValue()=='Новая почта') {
sheet.getRange(col[0]+i).setValue(s[n].getChild('add_time').getValue());
id_order = s[n].getAttribute('id').getValue();
if (col[1]!=' ') sheet.getRange(col[1]+i).setValue(id_order);
if (s[n].getChild('fld3')) sheet.getRange(col[2]+i).setValue(s[n].getChild('fld3').getValue());
if (s[n].getChild('fld1')) sheet.getRange(col[3]+i).setValue(s[n].getChild('fld1').getValue().replace(/[^\d]/gi,'').substr(-10));
var ii=0;
var t = s[n].getChild('order_items').getChildren();
while(ii < t.length) {
if (t[ii].getChild('price')) price = t[ii].getChild('price').getValue().replace('.', ',');
tovar += t[ii].getChild('name').getValue() + " " + t[ii].getChild('cnt').getValue().replace('.00','') + " шт. х " + price + " грн.";
ii++;
if (ii != t.length) tovar += "\r\n";
}
if (s[n].getChild('fld5').getValue()!='') tovar += '\r\n(' + s[n].getChild('fld5').getValue() + ')';
sheet.getRange(col[4]+i).setValue(tovar);
tovar = "";
if (s[n].getChild('amount')) sheet.getRange(col[5]+i).setValue(s[n].getChild('amount').getValue().replace('.', ','));
if (s[n].getChild('fld4')) sheet.getRange(col[6]+i).setValue(s[n].getChild('fld4').getValue());
if (s[n].getChild('fld2')) sheet.getRange(col[10]+i).setValue(s[n].getChild('fld2').getValue());
if (col[18]!=' ' && s[n].getChild('email')) sheet.getRange(col[18]+i).setValue(s[n].getChild('email').getValue());
if (s[n].getChild('payment')) sheet.getRange(col[8]+i).setValue(s[n].getChild('payment').getValue());
if (o.color) sheet.getRange(i+':'+i).setBackground('yellow');
i++;
}
n++;
}
}
Забыл сказать скрип парсит результат Таблицы google а мне бы просто в эксель.
Заранее спасибо.
Вложения
-
14,3 КБ Просмотры: 8