Tạo Tài liệu Google từ Bảng tính Google

Video convert google sheet to google doc

Bạn có thể sử dụng Google Apps Script để trích xuất dữ liệu từ hàng và cột trong Bảng tính Google và tạo ra Tài liệu Google tùy chỉnh chỉ chứa thông tin cần thiết. Điều này giúp doanh nghiệp và cộng tác viên của bạn trở nên hiệu quả hơn.

Hãy tưởng tượng một nhà bán lẻ vừa và nhỏ hoạt động cả trực tuyến và tại cửa hàng. Công ty đã phát triển một Bảng tính Google với kế hoạch tiếp thị chi tiết cho mỗi nhà cung cấp chính của mình. Kế hoạch mô tả các chiến lược tiếp thị cụ thể theo tháng và bao gồm ngân sách cho mỗi chiến lược.

Một trong những chuyên gia tiếp thị của công ty đảm nhận việc cung cấp một đề xuất tiếp thị cho mỗi nhà cung cấp. Nếu nhà cung cấp chấp nhận đề xuất, họ sẽ trả tiền cho quảng cáo chung, chiếm khoảng một nửa chi phí quảng cáo dự kiến.

Công việc này có vẻ đơn giản. Nhưng nếu chuyên gia tiếp thị này phải tạo đề xuất cho 100 nhà cung cấp?

Điều này sẽ đòi hỏi nhập (hoặc ít nhất là copy-paste) dữ liệu từ Bảng tính Google sang mỗi trong số 100 Tài liệu Google một cách thủ công, một công việc tốn thời gian.

Hoặc, một nhà tiếp thị có thể viết một đoạn mã ngắn của Google Apps và tự động hóa quy trình này.

Google Apps Script

Google Apps Script là một ngôn ngữ kịch bản đơn giản dựa trên JavaScript. Theo Google, nó cho phép bạn tăng cường sức mạnh của các ứng dụng Google yêu thích của bạn, bao gồm Docs và Sheets.

Trong thực tế, điều này có nghĩa là bạn có thể sử dụng Google Apps Script để tùy chỉnh các ứng dụng Google và tạo ra các tính năng mới. Trong ví dụ này, tôi sẽ sử dụng dữ liệu từ một Bảng tính ví dụ về chiến lược tiếp thị và sử dụng chúng để tạo ra nhiều đề xuất tiếp thị.

Liên kết Google Apps Script

Nếu bạn sử dụng Google Apps Script lần đầu tiên, bạn cần liên kết nó với Google Drive của bạn.

Để làm điều này:

  • Mở Google Drive.
  • Nhấp vào biểu tượng bánh răng.
  • Nhấp vào “Cài đặt”.
  • Nhấp vào “Quản lý ứng dụng”.
  • Nhấp vào “Kết nối ứng dụng khác”.
  • Tìm “Google Apps Script”.
  • Bật nó.

Tạo một mẫu Tài liệu Google

Bây giờ bạn đã có một Bảng tính đầy đủ dữ liệu và đã liên kết Google Apps Script với Google Drive của bạn, đến lúc tạo một mẫu cho kế hoạch tiếp thị trong Google Docs.

Để làm điều này, chỉ cần tạo một Tài liệu Google chứa tất cả các phần lặp lại của đề xuất tiếp thị. Nếu bạn cần sử dụng dữ liệu từ Bảng tính, như tên công ty của nhà cung cấp, hãy sử dụng một trường giữ chỗ đơn giản.

Trong hình ảnh dưới đây, ## Nhà cung cấp ## được sử dụng như một trường giữ chỗ cho trường nhà cung cấp trong Bảng tính.

Hình ảnh

Tạo một đoạn mã Google Apps

Để bắt đầu một đoạn mã Google Apps mới, hãy mở Google Drive, nhấp chuột phải, chọn “Thêm khác”, sau đó chọn “Google Apps Script”. Nếu bạn không thấy Google Apps Script như một tùy chọn, hãy đảm bảo rằng bạn đã liên kết nó với Google Drive của bạn.

