SpreadsheetApp

https://hocggsheet.com/spreadsheetapp/

Các lệnh ở lớp SpreadsheetApp cho phép truy cập và thao tác với các file Google Trang Tính.

Phương thức

Trả về

Mô tả ngắn

Spreadsheet

Tạo 1 spreadsheet với tên đã cho

Spreadsheet

Tạo 1 spreadsheet với tên, số dòng và cột đã cho

void

Áp dụng tất cả thay đổi đang chờ trong bảng tính

Spreadsheet

Trả về 1 spreadsheet đang kích hoạt, hoặc null nếu không có

Range

Trả về dải ô đang kích hoạt, hoặc null nếu không có

RangeList

Trả về danh sách dải ô đang kích hoạt hoặc null nếu không có

Sheet

Lấy sheet đang kích hoạt

Spreadsheet

Trả về spreadsheet đang được kích hoạt hoặc null nếu không có

Range

Trả về 1 ô đang được chọn trong dải ô tại sheet đang kích hoạt hoặc null nếu không có

Selection

Trả về khu vực đang được chọn trong spreadsheet

Ui

Trả về môi trường mà ở đó người dùng được phép tạo menu, hộp thoại và thanh sidebar

ConditionalFormatRuleBuilder

Tạo quy tắc định dạng điều kiện

DataValidationBuilder

Tạo quy tắc xác thực dự liệu

Spreadsheet

Opens the spreadsheet that corresponds to the given File object.

Spreadsheet

Mở spreadsheet với ID cho sẵn

Spreadsheet

Mở spreadsheet với URL cho sẵn

Range

Kích hoạt dải ô cho sẵn, ô phía trên ngoài cùng bên trái là ô được chọn

RangeList

Kích hoạt danh sách dải ô

Sheet

Kích hoạt 1 sheet trong spreadsheet

Sheet

Kích hoạt 1 sheet trong spreadsheet, với lựa chọn khôi phục dải ô vừa mới được chọn

void

Kích hoạt 1 spreadsheet

Range

Kích hoạt 1 ô

create(name)

Tạo một bảng tính với tên đã cho

0123

// Code dưới đây tạo một bảng tính mới có tên "Finances" và ghi URL của file vừa tạo vào nhật kývar ssNew = SpreadsheetApp.create("Finances");Logger.log(ssNew.getUrl());

Tham số

TênLoạiMô tả

name

String

Tên bảng tính

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


create(name, rows, columns)

Tạo 1 spreadsheet với tên, số dòng và cột đã cho

0123

// Code dưới đây tạo một bảng tính có tên "Finances" với 50 dòng, 50 cột và ghi URL của file vừa tạo vào nhật kývar ssNew = SpreadsheetApp.create("Finances", 50, 5);Logger.log(ssNew.getUrl());

Tham số

TênLoạiMô tả

name

String

Tên bảng tính

rows

Integer

Số dòng trong bảng tính

columns

Integer

Số cột trong bảng tính

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


flush()

Áp dụng tất cả thay đổi đang chờ trong bảng tính

Các lệnh trong bảng tính đôi khi được kết hợp với nhau và chạy đồng thời để tăng hiệu suất, ví dụ như khi gọi nhiều lệnh Range.getValue(). Tuy nhiên, đôi khi bạn sẽ muốn nhìn thấy những thay đổi chờ này được thực thi tuần tự

0123456789101112131415

// Code dưới đây thay đổi màu nền của ô A1 và B1 hai mươi lần. Nếu flush() không được dùng, tất cả thay đổi này sẽ được thực hiện 1 lần và bạn chỉ nhìn thấy kết quả cuối cùng. Còn nếu flush() được gọi thì bạn sẽ thấy màu sắc được thay đổi từ lần 1 đến lần 20 function colors() { var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 0; i < 20; i++) { if ((i % 2) == 0) { sheet.getRange('A1').setBackground('green'); sheet.getRange('B1').setBackground('red'); } else { sheet.getRange('A1').setBackground('red'); sheet.getRange('B1').setBackground('green'); } SpreadsheetApp.flush(); }}

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getActive()

Trả về bảng tính đang kích hoạt, hoặc null nếu không có

012

// Code sau ghi URL của bảng tính đang kích hoạt vào nhật kýLogger.log(SpreadsheetApp.getActive().getUrl());


getActiveRange()

Trả về dải ô đang được chọn, hoặc null nếu không có. Nếu có nhiều dải ô đang được chọn, phương thức này chỉ trả về dải ô được chọn sau cùng.

0123

// Code dưới đây ghi màu nền của dải ô đang được chọn vào nhật kývar color = SpreadsheetApp.getActiveRange().getBackgroundColor();Logger.log(color);

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getActiveRangeList()

