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

通过Apps Script为表格G列单元格批量添加文本前缀的实现方法

G列批量添加指定前缀的实现方案

以下方案均满足「为G列除表头外所有非空单元格内容开头添加navigatela.lacity.org/前缀」的需求,可根据自己使用的表格工具、场景选择:

方案1:内置公式法(零代码,适合单次处理的普通用户)

不需要写代码,用表格自带的文本拼接功能即可完成:

  • 在G列旁新增临时空白列(比如H列),点击H2单元格(对应第一条数据行)输入公式:="navigatela.lacity.org/"&G2
  • 选中H2单元格,拖动单元格右下角的填充柄,下拉到所有数据行,自动生成全部带前缀的内容
  • 选中H列所有生成的内容,复制后右键选择「粘贴为值」覆盖原G列,删除临时H列即可
    *如果要跳过G列的空单元格,避免生成只有前缀的无效内容,可把公式替换为=IF(G2<>"","navigatela.lacity.org/"&G2,"")

方案2:VBA宏方案(适合本地Excel/WPS,支持重复一键执行)

如果需要经常做同类操作,可以写宏存到表格里,后续点一次就能完成处理:

  • 打开表格按Alt+F11调出VBA编辑器,右键点击当前工作簿插入新模块
  • 粘贴以下代码后按F5运行即可,操作前建议备份原表:
Sub AddGColumnPrefix()
    Dim lastRow As Long, i As Long
    Dim ws As Worksheet
    Set ws = ActiveSheet
    ' 定位G列最后一条有内容的行
    lastRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
    ' 从第2行开始遍历,跳过表头
    For i = 2 To lastRow
        If Trim(ws.Cells(i, "G").Value) <> "" Then
            ws.Cells(i, "G").Value = "navigatela.lacity.org/" & ws.Cells(i, "G").Value
        End If
    Next i
End Sub

方案3:Python脚本方案(适合批量处理多文件、自动化场景)

不需要打开表格客户端,用脚本可以批量处理多个表格文件,适合自动化流程:

  • 先安装处理xlsx文件的依赖:执行命令pip install openpyxl
  • 替换脚本里的文件路径,运行即可完成处理,默认会生成新文件不覆盖原表:
from openpyxl import load_workbook

# 替换为你自己的表格路径
target_file = "你的表格文件.xlsx"
wb = load_workbook(target_file)
# 替换为要处理的工作表名称
ws = wb["Sheet1"]
prefix_str = "navigatela.lacity.org/"

# 遍历G列第2行及以下的所有单元格
for row_num in range(2, ws.max_row + 1):
    cell = ws[f"G{row_num}"]
    cell_val = cell.value
    if cell_val is not None and str(cell_val).strip() != "":
        cell.value = prefix_str + str(cell_val)

# 保存处理后的文件
wb.save(f"已添加前缀_{target_file}")

*如果要处理xls格式的旧文件,可替换使用xlwings或pandas库,处理逻辑完全一致。

方案4:Apps Script方案(适合在线谷歌表格)

如果用的是谷歌在线表格,可以用自带的脚本服务批量处理:

  • 打开表格后点击顶部「扩展程序」-「Apps Script」进入脚本编辑页
  • 粘贴以下代码,点击运行授权后即可完成处理:
function addPrefixToGCol() {
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = activeSheet.getLastRow();
  const prefix = "navigatela.lacity.org/";
  // 读取G列从第2行开始的所有数据
  const dataRange = activeSheet.getRange(2, 7, lastRow - 1, 1);
  const dataValues = dataRange.getValues();
  // 批量拼接前缀
  const processedValues = dataValues.map(row => {
    const cellContent = row[0];
    return cellContent ? [prefix + cellContent] : [cellContent];
  })
  // 把处理后的数据写回表格
  dataRange.setValues(processedValues);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:39:21