Запишите данные из kmz на листе с помощью скрипта Google Apps - PullRequest
0 голосов
/ 01 апреля 2020

Я очень новичок в скрипте Google Apps. Я должен читать данные из нескольких кмз (метки и описания в основном). До сих пор мне удалось прочитать и разобрать его с помощью XmlService. Каков наилучший способ передачи данных в электронную таблицу?

  var kmzFile = DriveApp.getFileById('<ID>').getBlob();
  var unzipBlobs = Utilities.unzip (kmzFile.setContentType('application/zip'));
  var xml = unzipBlobs[0].getDataAsString()
  var document = XmlService.parse(xml)
  var root = document.getRootElement();
  var nameSpace = root.getNamespace()
  var folderRoot = root.getChild('Document', nameSpace).getChild('Folder', nameSpace)
  var folders = folderRoot.getChildren('Folder', nameSpace)

1 Ответ

0 голосов
/ 01 апреля 2020

Способ анализа кмз зависит от структуры указанного c документа, но при условии, что ваши интересующие данные содержатся в folders:

Вот пример того, как вставить извлеченный кмз данные в новый лист данной электронной таблицы:

var ss = SpreadsheetApp.openById("PASTE THE SPREADSHEET ID HERE");
var newSheet = ss.insertSheet();
var values = [];
if(folders.length!=0){
  for (var i = 0; i< folders.length; i++){
      values[i]=[];
      values[i].push(folders[i]);
    }
  newSheet.getRange(1,1,values.length, values[0].length).setValues(values);
  }

По сути, вы перебираете все folders и динамически создаете диапазон значений размера данных, а затем назначаете его диапазону в листе. .

...