Trả về danh sách dải ô đang được chọn hoặc null nếu không có. Dải ô có chứa ô đang được chọn sẽ nằm cuối danh sách này.

Nếu chỉ có một dải ô được chọn, phương thức này hoạt động giống như getActiveRange()

012

// Trả về danh sách các dải ô đang được chọnvar rangeList = SpreadsheetApp.getActiveRangeList();

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getActiveSheet()

Lấy trang tính đang được chọn

Trang tính đang được chọn ở bảng tính là trang tính đang hiển thị trên bảng tính

012

// Code dưới đây ghi vào nhật ký tên của trang tính đang được chọnLogger.log(SpreadsheetApp.getActiveSheet().getName());

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getActiveSpreadsheet()

Trả về bảng tính đang được chọn hoặc null nếu không có

012

// Code dưới đây ghi vào nhật ký liên kết URL của bảng tính đang được chọnLogger.log(SpreadsheetApp.getActiveSpreadsheet().getUrl());

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getCurrentCell()

Trả về 1 ô đang được chọn trong trang tính hoặc null nếu không có

012

// Trả về ô đang được chọnvar currentCell = SpreadsheetApp.getCurrentCell();

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getSelection()

Trả về khu vực đang được chọn trong bảng tính

012

var selection = SpreadsheetApp.getSelection();var currentCell = selection.getCurrentCell();

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


getUi()

Trả về môi trường mà ở đó người dùng được phép tạo menu, hộp thoại và thanh sidebar. Để xem chi tiết, vui lòng tham khảo Cách tạo hộp thoại dialog

01234567891011

// Thêm một menu tùy chỉnh vào bảng tính đang mở, bao gồm cả dấu phân cách và một menu phụfunction onOpen(e) { SpreadsheetApp.getUi() .createMenu('My Menu') .addItem('My menu item', 'myFunction') .addSeparator() .addSubMenu(SpreadsheetApp.getUi().createMenu('My sub-menu') .addItem('One sub-menu item', 'mySecondFunction') .addItem('Another sub-menu item', 'myThirdFunction')) .addToUi();}


newConditionalFormatRule()

Tạo quy tắc cho định dạng theo điều kiện

0123456789101112

// Thêm một quy tắc định đang theo điều kiện cho một trang tính, quy tắc này chuyển dải ô A1:B3 sang nền màu đỏ// nếu chúng có chứa số từ 1 đến 10.var sheet = SpreadsheetApp.getActive().getActiveSheet();var range = sheet.getRange('A1:B3');var rule = SpreadsheetApp.newConditionalFormatRule() .whenNumberBetween(1, 10) .setBackgroundColor("#FF0000") .setRanges([range]) .build()var rules = sheet.getConditionalFormatRules();rules.push(rule);sheet.setConditionalFormatRules(rules);


newDataValidation()

Tạo quy tắc xác thực dự liệu

01234567

var cell = SpreadsheetApp.getActive().getRange('A1');var rule = SpreadsheetApp.newDataValidation() .requireNumberBetween(1, 100) .setAllowInvalid(false) .setHelpText('Number must be between 1 and 100.') .build();cell.setDataValidation(rule);


openById(id)

Mở bảng tính với ID cho sẵn. Một ID bảng tính có thể lấy từ URL của nó. Ví dụ, cho URL là https://docs.google.com/spreadsheets/d/abc1234567/edit#gid=0 thì “abc1234567” là ID

012345

// Code dưới đây mở một bảng tính thông qua ID và ghi tên của nó vào nhật ký// Lưu ý rằng người dùng KHÔNG thấy được trang tính được mở// Nó chỉ mở ở phía servervar ss = SpreadsheetApp.openById("abc1234567");Logger.log(ss.getName());

Tham số

TênLoạiMô tả

id

String

Thứ độc nhất của một bảng tính

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


openByUrl(url)

Mở bảng tính với URL cho sẵn

0123456

// Code dưới đây mở một bảng tính thông qua URL và ghi tên của nó vào nhật ký// Lưu ý rằng người dùng KHÔNG thấy được trang tính được mở// Nó chỉ mở ở phía servervar ss = SpreadsheetApp.openByUrl( 'https://docs.google.com/spreadsheets/d/abc1234567/edit');Logger.log(ss.getName());

Tham số

TênLoạiMô tả

url

String

URL của trang tính

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


setActiveRange(range)

Đặt một dải ô thành dải ô đang được chọn, ô phía trên ngoài cùng bên trái là ô được chọn

0123456789

// Code dưới đây đặt dải ô C1:D4 ở trang tính đầu tiên thành dải ô đang được chọnvar range = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange('C1:D4');SpreadsheetApp.setActiveRange(range); var selection = SpreadsheetApp.getSelection();// Current cell: C1var currentCell = selection.getCurrentCell();// Active Range: C1:D4var activeRange = selection.getActiveRange();

