You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Excel自动同步数据到Google Earth Pro展示表格?

解决方案:Excel数据同步到Google Earth Pro KML并保留表格展示

方法1:Google Sheets + 自定义脚本生成KML

  • 先把Excel数据导入Google Sheets(直接拖入文件或通过「文件>导入」操作)
  • 编写Google Apps Script自动生成带表格样式的KML:
    1. 在Sheets中打开「扩展程序>Apps Script」
    2. 替换默认代码为自定义脚本,核心逻辑是读取每行数据,生成对应KML地标,并把表格内容嵌入<description>标签(完全匹配原KML的表格格式)
    3. 示例脚本片段:
      function generateBoothWorkersKML() {
        const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        const data = sheet.getDataRange().getValues();
        let kmlContent = '<?xml version="1.0" encoding="UTF-8"?>\n<kml xmlns="http://www.opengis.net/kml/2.2">\n<Document>\n';
        
        // 跳过表头,从第二行开始遍历数据
        for(let i = 1; i < data.length; i++){
          const lng = data[i][0]; // 假设第一列是经度
          const lat = data[i][1]; // 第二列是纬度
          const spotName = data[i][2]; // 第三列是点位名称
          // 复刻原KML的表格结构
          const infoTable = `
          <table border="1">
            <tr><th>姓名</th><td>${data[i][3]}</td></tr>
            <tr><th>负责区域</th><td>${data[i][4]}</td></tr>
            <tr><th>联系方式</th><td>${data[i][5]}</td></tr>
          </table>`;
          
          kmlContent += `<Placemark>\n<name>${spotName}</name>\n<description><![CDATA[${infoTable}]]></description>\n<Point>\n<coordinates>${lng},${lat},0</coordinates>\n</Point>\n</Placemark>\n`;
        }
        
        kmlContent += '</Document>\n</kml>';
        // 生成KML文件到Google云端硬盘
        DriveApp.createFile('booth_workers_sync.kml', kmlContent, MimeType.KML);
      }
      
    4. 运行脚本生成KML后导入Google Earth Pro,后续更新Sheets数据后重新运行脚本即可同步
  • 优势:完全自定义表格样式,和原硬编码KML的展示效果一致,无需第三方工具

方法2:Excel本地用VBA生成KML

  • 若偏好本地操作,可通过Excel VBA直接生成KML:
    1. 按Alt+F11打开VBA编辑器
    2. 插入模块,编写代码读取单元格数据并拼接成带表格描述的KML
    3. 示例VBA片段:
      Sub ExportBoothWorkersToKML()
        Dim ws As Worksheet
        Set ws = ActiveSheet
        Dim kmlText As String
        Dim rowIndex As Integer
        
        kmlText = "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbCrLf & "<kml xmlns=""http://www.opengis.net/kml/2.2"">" & vbCrLf & "<Document>" & vbCrLf
        
        For rowIndex = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
          Dim lng As String, lat As String, spotName As String, infoTable As String
          lng = ws.Cells(rowIndex, 1).Value
          lat = ws.Cells(rowIndex, 2).Value
          spotName = ws.Cells(rowIndex, 3).Value
          // 复刻原KML的表格结构
          infoTable = "<table border=""1""><tr><th>姓名</th><td>" & ws.Cells(rowIndex, 4).Value & "</td></tr><tr><th>负责区域</th><td>" & ws.Cells(rowIndex, 5).Value & "</td></tr></table>"
          
          kmlText = kmlText & "<Placemark>" & vbCrLf & "<name>" & spotName & "</name>" & vbCrLf & "<description><![CDATA[" & infoTable & "]]></description>" & vbCrLf & "<Point>" & vbCrLf & "<coordinates>" & lng & "," & lat & ",0</coordinates>" & vbCrLf & "</Point>" & vbCrLf & "</Placemark>" & vbCrLf
        Next rowIndex
        
        kmlText = kmlText & "</Document>" & vbCrLf & "</kml>"
        
        ' 选择路径保存KML文件
        Dim savePath As String
        savePath = Application.GetSaveAsFilename(fileFilter:="KML Files (*.kml), *.kml")
        If savePath <> "False" Then
          Open savePath For Output As #1
          Print #1, kmlText
          Close #1
        End If
      End Sub
      
    4. 运行宏生成KML后导入Google Earth Pro,更新Excel数据后重新运行宏即可同步
  • 优势:无需依赖云端,本地完成数据同步

关键注意事项

  • 确保Excel/Sheets的列顺序对应KML所需字段(经度、纬度、点位名称、表格展示的各项数据)
  • 原KML的表格格式要完全复刻到脚本的<description>标签内,并用CDATA包裹避免XML解析错误
  • Google Earth Pro导入KML后,右键查看点位属性即可看到和原硬编码一致的表格展示

内容的提问来源于stack exchange,提问作者Himanshu Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:16:42