【问题标题】:Write data from kmz on sheet with Google Apps Script使用 Google Apps 脚本将 kmz 中的数据写入工作表
【发布时间】:2020-04-01 08:38:06
【问题描述】:

我是 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)

【问题讨论】:

    标签: xml google-apps-script google-sheets kmz


    【解决方案1】:

    如何解析kmz取决于具体文档的结构,但假设你感兴趣的数据包含在folders中:

    以下是如何将检索到的 kmz 数据插入给定电子表格的新工作表的示例:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      相关资源
      最近更新 更多