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 对象中都有相似的办法,且后果都是一样,如下表格总结了相干办法:

办法作用SpreadsheetAppSpreadsheetSheet
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...