Tập lệnh Ứng dụng Google Trang tính không cập nhật

Google Apps Script là ngôn ngữ kịch bản dựa trên đám mây để mở rộng chức năng của Google Apps và xây dựng các ứng dụng nhẹ dựa trên đám mây

Điều đó có nghĩa là bạn viết các chương trình nhỏ bằng Apps Script để mở rộng các tính năng tiêu chuẩn của Ứng dụng Google Workspace. Thật tuyệt vời khi lấp đầy khoảng trống trong quy trình làm việc của bạn

Với Apps Script, bạn có thể làm những việc thú vị như tự động hóa các tác vụ có thể lặp lại, tạo tài liệu, tự động gửi email cho mọi người và kết nối Google Trang tính của bạn với các dịch vụ khác mà bạn sử dụng

Tập lệnh Ứng dụng Google Trang tính không cập nhật
💡 Tìm hiểu thêm
Tìm hiểu thêm về Google Apps Script trong khóa học Giới thiệu về Apps Script miễn phí dành cho người mới bắt đầu này

Viết Google Script đầu tiên của bạn

Trong hướng dẫn về tập lệnh Google Trang tính này, chúng ta sẽ viết một tập lệnh được liên kết với Google Trang tính của chúng ta. Đây được gọi là tập lệnh giới hạn vùng chứa

(Nếu bạn đang tìm kiếm các ví dụ và hướng dẫn nâng cao hơn, hãy xem danh sách đầy đủ các bài viết về Apps Script trên trang web của tôi. )

Xin chào thế giới trong Google Apps Script

Hãy viết chương trình đầu tiên, cực kỳ cơ bản của chúng ta, chương trình cổ điển “Xin chào thế giới” được yêu thích trong các phòng giảng dạy máy tính trên toàn thế giới

Bắt đầu bằng cách tạo một Google Trang tính mới

Sau đó bấm vào menu. Tiện ích mở rộng > Tập lệnh ứng dụng

Thao tác này sẽ mở một tab mới trong trình duyệt của bạn, đó là cửa sổ trình soạn thảo Google Apps Script

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Theo mặc định, nó sẽ mở bằng một tệp Google Script duy nhất (code.gs) và một khối mã mặc định,

function myFunction() {
  Browser.msgBox("Hello World!");
}
0

function myFunction() {
  
}

Trong cửa sổ mã, giữa các dấu ngoặc nhọn sau cú pháp

function myFunction() {
  Browser.msgBox("Hello World!");
}
1, hãy viết dòng mã sau để bạn có mã này trong cửa sổ mã của mình

function myFunction() {
  Browser.msgBox("Hello World!");
}

Cửa sổ mã của bạn bây giờ trông như thế này

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Ủy quyền Tập lệnh Google Apps

Google Scripts có các biện pháp bảo vệ mạnh mẽ để giảm thiểu rủi ro từ các ứng dụng chưa được xác minh, vì vậy, chúng tôi thực hiện quy trình ủy quyền khi lần đầu tiên ủy quyền cho các ứng dụng của mình

Khi bạn nhấn nút chạy lần đầu tiên, bạn sẽ được nhắc cấp quyền cho ứng dụng chạy

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Lần lượt nhấp vào Xem lại quyền sẽ bật lên một cửa sổ khác, hiển thị những quyền mà ứng dụng của bạn cần để chạy. Trong trường hợp này, ứng dụng muốn xem và quản lý bảng tính của bạn trong Google Drive, vì vậy hãy nhấp vào Cho phép (nếu không, tập lệnh của bạn sẽ không thể tương tác với bảng tính của bạn hoặc làm bất kỳ điều gì)

Tập lệnh Ứng dụng Google Trang tính không cập nhật

❗️Khi chạy tập lệnh ứng dụng lần đầu tiên, bạn có thể thấy màn hình “ứng dụng chưa được xác minh” và cảnh báo về việc bạn có muốn tiếp tục hay không

Trong trường hợp của chúng tôi, vì chúng tôi là người tạo ứng dụng, chúng tôi biết nó an toàn nên chúng tôi muốn tiếp tục. Hơn nữa, các dự án tập lệnh ứng dụng trong bài đăng này không nhằm mục đích xuất bản công khai cho những người dùng khác, vì vậy chúng tôi không cần gửi nó cho Google để xem xét (mặc dù nếu bạn muốn làm điều đó, đây là thông tin thêm)

