乐趣区

关于google-sheets:Google-表格脚本单元格基础

Google App Script 中应用 SpreadsheetApp 服务来读取、创立、批改 Google 表格等操作。

获取、批改流动单元格值

function logCurrent() {let currentSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  let currentSheet = currentSpreadsheet.getActiveSheet();
  let currentRange = currentSheet.getCurrentCell();
  console.log(currentRange.getValue());
}
  • SpreadsheetApp.getActiveSpreadsheet()获取以后表格文件对象(Spreadsheet);
  • currentSpreadsheet.getActiveSheet()获取当前工作表对象(Sheet);
  • currentSheet.getCurrentCell()获取以后流动单元格对象(Range);
  • 再通过单元格对象的 getValue()setValue()办法获取或批改流动单元格的值。

表格中的对象

由小到大,能够把 Google 表格中的对象分为 Range、RangeList、Sheet、Spreadsheet。

单元格 Range

Range 是表格里的最小元素,示意单元格的区域,能够是一个单元格或者是一组单元格。

  • 当是一个单元格时能够用 getValue() 办法获取单元格显示的值,返回字符串;
  • 当是一组单元格时则须要用 getValues() 来获取值,返回一个二维数组,第一层为行,第二层为列。

如下图,data最终的值为[[1,2],[3,4]]

function logData() {let sheet = SpreadsheetApp.getActiveSheet();
  let range = sheet.getDataRange()
  let data = range.getValues();
  console.log(data);
}

RangeList

RangeList 是多个 Range 的汇合。

工作表 Sheet

Sheet 即表格,表格由单元格组成,即是由 Range 组成。

下面代码中 sheet.getDataRange() 办法获取了一个单元格区域,区域的左上角为 A1,区域的右下角为最初一个有数据的单元格。

如果表格数据如下图,那么将获取到四行三列的区域,data 值就为[[1,2,''],[3, 4,''],['','',''], ['','',5]]

表格文件 Spreadsheet

Spreadsheet 为 Google 表格文件对象,应用 SpreadsheetApp.getActiveSpreadsheet() 可获取以后流动的 Spreadsheet。
如下代码,ss.getUrl()获取文件的 URL,例如 https://docs.google.com/spreadsheets/d/abc1234567/edit#gid=0ss.getId() 获取文件的 ID,也就是 URL 中的 abc1234567 局部,ss.getName()获取文件名。

let ss = SpreadsheetApp.getActiveSpreadsheet();
cosole.log(ss.getUrl());
cosole.log(ss.getId());
cosole.log(ss.getName());

getActiveXXX 办法

因为以后对象是惟一的,所以在 SpreadSheetApp、SpreadSheet、Sheet 对象中都有相似的办法,且后果都是一样,如下表格总结了相干办法:

办法 作用 SpreadsheetApp Spreadsheet Sheet
getActiveSpreadsheet 获取以后 Spreadsheet
getActive 获取以后 Spreadsheet
getActiveSheet 获取以后 Sheet
getActiveRangeList 获取以后 RangeList
getActiveRange 获取以后 Range
getActiveCell 获取以后单元格
getCurrentCell 获取以后单元格

获取、批改任意单元格值

let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheets()[0];
let cell = sheet.getRange("B2");
cell.setValue(100);

参考文档

  • Class SpreadsheetApp:https://developers.google.com…
退出移动版