Bài 1: Khai Báo Biến và Đọc Ghi Ô – Dải Ô (Cell / Range)
https://hocggsheet.com/khai-bao-bien-doc-ghi-o-dai-o-cell-range/
Nội dung
https://hocggsheet.com/khai-bao-bien-doc-ghi-o-dai-o-cell-range/
Cách khai báo biến trong một hàm của Google App Script
Đọc ghi thông của một ô (cell) hoặc dải ô (range) trong Google Sheet bằng Google App Script
Tóm tắt
Google Sheet có 4 phân lớp biến: Application -> Spreadsheet -> Sheet -> Range. Để gọi 1 phân lớp sau, thì đầu tiên, bạn phải gọi các phân lớp đứng đằng trước nó ra
getRange() trả về vị trí của biến trong ngoặc
getValue() là hàm lấy giá trị của biến trong ngoặc
setValue() cho phép ghi giá trị trong ngoặc vào biến đằng trước
Logger.log() là hàm ghi giá trị trong ngoặc vào nhật kí (log)
I. Khai báo biến
Quy tắc
Trước khi giới thiệu cách khai báo, mình muốn các bạn hiểu rõ quy tắc khai báo sau đây. Nó tuy đơn giản nhưng lại vô cùng quan trọng vì chúng ta sẽ dùng nó khi viết hầu hết các chương trình trên App Script.
Google Sheet có 4 phân lớp biến:
Application -> Spreadsheet -> Sheet -> Range
Để gọi 1 phân lớp sau, thì đầu tiên, bạn phải gọi các phân lớp đứng đằng trước nó ra. Ví dụ, khi muốn làm việc với Spreadsheet, thì bạn phải gọi Application ra. Muốn làm việc với Sheet, thì phải gọi Application -> Spreadsheet. Muốn gọi range (ô / dải ô) thì phải gọi Application -> Spreadsheet -> Sheet.
1. Khai báo Application
Để khai báo Application bạn dùng cấu trúc như sau:
Application là phân lớp đầu tiên khi bạn làm việc với App Script – Sheet. Nói một cách ngắn gọn, hàm trên có chức năng gọi ra chương trình Google Sheet. Đây là hàm bắt buộc, nó sẽ xuất hiện trong hầu hết các bài chia sẻ của mình. Tuy nhiên sau này chúng ta sẽ tiến hành gộp chung nó với hàm bên dưới (Spreadsheet). Còn trong bài này, tạm thời mình tách riêng từng phần để các bạn dễ hiểu.
2. Khai báo Spreadsheet
Spreadsheet là phân lớp thứ 2, đứng dưới Application. Như bạn biết, trong Google Drive, bạn có thể tạo nhiều file Google Sheet khác nhau. Từng file lại có từng tên khác nhau. Chúng ta dùng hàm getActiveSpreadsheet() để gọi ra file Google Sheet mà chúng ta đang thao tác.
Để biết tại sao phải có SpreadsheetApp đứng trước, bạn vui lòng kéo lên trên để đọc lại Quy tắc
3. Khai báo Sheet
Phân lớp thứ 3 là Sheet. Trong một file Google Sheet sẽ có nhiều sheet nhỏ. Ví dụ trong hình là sheet0, sheet1, và sheet2.
Để khai báo 1 sheet, bạn dùng cú pháp như sau:
Vẫn theo Quy tắc, bạn phải gọi cả Application và Spreadsheet ra trước.
4. Khai báo Ô / Dải Ô (Range)
Ô hoặc Dải ô là phân lớp nhỏ nhất của 1 file Google Sheet. Có nhiều cách để gọi 1 ô hoặc dải ô. Sau đây mình giới thiệu bạn các cách chính mà mình thường dùng:
getActiveCell() : ô mà bạn đang chọn trong file Google Sheet
getActiveRange() : dải ô mà bạn đang chọn trong file Google Sheet
getRange() : có thể gọi ra ô hoặc cả dải ô bất kì trong ngoặc
Ví dụ cách sử dụng:
Cuối cùng, chúng ta đặt 4 biến trên vào trong cùng 1 function:
Trên thực tế, chúng ta ít khi làm việc với phân lớp Application, nên sẽ không dùng cả 4 biến để khai báo như vậy. Ở bài sau, mình sẽ hướng dẫn các bạn cách thu gọn những dòng lệnh trên.
II. Đọc và ghi thông tin Ô (cell) hoặc Dải ô (range)
Trước khi tiến hành đọc ghi ô hoặc dải ô, bạn cần phải khai báo được vị trí của ô đó bằng hàm getRange().
Ví dụ, mình muốn đọc ghi thông tin của ô B1, là 100000. Thì đầu tiên mình phải gọi ra được vị trí của ô B1 trong bảng tính “sheet1“, trong file “Bài 1“, và trong ứng dụng Google Sheet.
Để gọi vị trí của 1 ô hoặc dải ô, chúng ta dùng hàm getRange()
getRange() trả về vị trí của biến trong ngoặc
hocggsheet.com
Hàm getValue() có tất cả 4 cách dùng. Trong bài này, mình sử dụng cách dùng thứ nhất (a1Notation). Nghĩa là bỏ tên của ô hoặc dải vô vào trong dấu ngoặc kép (” “)
Ví dụ, để gọi vị trí ô B1, mình viết: getRange(“B1”). Cụ thể, chúng ta viết lại như sau:
Sau khi dùng biến range để gọi vị trí ô B2, ta tiếp tục sử dụng hàm getValue() để lấy giá trị “100000” trong ô B2 ra.
getValue() là hàm lấy giá trị của biến trong ngoặc
Cách dùng:
Tuy nhiên, chúng ta sẽ bỏ dòng lệnh trên vào hàm Logger.log()
Logger.log() là hàm ghi giá trị trong ngoặc vào trong nhật kí (log)
hocggsheet.com
Chúng ta bấm “Chạy” để thực hiện chương trình. Sau đó bấm “Xem” -> Nhật kí để xem file nhật kí (bản tiếng Anh: View -> Log)
Trong file log (nhật kí) đã hiện giá trị của ô B1, là 100000
Tiếp theo, để ghi giá trị vào ô hoặc dải ô, chúng ta dùng hàm setValue(). Nếu giá trị trong ngoặc là chữ cái thì bạn phải đặt trong dấu ngoặc kép (“”), còn nếu là số thì không cần.
setValue() cho phép ghi giá trị trong ngoặc vào biến đằng trước
hocggsheet.com
Ví dụ, mình muốn ghi giá trị “100” vào ô B2. Mình sẽ viết là:
Ở trong clip hướng dẫn, mình có hướng dẫn các bạn cách ghi giá trị của ô B1 (100000) vào ô B8. Để làm vậy, trước tiên chúng ta cần khai báo vị trí của ô B8 và gán nó vào 1 biến bất kì. Mình đã dùng biến “dich” để làm.
Đồng thời, mình cũng dùng thêm 1 biến “giatri” để lấy giá trị 100000 của ô B1.
Tiếp theo, chúng ta dùng lệnh setValue để thực hiện yêu cầu. Cả bài sẽ được như sau:
Last updated