Nhấp vào nút “Nâng cao” ở dưới cùng bên trái của cửa sổ bật lên về quyền xem xét, sau đó nhấp vào “Chuyển đến Mã tập lệnh dành cho người mới bắt đầu (không an toàn)” ở cuối màn hình tiếp theo để tiếp tục. Sau đó, nhập từ “Tiếp tục” trên màn hình tiếp theo, nhấp vào Tiếp theo, cuối cùng xem lại các quyền và nhấp vào “CHO PHÉP”, như trong hình này (hiển thị một tập lệnh khác trong trình chỉnh sửa cũ)

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Bạn có thể tìm thêm thông tin trong bài đăng blog chi tiết này từ Chuyên gia phát triển Google Martin Hawksey

Chạy một chức năng trong Apps Script

Khi bạn đã ủy quyền tập lệnh Ứng dụng Google, chức năng sẽ chạy (hoặc thực thi)

Nếu có bất kỳ vấn đề gì xảy ra với mã của bạn, đây là giai đoạn bạn sẽ thấy thông báo cảnh báo (thay vì thông báo màu vàng, bạn sẽ nhận được hộp màu đỏ có thông báo lỗi trong đó)

Quay lại Google Trang tính của bạn và bạn sẽ thấy đầu ra của chương trình, một hộp thông báo bật lên với câu “Xin chào thế giới” cổ điển. " thông điệp

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Nhấp vào Ok để loại bỏ

Bạn đã làm rất tốt. Bây giờ bạn đã viết chương trình tập lệnh ứng dụng đầu tiên của mình

Đổi tên các chức năng trong Google Apps Script

Chúng ta nên đổi tên chức năng của mình thành một cái gì đó có ý nghĩa hơn

Hiện tại, nó được gọi là myFunction, tên chung, mặc định do Google tạo. Mỗi khi tôi muốn gọi chức năng này (tôi. e. chạy nó để làm gì đó) Tôi sẽ viết

function myFunction() {
  Browser.msgBox("Hello World!");
}
0. Điều này không mang tính mô tả lắm, vì vậy hãy đổi tên nó thành
function myFunction() {
  Browser.msgBox("Hello World!");
}
3, điều này cung cấp cho chúng tôi một số ngữ cảnh

Vì vậy, hãy thay đổi mã của bạn trong dòng 1 từ đây

function myFunction() {
  Browser.msgBox("Hello World!");
}

để này

function helloWorld() {
  Browser.msgBox("Hello World!");
}

Lưu ý, quy ước trong Apps Script là sử dụng quy ước đặt tên CamelCase, bắt đầu bằng một chữ cái viết thường. Do đó, chúng ta đặt tên cho hàm của mình là

function myFunction() {
  Browser.msgBox("Hello World!");
}
4, với chữ h viết thường ở đầu hello và chữ W viết hoa ở đầu World

Thêm menu tùy chỉnh trong Google Apps Script

Ở dạng hiện tại, chương trình của chúng tôi khá vô dụng vì nhiều lý do, đặc biệt là vì chúng tôi chỉ có thể chạy nó từ cửa sổ trình soạn thảo tập lệnh chứ không phải từ bảng tính của chúng tôi

Hãy khắc phục điều đó bằng cách thêm menu tùy chỉnh vào thanh menu của bảng tính của chúng tôi để người dùng có thể chạy tập lệnh trong bảng tính mà không cần mở cửa sổ trình chỉnh sửa

Điều này thực sự dễ thực hiện một cách đáng ngạc nhiên, chỉ cần một vài dòng mã. Thêm 6 dòng mã sau vào cửa sổ soạn thảo, phía trên hàm

function myFunction() {
  Browser.msgBox("Hello World!");
}
3 mà chúng ta đã tạo ở trên, như được hiển thị ở đây

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('My Custom Menu')
      .addItem('Say Hello', 'helloWorld')
      .addToUi();
}

function helloWorld() {
  Browser.msgBox("Hello World!");
}

Nếu bây giờ bạn nhìn lại tab bảng tính của mình trong trình duyệt, sẽ không có gì thay đổi. Bạn sẽ không có menu tùy chỉnh ở đó. Chúng tôi cần mở lại bảng tính của mình (làm mới nó) hoặc chạy tập lệnh

