Một ngày đẹp trời có một người chúng ta gọi mang lại mình, chưa vội nghe trang bị mình nghĩ về trong đầu lâu ngày hotline như này thứ hạng gì cũng đều có việc nó dựa vào mình. Thường thì nó call thì chỉ hoàn toàn có thể một là nhờ support mua năng lượng điện thoại, 2 là nhờ sở hữu lại win lắp thêm tính. Chả gọi sao cứ làm nghề này là cứ bị auto nhờ sửa thiết bị với sở hữu win nhỉ?

Giờ ta test viết 1 đoạn mã lệnh cơ phiên bản để thao tác với Google Sheets coi nhé. Ví dụ viết 1 đoạn mã để khi bắt đầu mở tệp tin thì tự động thêm 1 cái menu chẳng hạn. =)) Đầu tiên nhằm viết mã mang đến file Google Sheets này ta vào cách thức => Trình chỉnh sửa tập lệnh. Mở ra giao diện để soạn code. Ta biên soạn code như sau:
function on
Open(e) { // địa chỉ a custom menu lớn the spreadsheet. Spreadsheet
App.get
Ui() // Or Document
App, Slides
App, or Form
App. .create
Menu("Custom Menu") .add
Item("First item", "menu
Item1") .add
To
Ui();Chạy lên ta có tác dụng menu như sau:

function on
Open(e) // địa chỉ a custom menu to the spreadsheet. Var ss = Spreadsheet
App.get
Active
Spreadsheet(); var sheet = ss.get
Sheets()<0>; var cell = sheet.get
Range("A12:E12"); cell.set
Font
Style("italic"); cell.set
Background("yellow");Kết quả:

Note: Hàm on
Open là một trong những trigger của Apps Script giành riêng cho Sheets. Code vào hàm này sẽ tự động hóa chạy khi bạn mở tệp tin Google Sheets. Để đọc thêm về các trigger vào Apps Script mời các bạn xem tại đây https://developers.google.com/apps-script/guides/triggers/
Xong Helloworld, quay lại bài toán ban đầu. Sau vượt trình nghiên cứu tìm cách giải quyết và xử lý mình đã tìm kiếm được một qui định đắc lực trong Apps Script giúp họ giải quyết bài toán đó là Time-driven triggers. Đơn giản Time-driven triggers y như Cron-job vào Unix. Time-driven triggers được cho phép các tập lệnh được kích hoạt trong 1 thời điểm cụ thể hoặc vào một khoảng thời gian định kì, liên tiếp như từng phút hoặc không liên tiếp mỗi mon 1 lần. Thời gian hoàn toàn có thể được ngẫu nhiên một chút ít - ví dụ: nếu như khách hàng tạo trình kích hoạt 9 giờ sáng định kỳ, Apps Script chọn thời gian từ 9h sáng mang đến 10 giờ đồng hồ sáng, kế tiếp giữ thời hạn đó đồng điệu từ ngày nay sang ngày khác nhằm 24 giờ đồng hồ trôi qua trước khi kích hoạt lại.
Bạn đang xem: Hẹn giờ gửi email trong google bảng tính
Ví dụ cơ bạn dạng về Time-driven trigger:
function create
Time
Driven
Triggers() // Trigger every 6 hours. Script
App.new
Trigger("my
Function") .time
Based() .every
Hours(6) .create();Code này đã kích hoạt hàm my
Function mỗi 6 giờ một lần.
Như vậy ta đã có phương pháp giải quyết bài bác toán: triển khai hẹn tiếng định kì mỗi ngày 1 lần sẽ tự động tải tệp tin backup với gửi về email. Mình sẽ dự định làm nó như sau:
Tạo 1 custom thực đơn là "Hẹn giờ nhờ cất hộ email"Mở ra 1 popup cho phép nhập mail vào mặt khác hiển thị trạng thái lúc này có đang rất được kích hoạt tuyệt khôngCó button để được cho phép Hẹn giờ hoặc hủy hứa giờ theo yêu cầu
Hiện thực hóa nó thôi:
Đầu tiên ta thêm 1 file Page.html để gia công cái popup như trên:
OyR0i
XCb
MQv3Xipma34MD+d
H/1f
Q784/j6c
Y/i
JTQUOhc
Wr7x9Jvo
Rx
T2MZw1T" crossorigin="anonymous"> link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" > head> body toàn thân style="padding: 2px;"> form> div class="form-group"> label for="example
Input
Password1">Trạng tháilabel> phường class="form-control-plaintext text-success "" : "d-none" ?>">i class="fa fa-check">i> Đã kích hoạtp> p class="form-control-plaintext text-info "d-none" : "" ?>">i class="fa fa-times">i> chưa kích hoạtp> div> br /> div class="form-group"> label for="example
Input
Email1">Nhập thư điện tử cần giữ hộ đếnlabel> input đầu vào type="email" class="form-control" id="email" aria-describedby="email
Help" value=""> small id="email
Help" class="form-text text-muted">Hệ thống sẽ auto tạo bạn dạng sao file với gửi vào mail thời gian 23h mặt hàng ngàysmall> div> button type="button" class="btn btn-success btn-sm btn-setting">span class="spinner-border spinner-border-sm d-none loading-setting" role="status" aria-hidden="true">span> hứa hẹn giờbutton> button type="button" class="btn btn-danger btn-sm btn-clear-setting" = status ? "" : "disabled" ?>>span class="spinner-border spinner-border-sm d-none loading-clear" role="status" aria-hidden="true">span> Hủy hứa hẹn giờbutton>form> script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965Dz
O0r
T7ab
K41JSt
QIAq
Vg
RVzpbzo5sm
XKp4Yf
Rv
H+8abt
TE1Pi6jizo" crossorigin="anonymous">script> script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2e
T0Cp
Hqd
SJQ6h
Jty5KVpht
Phz
Wj9WO1cl
HTMGa3JDZwrn
Qq4s
F86d
IHNDz0W1" crossorigin="anonymous">script> script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-Jj
Sm
Vgyd0p3p
XB1r
Rib
ZUAYo
IIy6Or
Q6Vrj
IEa
Ff/n
JGz
Ix
FDsf4x0x
IM+B07j
RM" crossorigin="anonymous">script> script> $(function() { $(".btn-setting").click(function() $("button").attr("disabled", true); $(this).find(".loading-setting").remove
Class("d-none"); google.script.run.with
Success
Handler(success
Event).setting(document.get
Element
By
Id("email").value); ); $(".btn-clear-setting").click(function() $("button").attr("disabled", true); $(this).find(".loading-clear").remove
Class("d-none"); google.script.run.with
Success
Handler(success
Event).clear
Setting() ); function success
Event() { $(".btn-setting").find(".loading-clear").add
function on
Open(e) // add a custom menu to lớn the spreadsheet. Spreadsheet
App.get
Ui() // Or Document
App, Slides
App, or Form
App. .create
Menu("Hẹn giờ nhờ cất hộ email") .add
Item("Cài đặt", "show
Dialog") .add
To
Ui(); function show
Dialog() var html = Html
Service.create
Template
From
File("Page"); var my
Data = Properties
Service.get
User
Properties(); Logger.log(my
Data.get
Properties()); var status = my
Data.get
Property("status"); html.your
Email = Session.get
Active
User().get
Email(); html.status = parse
Int(status); var html
Output = html.evaluate() .set
Width(500) .set
Height(300); Spreadsheet
App.get
Ui() // Or Document
App or Slides
App or Form
App. .show
Modal
Dialog(html
Output, "Cài đặt hẹn giờ gởi email");function send
Email() var sheet = Spreadsheet
App.get
Active(); var file
Name = sheet.get
Name(); var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + sheet.get
Id() + "&export
Format=xlsx"; var params = method : "get", headers : "Authorization": "Bearer " + Script
App.get
OAuth
Token(), mute
Http
Exceptions: true ; var blob = Url
Fetch
App.fetch(url, params).get
Blob(); blob.set
Name(sheet.get
Name() + "_" + Utilities.format
Date(new Date(), Spreadsheet
App.get
Active().get
Spreadsheet
Time
Zone(), "dd-MM-yyyy HH:mm") + ".xlsx"); // Send e-mail var my
Data = Properties
Service.get
User
Properties(); var e-mail = my
Data.get
Property("email"); var subject = "Gửi tệp tin " + file
Name + " từ động"; var message = "File gắn kèm mặt dưới"; Mail
App.send
Email(email, subject, message, attachments:
Data = Properties
Service.get
User
Properties(); var status = my
Data.get
Property("status"); status = 1; my
Data.set
Property("status", status); my
Data.set
Property("email", email); delete
Trigger(); Script
App.new
Trigger("send
Email") .time
Based() .at
Hour(23) .every
Days(1) .create(); Spreadsheet
App.get
Ui().alert("Cài đặt hẹn giờ gởi mail thành công");function clear
Setting() var my
Data = Properties
Service.get
User
Properties(); var status = my
Data.get
Property("status"); status = 0; my
Data.set
Property("status", status); delete
Trigger(); Spreadsheet
App.get
Ui().alert("Hủy hẹn giờ giữ hộ mail thành công");function delete
Trigger() // Loop over all triggers. Var triggers = Script
App.get
Project
Triggers(); for (var i = 0; i triggers.length; i++) Script
App.delete
Trigger(triggers); Giải thích một chút ít về đoạn code trên:
Dialog để mở popup thiết lập đặt
Khi click hẹn giờ thì ta đang chạy hàm setting để biến đổi trạng thái của thiết đặt hẹn giờ đồng hồ đồng thời vẫn kích hoạt trigger send
Email và tiến hành nó định kì hàng ngày 1 lần vào tầm khoảng 23h
Để tải file Google Sheets xuống ta cần sử dụng service Url
Fetch
App
Giờ thử xem kết quả này thôi nào:

Thử click hứa hẹn giờ và mong chờ điều tuyệt diệu xảy ra. Mà để đợi mang đến đêm thì quá lâu chỉnh sửa lại code cho chạy từng phút 1 lần để nhìn thấy luôn thành trái =))


Ngon rồi đồng đội ạ. Ráng máy hotline ngay cho thằng bạn để đòi nó 1 bữa beer thôi.

Dựa vào bài xích toán đưa ra ta mới thấy Google Apps Script hoàn toàn có thể mở rộng lớn ra nhiều bài toán hơn ví dụ như Hẹn giờ gửi mail cho một danh sách người dùng trong 1 sheet...vv các bạn hãy thử đề ra 1 việc và giải quyết nó bởi Google Apps Script xem sao nhé. Hình như không chỉ Google Sheets nhưng Google Apps Script còn hỗ trợ bọn họ trong tất cả các ứng dụng nằm trong hệ sinh thái xanh Google: Calendar, Docs, Drive, Gmail, Sheets, và Slides. Vày vậy giả dụ bạn có 1 yêu cầu quan trọng nào kia với những dịch vụ Google thì hãy tìm về Google Apps Script. Cảm ơn các bạn đã theo dõi bài bác viết. (bow)
Tính năng mới vừa được Gmail bổ sung cho phép người dùng hẹn trước giờ gởi email tự động lên mang đến 49 năm. Công dụng này tương thích đối với tất cả Gmail trên ứng dụng apk hay i
OS với web.
Chắc hẳn không ít lần, chúng ta đã ao ước gửi email vào một thời điểm độc nhất vô nhị định, dẫu vậy lại quên bẵng việc cần có tác dụng đó vị nhiều lý do?
Giờ đây, những thứ sẽ tốt hơn cho chính mình khi có thể soạn sẵn một hay những email, và lên lịch gửi nó vào một thời điểm ví dụ nhờ ứng dụng Boomerang, duy nhất là khi chúng ta thường xuyên thao tác làm việc với các đối tác doanh nghiệp ở những nước nhà khác múi giờ.

Nếu ko thấy nó, các bạn hãy thử đăng xuất và đăng nhập lại, hoặc bí quyết khác là cập nhật ứng dụng lên phiên bạn dạng mới duy nhất trên điện thoại. Khi đã sở hữu được tính năng mới, sau đây sẽ là các bước hướng dẫn hứa giờ gửi email Gmail trên web, tương tự như trên ứng dụng Gmail của hệ quản lý và điều hành Android cùng i
OS.
Hẹn giờ để gửi email auto trên app android và i
OS
Mở sẵn ứng dụng Gmail trên game android hoặc i
OS, các bạn soạn thư điện tử mới bằng phương pháp bấm nút hình dấu cộng ở phía dưới góc phải. Khi vẫn hoàn tất, hãy bấm nút tùy chọn (hình tía dấu chấm) ở phía trên góc phải, chúng ta chọn Schedule send (Gửi theo định kỳ biểu) xổ ra từ trình đơn.

Từ màn hình, bạn sẽ thấy hiển thị những tùy định ngày và tiếng gửi email có sẵn. Email sẽ gợi nhắc hiển thị những thời điểm thuận lợi nhất cho người nhận e-mail như chiều tương lai hoặc sáng sản phẩm Hai… Hoặc, bạn có thể chọn ngày với thời gian bằng cách bấm nút Pick a date & time rồi chọn theo ý muốn.

Tiếp theo, một thông tin ở dưới thuộc của screen sẽ hiện nay lên, cho thấy thêm email đã làm được lên định kỳ gửi từ bỏ động. Nếu như muốn hoàn tác hẹn giờ, hãy bấm Undo (Hoàn tác) hoặc bấm nút View message (Xem tin nhắn) để xem lại văn bản email.
Ngoài ra, bạn cũng có thể xem lại danh sách những email đã hẹn giờ gửi đi auto bằng biện pháp bấm nút trình solo hình ba thanh ngang ở phía trên góc trái, lựa chọn thẻ Scheduled (Đã lên lịch).

Hẹn giờ gởi đi thư điện tử Gmail tự động từ trình duyệt
Cách làm cũng tương tự nếu nhiều người đang sử dụng gmail từ trình coi sóc web. Bạn hãy bước đầu soạn e-mail mới, và click chuột vào hình tượng hình mũi tên bên cạnh nút Send (Gửi), chọn Schedule send (Gửi theo định kỳ biểu).

Tương tự như trên ứng dụng di động, chúng ta cũng có thể chọn các thời gian gửi đi như khoác định vì chưng Gmail cung cấp sẵn, hoặc lên kế hoạch theo ý muốn.

Nếu rất cần phải xem lại các email đã lên lịch, chúng ta cũng có thể chọn thẻ Scheduled (Đã lên lịch) từ bỏ trình đối chọi bên trái.
Xem thêm: Cách giới thiệu bằng tiếng anh về bản thân bằng tiếng anh ấn tượng nhất

Điểm quan trọng đặc biệt của tính năng mới này là khi chúng ta cần lên định kỳ gửi một thông điệp vào trong 1 thời điểm rất xa trong tương lai, nó chất nhận được bạn hẹn trước thời gian ngày gửi email lên đến mức 49 năm.
Có thể chúng ta quan tâm:
1. Dân văn phòng và công sở đã có công cụ trở thành bảng trong hình ảnh thành bảng Excel để sửa đổi dễ dàng