Mở rộng Google Tài liệu

Google Apps Script cho phép bạn tạo và sửa đổi Google Tài liệu theo phương thức lập trình, cũng như tuỳ chỉnh giao diện người dùng bằng các trình đơn, hộp thoại và thanh bên mới.

Khái niệm cơ bản

Apps Script có thể tương tác với Google Tài liệu theo hai cách chính: mọi tập lệnh đều có thể tạo hoặc sửa đổi tài liệu nếu người dùng của tập lệnh có quyền thích hợp đối với tài liệu đó. Ngoài ra, bạn cũng có thể liên kết một tập lệnh với một tài liệu. Điều này sẽ giúp tập lệnh có các khả năng đặc biệt để thay đổi giao diện người dùng hoặc phản hồi khi tài liệu được mở. Để tạo tập lệnh liên kết với vùng chứa trong Google Tài liệu, hãy nhấp vào Tiện ích > Apps Script.

Trong cả hai trường hợp, bạn có thể dễ dàng tương tác với tài liệu trên Google Tài liệu thông qua Dịch vụ tài liệu của Apps Script, như minh hoạ trong ví dụ sau.

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var documentTab = doc.getTab('t.0').asDocumentTab();
  var body = documentTab.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

Tập lệnh ở trên tạo một tài liệu mới trong Google Drive của người dùng, sau đó truy xuất thẻ có mã t.0 (thẻ đầu tiên mặc định), chèn một đoạn văn bản chứa cùng văn bản với tên tài liệu, định kiểu đoạn văn bản đó làm tiêu đề và thêm một bảng dựa trên các giá trị trong một mảng hai chiều. Tương tự, tập lệnh này cũng có thể thực hiện các thay đổi này đối với một tài liệu hiện có bằng cách thay thế lệnh gọi đến DocumentApp.create() bằng DocumentApp.openById() hoặc openByUrl(). Đối với các tập lệnh được tạo bên trong một tài liệu (liên kết với vùng chứa), hãy sử dụng DocumentApp.getActiveDocument()Document.getActiveTab().

Cấu trúc của tài liệu

Từ quan điểm của Apps Script, tài liệu Google Tài liệu có cấu trúc giống như tài liệu HTML, tức là tài liệu được tạo thành từ một hoặc nhiều đối tượng Tab, mỗi đối tượng chứa các phần tử (như Paragraph hoặc Table) thường chứa các phần tử khác. Hầu hết các tập lệnh sửa đổi tài liệu trên Google Tài liệu đều bắt đầu bằng lệnh gọi đến getTab()asDocumentTab(), theo sau là getBody(), vì Body là một phần tử cốt lõi chứa tất cả các phần tử khác trong một thẻ, ngoại trừ HeaderSection, FooterSection và mọi Footnotes.

Tuy nhiên, có các quy tắc về loại phần tử nào có thể chứa các loại phần tử khác. Hơn nữa, Dịch vụ tài liệu trong Apps Script chỉ có thể chèn một số loại phần tử nhất định vào các phần tử khác. Cây bên dưới cho biết những phần tử nào có thể được chứa trong một loại phần tử nhất định.

Bạn có thể chèn các phần tử hiển thị in đậm; chỉ có thể thao tác các phần tử không in đậm tại chỗ.

Thay thế văn bản

Apps Script thường được dùng để thay thế văn bản trong Google Tài liệu. Giả sử bạn có một bảng tính chứa đầy thông tin về khách hàng và bạn muốn tạo một Google Tài liệu được cá nhân hoá cho từng khách hàng. (Loại thao tác này thường được gọi là hợp nhất thư.)

Có nhiều cách để thay thế văn bản, nhưng đơn giản nhất là phương thức replaceText() như trong ví dụ dưới đây. replaceText hỗ trợ hầu hết các tính năng biểu thức chính quy của JavaScript. Hàm đầu tiên bên dưới thêm một số dòng văn bản phần giữ chỗ vào Google Tài liệu; trong thực tế, bạn có nhiều khả năng tự nhập phần giữ chỗ vào tài liệu. Hàm thứ hai thay thế phần giữ chỗ bằng các thuộc tính được xác định trong đối tượng client.

Xin lưu ý rằng cả hai hàm này đều sử dụng các phương thức getActiveDocument()getActiveTab(). Các phương thức này chỉ áp dụng cho các tập lệnh được tạo bên trong tài liệu Google Tài liệu; trong tập lệnh độc lập, hãy sử dụng DocumentApp.create(), openById() hoặc openByUrl() kết hợp với Document.getTab().

Thêm một số phần giữ chỗ

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

Thay thế phần giữ chỗ

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

Trình đơn và giao diện người dùng tuỳ chỉnh

Bạn có thể tuỳ chỉnh Google Tài liệu bằng cách thêm trình đơn, hộp thoại và thanh bên. Tuy nhiên, hãy lưu ý rằng tập lệnh chỉ có thể tương tác với giao diện người dùng cho bản sao hiện tại của tài liệu đang mở và chỉ khi tập lệnh được liên kết với tài liệu.

Xem cách thêm trình đơn tuỳ chỉnhhộp thoại vào Google Tài liệu. Để tìm hiểu thêm về cách tạo giao diện tuỳ chỉnh cho hộp thoại hoặc thanh bên, hãy xem hướng dẫn về Dịch vụ HTML. Nếu bạn dự định phát hành giao diện tuỳ chỉnh trong một tiện ích bổ sung, hãy làm theo hướng dẫn về kiểu để đảm bảo tính nhất quán với kiểu và bố cục của Trình chỉnh sửa Google Tài liệu.

Tiện ích bổ sung cho Google Tài liệu

Tiện ích bổ sung chạy bên trong Google Tài liệu và có thể được cài đặt từ cửa hàng tiện ích bổ sung của Google Tài liệu. Nếu bạn đã phát triển một tập lệnh cho Google Tài liệu và muốn chia sẻ tập lệnh đó với mọi người, thì Apps Script cho phép bạn phát hành tập lệnh của mình dưới dạng tiện ích bổ sung để người dùng khác có thể cài đặt tập lệnh đó từ cửa hàng tiện ích bổ sung.

Để xem cách tạo tiện ích bổ sung cho Google Tài liệu, hãy xem bài viết bắt đầu nhanh để tạo tiện ích bổ sung cho Tài liệu.

Điều kiện kích hoạt

Các tập lệnh liên kết với Google Tài liệu có thể sử dụng trình kích hoạt đơn giản để phản hồi sự kiện onOpen của tài liệu. Sự kiện này xảy ra bất cứ khi nào người dùng có quyền chỉnh sửa tài liệu mở tài liệu đó trong Google Tài liệu.

Để thiết lập điều kiện kích hoạt, bạn chỉ cần viết một hàm có tên là onOpen(). Để biết ví dụ về điều kiện kích hoạt này, hãy xem bài viết Trình đơn tuỳ chỉnh trong Google Workspace. Mặc dù trình kích hoạt đơn giản rất hữu ích để thêm trình đơn, nhưng trình kích hoạt này không thể sử dụng bất kỳ dịch vụ Apps Scripts nào yêu cầu uỷ quyền.