function myFunction() {
  Browser.msgBox("Hello World!");
}
6 trước để menu hiển thị

Để chạy

function myFunction() {
  Browser.msgBox("Hello World!");
}
6 từ cửa sổ soạn thảo, trước tiên hãy chọn rồi chạy hàm onOpen như trong hình này

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Bây giờ, khi bạn quay lại bảng tính của mình, bạn sẽ thấy một menu mới ở bên phải của tùy chọn Trợ giúp, được gọi là Menu tùy chỉnh của tôi. Nhấp vào nó và nó sẽ mở ra để hiển thị lựa chọn chạy chương trình Hello World của bạn

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Chạy các chức năng từ các nút trong Google Trang tính

Một cách khác để chạy Google Scripts từ Trang tính của bạn là liên kết hàm với một nút trong Trang tính của bạn

Ví dụ: đây là Trang tính mẫu hóa đơn có nút ĐẶT LẠI để xóa nội dung

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Để biết thêm thông tin về cách thực hiện việc này, hãy xem bài đăng này. Thêm nút Google Trang tính để chạy tập lệnh

Ví dụ về Tập lệnh Google Apps

Macro trong Google Trang tính

Một cách tuyệt vời khác để bắt đầu với Google Scripts là sử dụng Macro. Macro là các chương trình nhỏ trong Google Trang tính mà bạn ghi lại để có thể sử dụng lại chúng (ví dụ: áp dụng định dạng chuẩn cho bảng). Họ sử dụng Apps Script chuyên sâu nên đây là một cách tuyệt vời để bắt đầu

Đọc thêm. Hướng dẫn đầy đủ về tự động hóa đơn giản bằng Google Sheets Macros

Chức năng tùy chỉnh sử dụng Google Apps Script

Hãy tạo một chức năng tùy chỉnh với Apps Script, đồng thời minh họa cách sử dụng Dịch vụ Bản đồ. Chúng tôi sẽ tạo một chức năng tùy chỉnh nhỏ để tính toán khoảng cách lái xe giữa hai điểm, dựa trên ước tính lái xe của Dịch vụ Google Maps

Mục tiêu là có thể có hai địa danh trong bảng tính của chúng tôi và nhập hàm mới vào một ô mới để lấy khoảng cách, như sau

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Giải pháp nên là

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Sao chép đoạn mã sau vào cửa sổ trình chỉnh sửa Apps Script và lưu lại. Lần đầu tiên, bạn sẽ cần chạy tập lệnh một lần từ cửa sổ trình chỉnh sửa và nhấp vào “Cho phép” để đảm bảo tập lệnh có thể tương tác với bảng tính của bạn

function distanceBetweenPoints(start_point, end_point) {
  // get the directions
  const directions = Maps.newDirectionFinder()
     .setOrigin(start_point)
     .setDestination(end_point)
     .setMode(Maps.DirectionFinder.Mode.DRIVING)
     .getDirections();
  
  // get the first route and return the distance
  const route = directions.routes[0];
  const distance = route.legs[0].distance.text;
  return distance;
}

Lưu dữ liệu với Google Apps Script

Hãy cùng xem một trường hợp sử dụng đơn giản khác cho hướng dẫn Google Sheets Apps Script này

Giả sử tôi muốn lưu bản sao của một số dữ liệu theo định kỳ, như vậy

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Trong tập lệnh này, tôi đã tạo một menu tùy chỉnh để chạy chức năng chính của mình. Hàm chính,

function myFunction() {
  Browser.msgBox("Hello World!");
}
8, sao chép hàng trên cùng của bảng tính của tôi (dữ liệu trực tiếp) và dán nó vào dòng trống tiếp theo bên dưới phạm vi dữ liệu hiện tại của tôi với dấu thời gian mới, do đó "lưu" ảnh chụp nhanh kịp thời

Mã cho ví dụ này là

// custom menu function
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Save Data','saveData')
      .addToUi();
}

// function to save data
function saveData() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheets()[0];
  const url = sheet.getRange('Sheet1!A1').getValue();
  const follower_count = sheet.getRange('Sheet1!B1').getValue();
  const date = sheet.getRange('Sheet1!C1').getValue();
  sheet.appendRow([url,follower_count,date]);
}

