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

Google Sheets脚本如何为选中单元格区域批量生成谷歌地图超链接

完整可直接使用的代码

function onOpen() {
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('我的功能按钮')
        // 可按需保留/删除单单元格选项,多单元格函数天然兼容单单元格场景
        .addItem('生成单单元格谷歌地图链接', 'singleGoogleMaps')
        .addItem('批量生成谷歌地图链接', 'multiGoogleMaps')
        .addToUi();
}

// 原有单单元格函数,已做兼容性优化
function singleGoogleMaps() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var activeCell = ss.getActiveCell();
    var currentCellValue = activeCell.getValue();
    if(currentCellValue != ""){
        // 新增encodeURIComponent处理特殊字符,避免链接失效
        var newCellValue = '=HYPERLINK("https://www.google.com/maps/search/?api=1&query='+ encodeURIComponent(currentCellValue) +'","'+ currentCellValue +'")'
        activeCell.setValue(newCellValue) 
    }
}

// 新增多单元格适配函数,选中任意大小区域都可批量处理
function multiGoogleMaps() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var activeRange = ss.getActiveRange();
    // 一次性读取选中区域所有值,返回二维数组结构为[行索引][列索引]
    var rangeValues = activeRange.getValues();
    // 遍历处理每个单元格
    for (var row = 0; row < rangeValues.length; row++) {
        for (var col = 0; col < rangeValues[row].length; col++) {
            var cellValue = rangeValues[row][col];
            if (cellValue != "") {
                rangeValues[row][col] = '=HYPERLINK("https://www.google.com/maps/search/?api=1&query='+ encodeURIComponent(cellValue) +'","'+ cellValue +'")'
            }
        }
    }
    // 批量写入处理结果,比循环逐个写入性能高很多,选中大量单元格也不会卡顿
    activeRange.setValues(rangeValues);
}

优化说明

  • 新增了encodeURIComponent方法处理地址内容,就算地址里有空格、特殊符号也不会导致链接失效
  • 多单元格函数采用批量读写逻辑,适配任意大小的选中区域,不需要单独维护单/多单元格两套逻辑

内容的提问来源于stack exchange,提问作者Bowe Bonney

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:27:04