Khi bạn nhấp vào Google Apps Script, bạn sẽ thấy một tab mới với Trình chỉnh sửa Apps Script. Tiếp theo, hãy kích hoạt API Bảng tính Google.

Trong trình chỉnh sửa Google Apps Script:

  • Nhấp vào “Công cụ”.
  • Nhấp vào “Dịch vụ Google nâng cao”.
  • Tìm “API Sheets” và bật nó.
  • Nhấp vào “Bảng điều khiển API Google”.
  • Gõ “Sheets API” vào thanh tìm kiếm.
  • Nhấp vào “Bật API”.
  • Quay lại trình chỉnh sửa và nhấp vào nút “OK”.

Định nghĩa các biến cho Bảng tính và mẫu

Khi quay trở lại trình chỉnh sửa, chúng tôi sẽ bắt đầu bằng một hàm gọi là “createDocument()”.

Hàm này bắt đầu bằng ba biến: “headers”, “tactics” và “templateId”.

var headers = Sheets.Spreadsheets.Values.get('1U-6...', 'A2:I2');
var tactics = Sheets.Spreadsheets.Values.get('1U-6...', 'A3:I6');
var templateId = '18PzF...';

Hai biến đầu tiên truy cập Bảng tính Google chứa các chiến lược tiếp thị của chúng tôi. “Sheets.Spreadsheets.Values.get()” truy cập Bảng tính và chấp nhận hai tham số.

Tham số đầu tiên là ID của Bảng tính. Cách đơn giản nhất để tìm ID này là nhìn vào thanh địa chỉ của trình duyệt web khi bạn mở Bảng tính.

Tham số thứ hai mô tả các hàng chúng tôi sẽ truy cập. Trong ví dụ này, tiêu đề nằm ở hàng 2 giữa các cột A và I, vì vậy “A2:I2”. Các giá trị chúng tôi muốn truy cập nằm từ hàng 3 đến hàng 6, cũng từ cột A đến cột I. Vì vậy, chúng tôi sử dụng “A3:I6” để xác định phạm vi.

Biến thứ ba, “templateId”, là ID của tài liệu mẫu bạn đã tạo. Bạn cũng có thể tìm thấy ID này trong thanh địa chỉ khi bạn mở tài liệu mẫu của mình.

Duyệt qua các hàng của Bảng tính

Google Apps Script không có tất cả các tính năng của các phiên bản JavaScript mới nhất. Do đó, mặc dù chúng tôi muốn sử dụng một hàm mảng để làm việc với dữ liệu Bảng, thay vào đó chúng ta phải sử dụng vòng lặp “for”.