Xem bài này. Cách lưu dữ liệu trong Google Sheets bằng dấu thời gian bằng Apps Script, để biết hướng dẫn từng bước tạo và chạy tập lệnh này

Ví dụ về Tập lệnh Google Apps trong Google Tài liệu

Google Apps Script hoàn toàn không chỉ giới hạn trong Trang tính và có thể được truy cập từ các công cụ khác của Google Workspace

Dưới đây là một ví dụ nhanh trong Google Tài liệu, hiển thị tập lệnh chèn một biểu tượng cụ thể ở bất cứ đâu con trỏ của bạn

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Chúng tôi thực hiện việc này bằng Google App Scripts như sau

1. Tạo một Google Tài liệu mới

2. Mở trình chỉnh sửa tập lệnh từ menu. Tiện ích mở rộng > Tập lệnh ứng dụng

3. Trong tab Tập lệnh mới mở, hãy xóa tất cả mã soạn sẵn (khối mã “myFunction”)

4. Copy vào đoạn mã sau

// code to add the custom menu
function onOpen() {
  const ui = DocumentApp.getUi();
  ui.createMenu('My Custom Menu')
      .addItem('Insert Symbol', 'insertSymbol')
      .addToUi();
}

// code to insert the symbol
function insertSymbol() {  
  // add symbol at the cursor position
  const cursor = DocumentApp.getActiveDocument().getCursor();
  cursor.insertText('§§');
  
}

5. Bạn có thể thay đổi ký tự đặc biệt trong dòng này

function myFunction() {
  Browser.msgBox("Hello World!");
}
9

cho bất cứ điều gì bạn muốn nó được, e. g

function myFunction() {
  Browser.msgBox("Hello World!");
}
0

6. Nhấp vào Lưu và đặt tên cho dự án tập lệnh của bạn (không ảnh hưởng đến việc chạy, vì vậy hãy gọi nó là những gì bạn muốn e. g. Chèn biểu tượng)

7. Chạy tập lệnh lần đầu tiên bằng cách nhấp vào menu.

function myFunction() {
  Browser.msgBox("Hello World!");
}
1

8. Google sẽ nhận ra tập lệnh chưa được cấp phép và hỏi bạn có muốn tiếp tục không. Nhấp vào Tiếp tục

9. Vì đây là lần chạy đầu tiên của tập lệnh, Google Tài liệu yêu cầu bạn cấp quyền cho tập lệnh (tôi gọi tập lệnh của mình là "thử nghiệm" mà bạn có thể xem bên dưới)

Tập lệnh Ứng dụng Google Trang tính không cập nhật

10. Nhấp vào Cho phép

11. Quay lại Google Tài liệu của bạn ngay bây giờ

12. Bạn sẽ có một tùy chọn menu mới, vì vậy hãy nhấp vào nó

function myFunction() {
  Browser.msgBox("Hello World!");
}
2

13. Nhấp vào Chèn biểu tượng và bạn sẽ thấy biểu tượng được chèn ở bất cứ đâu con trỏ của bạn

Mẹo tập lệnh của Google Apps. Sử dụng lớp Logger

Sử dụng để xuất tin nhắn văn bản vào tệp nhật ký, để giúp gỡ lỗi mã

Các tệp nhật ký được hiển thị tự động sau khi chương trình chạy xong hoặc bằng cách chuyển đến menu Thực thi trong tùy chọn menu thanh bên trái (ký hiệu thứ tư, bên dưới ký hiệu đồng hồ)

Cú pháp ở dạng cơ bản nhất là

function myFunction() {
  Browser.msgBox("Hello World!");
}
3. Điều này ghi lại (các) giá trị của (các) biến ở các bước khác nhau trong chương trình của bạn

Ví dụ: thêm tập lệnh này vào tệp mã cửa sổ trình soạn thảo của bạn

function logTimeRightNow() {
  const timestamp = new Date();
  Logger.log(timestamp);
}

Chạy tập lệnh trong cửa sổ soạn thảo và bạn sẽ thấy

Tập lệnh Ứng dụng Google Trang tính không cập nhật

Ví dụ thế giới thực từ công việc của riêng tôi

