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();