使用 Google Apps 脚本从 sheet 上的 kmz 写入数据

Write data from kmz on sheet with Google Apps Script

我是 Google Apps 脚本的新手。我必须从多个 kmz 读取数据(主要是地标和描述)。到目前为止,我已经设法用 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)

如何解析 kmz 取决于特定文档的结构,但假设您感兴趣的数据包含在 folders:

下面是一个示例,说明如何将检索到的 kmz 数据插入到给定传播sheet 的新 sheet 中:

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 并动态创建数据大小的值范围,然后将其分配给 sheet.

中的范围