Google apps script tập hợp các hàm và cách sử dụng, cũng như ví dụ về cách ứng dụng trong thực tế.

1. GetDisplayValues vs GetDisplayValue vs GetValue:

– GetDisplayValues trả lại kết quả là giá trị được hiển thị. Khi sử dụng dữ liệu này ở các ứng dụng/function khác thì định dạng giữ nguyên. VD: data là dạng số hiển thị theo format locale => Mailapp khi gửi data đi thì định dạng data giữ nguyên các dấu chấm, phẩy. GetDisplayValueS() trả kết quả là 2D-array.

– GetDisplayValue(): trả kết quả là giá trị được hiển thị (data giữ nguyên định dạng). Data trả về là dạng 1D-array

– GetValueS(): trả kết quả là giá trị của cell, không gồm định dạng hiển thị. Data trả về là dạng 2D-array.

VD: khi xử lý data là number/date mà cần giữ định dạng thì cần sử dụng GetDisplayValue().

2. Avoid caching khi lấy data thông qua ImportXml – ImportHTML:

Đối cùng 1 url, Google sẽ caching data từ URL đó trong 2h. Để lấy data cập nhật, ta cần sử dụng URL + # + random number. Ví dụ đối với ImportXML:

var querystring = Math.round(Math.random()*100000);

var URL = "domain#" + querystring; 

3. Một số chú ý về range, array, row:

+ Trong Google sheet, row bắt đầu từ 1

+ Array: bắt đầu từ 0 => 2D-array bắt đầu value[0][0]

+ Range: value được trả về giống array

4. Cách tìm duplicate value:

Khi sử dụng apps script để tìm duplicate value trong 2 chuỗi hoặc 2 range hoặc 2 column, cần get value của 2 chuỗi đó (thường kết quả trả lại là 2D-array) => sau đó cần move value trong 2d-array sang 1d-array. Sau đó, dùng vòng lặp kết hợp với IF để so từng giá trị của chuỗi 1 với chuỗi 2.

5. Utilities.sleep:

Utilities.sleep() dùng để trì hoãn script với thời gian tính bằng milisecond. VD: Utilities.sleep(100) => delay 1 giây.

6. GmailApp Search:

Thanks to Labnol

7. Tìm thứ tự của paragraph trong google docs: 

– Find paragraph trong google docs:

paragraph.getNumChildren() => tìm số thự tự của đoạn paragraph trong văn bản Google Docs. 

– xóa paragraph chứa một ký tự cụ thể trong Goolge docs bằng Apps script (test script nay):

var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var targetWord = “abc”;
var delete_paragraph = body.findText(targetWord);
delete_paragraph.removeFromParent();

Leave a Reply

Your email address will not be published. Required fields are marked *