Tham số

TênLoạiMô tả

range

Dải ô được đặt là dải ô đang được chọn


setActiveRangeList(rangeList)

Đặt một danh sách các dải ô thành các dải ô đang được chọn. Dải ô cuối cùng trong danh sách sẽ là dải ô đang được chọn

01234567891011

// Code dưới đây đặt hai dải ô D4 và B2:C4 thành dải ô đang được chọnvar rangeList = SpreadsheetApp.getActiveSheet().getRanges(['D4', 'B2:C4']);SpreadsheetApp.setActiveRangeList(rangeList); var selection = SpreadsheetApp.getSelection();// Ô hiện tại: B2var currentCell = selection.getCurrentCell();// Dải ô đang được chọn: B2:C4var activeRange = selection.getActiveRange();// Danh sách dải ô đang được chọn: [D4, B2:C4]var activeRangeList = selection.getActiveRangeList();

Tham số

TênLoạiMô tả

rangeList

Danh sách các dải ô được chọn

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


setActiveSheet(sheet)

Đặt một trang tính thành trang tính đang được chọn. Google Sheet UI sẽ hiển thị trên trang tính này trừ khi nó thuộc về một bảng tính khác.

0123

// Code dưới đây đặt trang tính thứ 2 trong bảng tính thành trang tính đang được chọnvar spreadsheet = SpreadsheetApp.getActiveSpreadsheet();SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[1]);

Tham số

TênLoạiMô tả

sheet

Trang tính được chọn mới


setActiveSheet(sheet, restoreSelection)

Đặt một trang tính thành trang tính đang được chọn, với lựa chọn khôi phục vùng chọn được chọn gần đây nhất trong trang tính đó. Google Sheet UI sẽ hiển thị trên trang tính này trừ khi nó thuộc về một bảng tính khác.

01234567891011121314

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();var firstSheet = spreadsheet.getSheets()[0];var secondSheet = spreadsheet.getSheets()[1];// Đặt trang tính đầu tiên là trang tính được chọn và chọn dải ô D4:F4.spreadsheet.setActiveSheet(firstSheet).getRange('D4:F4').activate(); // Thử chuyển sang trang tính thứ 2spreadsheet.setActiveSheet(secondSheet);// Quay lại trang tính đầu tiên và khôi phục vùng chọn được chọn gần nhấtspreadsheet.setActiveSheet(firstSheet, true); // Vùng chọn trong trang tính đầu tiên đã được khôi phục, ghi nó nhật ký (dải ô D4:F4) để kiểm travar range = spreadsheet.getActiveSheet().getSelection().getActiveRange();Logger.log(range.getA1Notation());

Tham số

TênLoạiMô tả

sheet

Trang tính được chọn mới

restoreSelection

Boolean

Nếu là true, trang tính mới sẽ trở thành trang tính đang được chọn và dải ô được chọn gần nhất của nó sẽ được khôi phục Nếu là false, trang tính mới sẽ trở thành trang tính đang được chọn mà không có thay đổi gì về vùng chọn

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets


setActiveSpreadsheet(newActiveSpreadsheet)

Đặt bảng tính đang được chọn.

0123

// Code dưới đây đặt bảng tính có ID "1234567890" thành bảng tính đang được chọnvar ss = SpreadsheetApp.openById("1234567890");SpreadsheetApp.setActiveSpreadsheet(ss);

Tham số

TênLoạiMô tả

newActiveSpreadsheet

Bảng tính được chọn để làm bảng tính đang được chọn


setCurrentCell(cell)

Đặt một ô làm ô đang được chọn

Nếu ô đang nằm trong một dải ô đã được chọn, thì dải ô trở thành dải ô đang được chọn với ô là ô đang được chọn.

Nếu ô không nằm trong bất kỳ dải ô nào, thì dải ô đã được chọn sẽ bị hủy, và ô sẽ trở thành ô/dải ô đang được chọn.

01234567

// Code dưới đây đặt ô B5 ở trang tính đầu tiên làm ô đang được chọn.var cell = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange('B5');SpreadsheetApp.setCurrentCell(cell); var selection = SpreadsheetApp.getSelection();// Ô đang được chọn: B5var currentCell = selection.getCurrentCell();

Tham số

TênLoạiMô tả

cell

Ô được đặt làm ô đang được chọn

Xác thực quyền

Các lệnh dùng phương thức này yêu cầu xác thực quyền từ các scopes sau:

  • https://www.googleapis.com/auth/spreadsheets.currentonly

  • https://www.googleapis.com/auth/spreadsheets

Last updated

Navigation

Lionel

@Copyright 2023