for(var i = 0; i < tactics.values.length; i++){

Chúng tôi bắt đầu một vòng lặp “for” bằng cách đặt giá trị khởi tạo của một biến, trong trường hợp này là “i”. Sau đó, chúng tôi đặt giới hạn của vòng lặp là chiều dài của mảng của chúng tôi. Cuối cùng, chúng tôi tăng biến “i” cho đến khi nó đạt đến giới hạn.

Trình chỉnh sửa Google Apps Script có một số công cụ gỡ lỗi và phát triển. Vì vậy, nếu bạn muốn xem API Bảng trả về gì, bạn có thể truy cập một nhật ký.

Logger.log(tactics);

Bạn sẽ cần thực thi hàm, sau đó nhấp vào “Xem, Nhật ký” để xem kết quả.

Quay lại vòng lặp, chúng tôi tạo một biến để lưu tên nhà cung cấp.

var supplier = tactics.values[i][0];

Đối tượng “tactics” có một thuộc tính “values”, đây là một mảng của các mảng biểu thị mỗi hàng chúng tôi đã yêu cầu từ API Bảng. Bộ lặp “[i]” sẽ là hàng đầu tiên lần lặp đầu tiên và hàng thứ hai lần lặp tiếp theo.

“[0]” đại diện cho cột đầu tiên của Bảng, đó là tên nhà cung cấp. Cụ thể, vì chúng tôi đã bắt đầu từ hàng 3 cho “tactics”, hàng đầu tiên và cột đầu tiên sẽ là A3, chứa tên nhà cung cấp “Awesome Inc.”. Lần lặp tiếp theo, “tactics.values[i][0]” sẽ trỏ đến A4 và nhà cung cấp “Best Company”.

Sao chép mẫu

Dòng tiếp theo trong mã sẽ sao chép mẫu của chúng tôi và lấy ID của tài liệu đã sao chép.

var documentId = DriveApp.getFileById(templateId).makeCopy().getId();

Lưu ý rằng chúng tôi sử dụng biến “templateId” của mẫu ở trên. Ngoài ra, chúng tôi sử dụng API DriveApp. Bạn cũng có thể phải kích hoạt nó cùng cách bạn đã kích hoạt API Bảng.

Lệnh này trước tiên lấy tài liệu mẫu bằng cách sử dụng ID của mẫu. Sau đó, nó tạo một bản sao của mẫu trong cùng thư mục Drive và cuối cùng, nó lấy ID của tài liệu mới để chúng tôi có thể sử dụng nó sau này.

Hiện tại, tên tài liệu mới sao chép của chúng tôi là “Sao chép của” được theo sau bởi tên bạn đã đặt cho mẫu, điều này không quá hữu ích, vì vậy chúng tôi sẽ đổi tên tệp.

DriveApp.getFileById(documentId).setName('2018 ' + supplier + ' Đề xuất tiếp thị');

Chúng tôi trước tiên lấy tệp bằng cách sử dụng ID của tài liệu chúng tôi đã lấy trong bước sao chép mẫu. Sau đó, chúng tôi đặt tên. Lưu ý rằng Google Apps Script sử dụng cùng một cách nối chuỗi như JavaScript, vì vậy chúng tôi có thể nối chuỗi như “2018” với biến nhà cung cấp.

Cập nhật mẫu

Dòng tiếp theo của Apps Script truy cập vào phần thân của tài liệu mới.

var body = DocumentApp.openById(documentId).getBody();

Lưu ý rằng chúng tôi lại sử dụng ID của tài liệu mà chúng tôi đã lấy ở bước sao chép mẫu, nhưng lần này chúng tôi tương tác với API DocumentApp.

Thay đổi đầu tiên của chúng tôi là cập nhật mọi phiên bản của trường giữ chỗ cho tên nhà cung cấp, ## Nhà cung cấp ##, trong mẫu.

body.replaceText('##Nhà cung cấp##', supplier)

Lưu ý rằng “replaceText” có hai tham số. Đầu tiên là văn bản mà chúng tôi muốn thay thế. Sau đó là biến đại diện cho tên nhà cung cấp.

Bước cuối cùng là thêm danh sách các chiến lược vào đề xuất tiếp thị. Để làm điều này, chúng tôi gọi một hàm thứ hai, “parseTactics”, và truyền vào các giá trị tiêu đề (ví dụ: “nhà cung cấp”, “quảng cáo YouTube”, “quảng cáo Hulu”), hàng chiến lược tiếp thị và thân tài liệu đề xuất tiếp thị.

parseTactics(headers.values[0], tactics.values[i], body);

Hàm “parseTactics” lặp qua từng chiến lược trong hàng và thêm nó vào đề xuất tiếp thị nếu nó có giá trị.

function parseTactics(headers, tactics, body){
  for(var i = 1; i < tactics.length; i++){
      {tactics[i] != '' && body.appendListItem(headers[i] + ' | ' + tactics[i] + ' net').setGlyphType(DocumentApp.GlyphType.BULLET);
  }
}

Lưu ý rằng chúng tôi đặt giá trị ban đầu của biến “i” thành 1 thay vì 0. Điều này là vì vị trí 0 trong mảng là tên nhà cung cấp. Chúng tôi muốn bắt đầu từ vị trí 1, là chiến lược Quảng cáo YouTube.

for(var i = 1; i < tactics.length; i++)

Chúng tôi sử dụng một kỹ thuật được gọi là “short-circuit evaluation” để thêm mỗi chiến lược.

{tactics[i] != '' && body.appendListItem(headers[i] + ' | ' + tactics[i] + ' net').setGlyphType(DocumentApp.GlyphType.BULLET);

Đầu tiên, chúng tôi kiểm tra xem chiến lược có giá trị không. Cụ thể, chúng tôi đang hỏi nếu “chiến lược khác rỗng”.

tactics[i] != ''

Tiếp theo, chúng tôi sử dụng toán tử “và”, “&&”. Điều này có nghĩa là cả hai điều phải đúng. Vì vậy, nếu trường chiến lược trống, điều này không đúng và dòng mã tiếp theo của chúng tôi không chạy.

body.appendListItem(headers[i] + ' | ' + tactics[i] + ' net')

Phần tiếp theo của mã này thêm một mục danh sách (như một danh sách đánh dấu) vào tài liệu đề xuất tiếp thị. Theo mặc định, API muốn tạo danh sách được sắp xếp, như 1, 2, 3. Do đó, chúng tôi đặt loại biểu tượng danh sách thành BULLET.

.setGlyphType(DocumentApp.GlyphType.BULLET);

Tạo tài liệu

Chúng tôi đã hoàn thành mã cần thiết để tạo đề xuất tiếp thị từ bảng tính. Chỉ cần chạy mã của chúng tôi.

Trong trình chỉnh sửa Google Apps Script, chọn “createDocument” trong menu thả xuống và nhấp vào “Chạy”.

Điều này sẽ tạo ra bốn ví dụ về đề xuất tiếp thị trong cùng thư mục với mẫu của chúng tôi.

Mỗi đề xuất tiếp thị sẽ bao gồm tên nhà cung cấp và các chiến lược mà bộ phận tiếp thị đã suy nghĩ cho họ.

Dưới đây là toàn bộ mã được sử dụng trong ví dụ này.

function createDocument() {
  var headers = Sheets.Spreadsheets.Values.get('1U-6Fa6GF62dLI0NAhAMWdaSsEWvY4FDhDWLUVxaCv24', 'A2:I2');
  var tactics = Sheets.Spreadsheets.Values.get('1U-6Fa6GF62dLI0NAhAMWdaSsEWvY4FDhDWLUVxaCv24', 'A3:I6');
  var templateId = '18PzFAptRi36PR8CvJ2rVr3IVCGBMCNoCsG7UpOymPHc';

  for(var i = 0; i < tactics.values.length; i++){
    var supplier = tactics.values[i][0];

    //Make a copy of the template file
    var documentId = DriveApp.getFileById(templateId).makeCopy().getId();

    //Rename the copied file
    DriveApp.getFileById(documentId).setName('2018 ' + supplier + ' Marketing Proposal');

    //Get the document body as a variable
    var body = DocumentApp.openById(documentId).getBody();

    //Insert the supplier name
    body.replaceText('##Supplier##', supplier)

    //Append tactics
    parseTactics(headers.values[0], tactics.values[i], body);
  }
}

function parseTactics(headers, tactics, body){
  for(var i = 1; i < tactics.length; i++){
    {tactics[i] != '' && body.appendListItem(headers[i] + ' | ' + tactics[i] + ' net').setGlyphType(DocumentApp.GlyphType.BULLET);
  }
}

Bây giờ, bạn có thể tự động tạo ra các đề xuất tiếp thị từ Bảng tính Google của bạn bằng cách sử dụng Google Apps Script! Đừng quên điều chỉnh mã cho cấu trúc dữ liệu cụ thể của bạn và chạy nó trong trình chỉnh sửa Google Apps Script.

Related posts