共计 1915 个字符,预计需要花费 5 分钟才能阅读完成。
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=0
,ss.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…
正文完
发表至: google-sheets
2022-07-07