Tôi mới chỉ vạch ra bề nổi của những gì có thể sử dụng G. A. S. để mở rộng trải nghiệm Google Apps

Dưới đây là một số dự án thú vị mà tôi đã thực hiện

1) Trang tính/ứng dụng web bao gồm biểu mẫu web tùy chỉnh cung cấp dữ liệu vào Google Trang tính (bao gồm tải hình ảnh lên Drive và hiển thị hình thu nhỏ trong bảng tính), sau đó tạo bản sao PDF của dữ liệu trong bảng tính và tự động gửi email đó . Và với tất cả dữ liệu trong Google Trang tính chính, bạn có thể thực hiện phân tích dữ liệu, xây dựng bảng điều khiển hiển thị dữ liệu theo thời gian thực và chia sẻ/cộng tác với những người dùng khác

2) Trang tổng quan kết nối với tài khoản Google Analytics, lấy dữ liệu truyền thông xã hội, kiểm tra trạng thái trang web và gửi email ảnh chụp màn hình tóm tắt dưới dạng PDF vào cuối mỗi ngày

Tập lệnh Ứng dụng Google Trang tính không cập nhật

3) Mẫu chấm điểm có thể gửi điểm/phản hồi cho học sinh qua email và Slack, chỉ bằng một cú nhấp chuột từ trong Google Trang tính. Đọc thêm trong bài viết này. Tiết kiệm thời gian với tích hợp Google Trang tính, Slack và Email tùy chỉnh này

Hành trình của riêng tôi đến với Google Apps Script

Bạn tôi Julian, từ trường Measure, đã phỏng vấn tôi vào tháng 5 năm 2017 về hành trình của tôi đến với Apps Script và suy nghĩ của tôi khi bắt đầu

Tài nguyên tập lệnh Google Apps

Để đọc thêm, tôi đã tạo danh sách tài nguyên này để cung cấp thông tin và cảm hứng

Khóa học

Tập lệnh Ứng dụng Google Trang tính không cập nhật
💡 Tìm hiểu thêm
Tìm hiểu thêm về Google Apps Script trong khóa học Giới thiệu về Apps Script miễn phí dành cho người mới bắt đầu này

Tài liệu

Tài liệu chính thức của Google

Blog nhà phát triển Google Workspace

cộng đồng

Câu hỏi về GAS tràn ngăn xếp

Nơi khác trên Internet

Một danh sách lớn cập nhật các tài nguyên Apps Script được lưu trữ trên GitHub

Đối với các câu hỏi chung về Javascript, tôi đề xuất trang hướng dẫn JavaScript này từ W3 Schools khi bạn mới bắt đầu

Khi bạn cảm thấy thoải mái hơn với những kiến ​​thức cơ bản về Javascript, thì tôi khuyên bạn nên xem tài liệu JavaScript toàn diện từ Mozilla

Trí tưởng tượng và sự kiên nhẫn học hỏi là những giới hạn duy nhất đối với những gì bạn có thể làm và những gì bạn có thể đi cùng GAS. Tôi hy vọng bạn cảm thấy được truyền cảm hứng để thử mở rộng Trang tính và Tài liệu của mình cũng như tự động hóa các tác vụ nhàm chán, lặp đi lặp lại đó

Tại sao tập lệnh Google Apps không hoạt động?

Có một vài nguyên nhân có thể gây ra những lỗi này. Máy chủ hoặc hệ thống của Google tạm thời không khả dụng . Đợi một lúc và thử chạy lại tập lệnh. Có lỗi trong tập lệnh của bạn không có thông báo lỗi tương ứng.

Tại sao tập lệnh Google Trang tính quá chậm?

Nếu mã trong Tập lệnh ứng dụng thường xuyên tương tác với các ứng dụng của google trong khi thực thi mã (chẳng hạn như thường xuyên viết qua lại bảng tính google), thì trong trường hợp đó, mã .

Điều gì đã xảy ra với trình chỉnh sửa tập lệnh trong Google Trang tính?

Nếu các tùy chọn menu Công cụ -> Trình chỉnh sửa tập lệnh và Tiện ích bổ sung bị thiếu khi bạn mở tệp, thì đó có thể không thực sự là tệp Google Trang tính. Make sure to navigate to File --> Save As Google Sheets. Then the Script Editor option in the Tools menu and the Add-ons menu will be available.