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

如何从Google Sheets的Smart Chips中提取地址并转为文本?

问题解决:提取Google Maps地址Smart Chip文本到L列

原脚本的核心问题

  • 遍历范围错误:原脚本遍历整个表格,而非仅目标E列,且输出列不是需求的L列
  • 获取内容错误:getLinkUrl()只能拿到Smart Chip的跳转链接,而非显示的地址文本
  • 效率低下:逐单元格读写会触发多次API调用,易导致超时或无响应

修正后的脚本

function extractAddressToColumnL() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 定位E列(第5列)的数据范围,跳过表头(从第2行开始)
  const lastRow = sheet.getLastRow();
  if (lastRow < 2) return; // 无数据时直接退出
  const eRange = sheet.getRange(2, 5, lastRow - 1, 1);
  const richTextValues = eRange.getRichTextValues();
  
  // 准备要写入L列(第12列)的地址文本数组
  const addressTexts = richTextValues.map(row => {
    const richText = row[0];
    // Smart Chip的显示文本就是地址,直接提取
    return [richText.getText()];
  });
  
  // 批量写入L列,从第2行开始
  sheet.getRange(2, 12, addressTexts.length, 1).setValues(addressTexts);
}

关键优化点

  • 精准定位范围:仅处理E列数据行,直接输出到L列,避免无效遍历
  • 正确提取内容:通过getText()获取Smart Chip显示的地址文本,而非跳转链接
  • 批量操作:一次性读取所有RichText值,处理后批量写入,大幅提升执行效率
  • 边界处理:判断表格是否有数据,避免空表报错

使用说明

  1. 打开你的Google表格,点击「扩展程序」→「Apps脚本」
  2. 删除原有代码,粘贴上述修正后的脚本
  3. 点击「运行」,首次运行需授权脚本访问表格权限
  4. 运行完成后,L列会自动填充E列Smart Chip对应的地址文本

内容的提问来源于stack exchange,提问作者Communications Staff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:22:34