Google 表格脚本简介

Google 的在线应用允许用户通过脚本(Google Apps Script)对其增加功能,以 Google 表格为例,可以增加菜单加入一些本来没有的功能,也可以增加没有的公式完成更复杂的运算,如果会 JavaScript,很容易就会上手了。

管理脚本

添加 Apps 脚本

打开或新建一个表格,通过菜单“扩展程序-Apps 脚本”进入项目编辑器。
Google 表格脚本简介_第1张图片

默认项目名称“未命名项目”,建立了一个.gs后缀名的脚本文件,并且写了一个myFunction函数。

运行和调试

在函数内加一行代码并保存,点击运行结果如下。这里的运行是指运行下拉菜单中选中的某个函数。
Google 表格脚本简介_第2张图片

也可以给代码加断点来调试脚本。
Google 表格脚本简介_第3张图片

和表格交互

添加菜单

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('我的菜单')
    .addItem('你好', 'hello_')
    .addToUi();
}

function hello_(){
  Browser.msgBox('你好');
}

onOpen是一个内部函数,在表格打开的时候会自动触发执行。
hello_函数名后加下划线表示这个函数只能在脚本内部通过其他函数来调用。
保存后运行,表格页面即会出现菜单。
Google 表格脚本简介_第4张图片

添加自定义公式

脚本内满足条件的函数都可以当做公式使用,例如增加一个获取当前日期的函数,在表格中直接使用=dateNow()即可,每次重新打开表格都会更新为当天的日期。

function dateNow(){
  return new Date().toISOString().slice(0, 10);
}

image.png

获取当前选择的单元格值

function getCurrentValue(){
  let current = SpreadsheetApp.getCurrentCell().getValue();
  console.log(current);
}

因为函数后没加下划线,所以可以直接在下拉菜单里选择后执行。
选一个有内容的单元格,然后执行结果如下,根据单元格的格式,getValue()会返回不同的类型数据。
Google 表格脚本简介_第5张图片

遍历选中的多个单元格值

function getSelectionValues(){
  let activeSheet = SpreadsheetApp.getActiveSheet();
  let ranges = activeSheet.getSelection().getActiveRangeList().getRanges();
  ranges.forEach(function(range){
    let numRows = range.getNumRows();
    let numColumns = range.getNumColumns();
    for (let r = 1; r <= numRows; r++) {
      for (let c = 1; c <= numColumns; c++) {
        let cellValue = range.getCell(r, c).getValue()
        console.log(cellValue);
      }
    }
  });
}

Google 表格脚本简介_第6张图片

注意

  • 第一次运行会出现授权提示;
  • 关闭表格后项目编辑器会自动关闭;
  • 修改代码后需要保存重新运行才生效;
  • 脚本代码和表格关联,下一次打开仍然存在,可直接分享给其他人;
  • 分享后的新的用户第一次使用菜单等也会出现授权提示。

参考文档

你可能感兴趣的:(google-sheets)