# Google App Script
Mình có đề cập sử dụng Google Sheet như là công cụ để crawl dữ liệu.
Dạng kiểu bạn có thể viết VB trong Excel.
Thì đây với cương vị là một JS developer không biết cái tool này thì hơi phí.
# Yeah, start with Why
Why?
- Xử lý data, lọc data, format lại data
- Xử lý công thức phức tạp không thể nào sử dụng Formula bình thường
- Nhiều feature hay: đặt lịch tự động chạy script, tự động trigger script theo sự kiện, viết bằng JS nè, ...
How?
Trên thanh công cụ>Trình chỉnh sửa tập lệnh- Đặt tên dự án + Viết Code
Chạy>Chạy hàm>Chọn>Xem kết quả
Tài liệu nghiên cứu
Rất nhiều thứ hay ho ở đây như:
UrlFetchAppđể fetch HTML về nè,Cheeriođể xử lý HTML string như jQuery xử lý DOM vậy
# Get Sheet
Để xử lý dữ liệu, trước hết phải biết thao tác trên trang nào, dưới đây là 2 cái mình hay dùng
# Sheet đang active
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
# Sheet qua tên
var sheetName = 'DS Lớp';
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
# Get & Set Cell Data
Sau khi lấy được sheet thì cần get / set data vào Cell. Viết nó thành helpers để sau này nhìn tham số mà truyền vào thôi.
Tại vì cái getRange origin nó quá phức tạp đi =)) mình thì lười mở API lên đọc. Thế thôi, với lại cũng khá ý nghĩa
function getCellValue(sheet, rowIndex, colIndex) {
return sheet.getRange(rowIndex, colIndex).getValue();
}
function setCellValue(sheet, rowIndex, colIndex, value) {
sheet.getRange(rowIndex, colIndex).setValue(value);
}
Note: rowIndex, colIndex đều được đếm từ 1 nhé. Không phải số 0 giống mảng trong lập trình đâu.
# Hàm tiện ích khác
# getMaxRows
Lấy số dòng của Sheet
sheet.getMaxRows();
# getDataRange
Lấy tất cả data. Có thể parse nó qua thành JSON các kiểu =))
Nhưng mà parse xong thì đừng set nó vào Cell, vì mỗi Cell chiều dài có giới hạn
var data = sheet.getDataRange().getValues();
var jsonData = JSON.stringify(data);
# Lên lịch
- Dưới thanh công cụ trong trình chỉnh sửa Code, đó là thanh công cụ thứ 2 =))
- Trên thanh đó có nút
Savedạng icon - Cạnh nút ấy, bên phải có cái icon
Đồng hồ, click vào đấy bạn sẽ đến nơi muốn đến - Tại ấy, tìm
Tạo trình kích hoạt mới - Mò tiếp =))
# To be continued
... Sau này update thêm