Mẫu html tập lệnh ứng dụng google

Bạn có thể gửi email HTML từ Google Apps Script. Ví dụ: giả sử bạn muốn gửi email từ Google Trang tính của mình khi một số sự kiện xảy ra. Bạn có thể gửi email bằng MailApp. sendEmail() chức năng như thế này

MailApp.sendEmail({
    to: email,
    subject: "This is a test email",
    htmlBody: message
  });

trong đó thông báo là một chuỗi có nội dung HTML

Một ví dụ

Giả sử bạn có một trang tính Google với danh sách các ứng cử viên

Mẫu html tập lệnh ứng dụng google

Tạo một bản sao của Google Trang tính này. Bạn có thể xem toàn bộ mã trong bản sao của mình

Bạn muốn hợp lý hóa quy trình phê duyệt. Ví dụ dưới đây sẽ chỉ cho bạn cách phê duyệt ứng viên khi nhấn nút menu. Sau đó, kịch bản sẽ tự động gửi email cho ứng viên chào đón họ

Tạo một mục menu mới trong trang tính Google

Tạo một Google Trang tính trống mới. Đầu tiên, chúng ta hãy thêm một mục menu vào Google Sheet

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}

Quy trình là bạn sẽ chọn vào ứng viên rồi chọn mục menu Quy trình → Phê duyệt

Sau khi nhập mã này vào trình chỉnh sửa tập lệnh (Trong trang tính google → Trình chỉnh sửa tập lệnh) thực hiện Tệp → Lưu rồi đóng và mở lại trang tính Google để mục menu mới (Quy trình) xuất hiện

Chọn mục menu Xử lý → Phê duyệt. Google Trang tính sẽ yêu cầu quyền và phê duyệt để chạy tập lệnh. hoàn thành quá trình

Nhận ứng viên được chọn

Bây giờ chúng ta cần lấy thông tin chi tiết của ứng viên hiện đang được chọn. Đây là mã cho điều đó

function doApprove()
{
   var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
   var row = cell.getRow();
  
   var candidate = getCandidateFromRow(row); 
  
   var ui = SpreadsheetApp.getUi();
   var response = ui.alert('Approve '+candidate.name+'?', ui.ButtonSet.YES_NO);
  
   
}

function getCandidateFromRow(row)
{
  var values = SpreadsheetApp.getActiveSheet().getRange(row, 1,row,3).getValues();
  var rec = values[0];
  
  var candidate = 
      {
        first_name: rec[0],
        last_name : rec[1],
        email: rec[2] 
      };
  
   candidate.name = candidate.first_name+' '+candidate.last_name;
  
   return candidate;
}

Tạo một trang email HTML

Tạo một tệp mới trong trình chỉnh sửa tập lệnh. Thực hiện Tệp → Mới. Sau đó chọn tệp HTML. Thực hiện File → Save rồi đặt tên là email ứng viên. html

Dưới đây là nội dung của email ứng viên. html



  
    
  
  
    

Your application is approved!

Hello

Congrats! Your application is approved

Welcome aboard, .

Hope you will enjoy the time with us!

Best Regards,

Paul,
Company.com

Lưu ý rằng đây là một mẫu HTML. Nó sử dụng các biến như ứng cử viên. first_name và ứng cử viên. Tên

Gửi email

Mật mã

function handleApproval(row, candidate)
{
  var templ = HtmlService
      .createTemplateFromFile('candidate-email');
  
  templ.candidate = candidate;
  
  var message = templ.evaluate().getContent();
  
  MailApp.sendEmail({
    to: candidate.email,
    subject: "Your application is approved!",
    htmlBody: message
  });
  
  SpreadsheetApp.getActiveSheet().getRange(row, 4).setValue('approved');
  
}

Đầu tiên, chúng tôi tải mẫu HTML cho email. Sau đó gán đối tượng ứng viên cho một biến trong mẫu. Khi bạn gọi hàm đánh giá (), các biến trong mẫu được sử dụng để soạn email HTML. (Xem ứng viên. first_name trong mẫu HTML)

Sau đó gửi email bằng MailApp. hàm sendEmail()

Sau đó, chúng tôi cập nhật cột trạng thái của bảng tính thành “đã phê duyệt”

Nếu bạn chạy Quy trình → phê duyệt ngay, nó sẽ gửi email cho ứng viên và cập nhật trạng thái thành “đã phê duyệt”

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách gửi email HTML từ Google Trang tính bằng Apps Script. Tôi cũng sẽ chỉ cho bạn cách tạo mẫu email HTML bằng Gmail và Google Docs

Trong hướng dẫn trước, tôi đã mô tả cách xây dựng ứng dụng Stock Watcher để theo dõi giá cổ phiếu. Ứng dụng Stock Watcher gửi email vào mỗi buổi sáng với giá cập nhật cho các cổ phiếu mà bạn đang theo dõi. Email đó trông như thế này

Mẫu html tập lệnh ứng dụng google

Hướng dẫn này sẽ dạy bạn cách làm cho email đó trông thật đẹp bằng cách sử dụng HTML. Không phải email dưới đây tốt hơn nhiều sao?

Mẫu html tập lệnh ứng dụng google

Trong hướng dẫn này, tôi giả định rằng

  • Phần 1. Tạo mẫu email HTML

  • Phần 2. Tạo tập lệnh ứng dụng để gửi email HTML bằng mẫu

Để gửi email HTML, trước tiên chúng ta cần tạo một mẫu email bằng HTML. Tôi sẽ chỉ cho bạn cách tạo một tài khoản bằng Google Trang tính, Tài liệu và Gmail

Có 3 bước

  • Sử dụng Gmail để tạo email giống với email bạn muốn gửi bằng Apps Script

  • Gửi email này cho chính bạn và sử dụng Gmail để lấy mã HTML cho email này

  • Tạo một mẫu HTML bằng cách sử dụng mã này

Trước tiên, hãy bắt đầu soạn email trong Gmail. Sau đó, copy paste bảng chứa thông tin chứng khoán từ sheet vào nội dung email

Mẫu html tập lệnh ứng dụng google
Mẫu html tập lệnh ứng dụng google

Gửi email cho chính bạn và xác nhận rằng có vẻ ổn

Mẫu html tập lệnh ứng dụng google

Tạo các mẫu email HTML hoạt động trên nhiều ứng dụng email khác nhau như Gmail, Outlook và Hotmail, v.v. có thể là thử thách. Trong bài đăng này, tôi sẽ giả định rằng phần lớn người nhận email là người dùng Gmail. Nếu điều đó không đúng, bạn có thể thử gửi email ở trên tới một vài người nhận không phải Gmail để xác nhận rằng email trông ổn trong ứng dụng email của họ

Từ menu ba chấm trong Gmail, chọn Hiển thị bản gốc

Mẫu html tập lệnh ứng dụng google

Nhấn Copy to clipboard để sao chép nội dung thư và dán vào Google Doc

Mẫu html tập lệnh ứng dụng google

★ Bạn có biết

Đây là một cách nhanh chóng để tạo một Google Doc mới. Mở địa chỉ https. // tài liệu. mới trên trình duyệt của bạn và nó sẽ tạo một Google Doc mới cho bạn

Khi kết thúc bước này, bạn sẽ có một Google Tài liệu chứa thông báo email chi tiết, bao gồm cả văn bản và nội dung HTML của nó

Mẫu html tập lệnh ứng dụng google

Tiếp theo, chúng tôi cần xóa tất cả nội dung không cần thiết khỏi tài liệu để bạn chỉ còn lại mã HTML

Tìm kiếm

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
1 trong tài liệu. Bạn sẽ thấy mã HTML cho email ngay bên dưới nơi văn bản này xuất hiện trong tài liệu

Mẫu html tập lệnh ứng dụng google

Xóa mọi thứ khác trong tài liệu ngoại trừ HTML này. Tôi đã đánh dấu mã HTML trong ảnh chụp màn hình bên dưới để giúp bạn định vị mã đó trong tài liệu của mình

Mẫu html tập lệnh ứng dụng google

Bạn cũng cần xóa một dòng ở cuối (sau khi phần HTML kết thúc)

Mẫu html tập lệnh ứng dụng google

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
2 ngay trước HTML cho ứng dụng email biết rằng nội dung HTML đã được mã hóa. Như mã gợi ý, hệ thống mã hóa được sử dụng là "có thể in được trích dẫn", thường được sử dụng để mã hóa email. Do đó, nội dung HTML phải được giải mã trước khi sử dụng

Khi bạn hoàn tất, tài liệu của bạn chỉ nên chứa mã HTML được mã hóa cho email mà chính bạn đã gửi

Mẫu html tập lệnh ứng dụng google

Bước tiếp theo là giải mã HTML bằng bộ giải mã có thể in được trích dẫn như ở đây. https. //www. webatic. com/quoted-printable-convertor

  • Mở địa chỉ https. //www. webatic. com/quoted-printable-convertor trong trình duyệt web của bạn và dán mã HTML đã mã hóa vào hộp "Đã mã hóa" trên trang

  • Nhấp vào nút Giải mã

  • Sao chép HTML đã giải mã từ hộp "Đã giải mã" và thay thế HTML đã mã hóa trong Google Tài liệu bằng HTML đã giải mã này

Ghi chú. bạn cần dán mã đã mã hóa vào ô bên dưới (không phải ô bên trên)

Khi bạn hoàn tất việc thay thế HTML được mã hóa bằng HTML được giải mã, tài liệu của bạn sẽ trông như thế này

Mẫu html tập lệnh ứng dụng google

Có thể khó theo dõi cấu trúc của HTML đã giải mã, vì vậy tôi khuyên bạn nên "làm đẹp" nó bằng cách sử dụng trình chỉnh sửa HTML như tại. https. //www. trình duyệt. com/tools/html-làm đẹp. Khi bạn làm đẹp nó, cấu trúc HTML sẽ dễ theo dõi hơn rất nhiều

Hi there,


Name Ticker Price Microsoft MSFT 151.75 Apple AAPL 270.71 Tesla TSLA 335.89 Walmart WMT 119.78 McDonald's MCD 195.35

Đó là nó. Bây giờ bạn đã có mã HTML mà bạn cần để tạo mẫu

Tạo một tệp HTML mới có tên là Mẫu. html trong trình chỉnh sửa Apps Script. Chọn Tệp → Mới → Tệp HTML

Mẫu html tập lệnh ứng dụng google

Nhập mẫu. html làm tên tệp

Mẫu html tập lệnh ứng dụng google

Một tệp HTML sẽ được tạo với một số nội dung mặc định được điền trong đó

Mẫu html tập lệnh ứng dụng google

Thay thế nội dung mặc định bằng mã HTML từ bước trước và lưu tệp

Mẫu html tập lệnh ứng dụng google

Bạn đã hoàn tất việc tạo mẫu HTML. Bước tiếp theo là sử dụng Apps Script để gửi email HTML bằng mẫu mà bạn vừa tạo

Thay vì bắt đầu từ đầu, chúng tôi sẽ sửa đổi tập lệnh từ hướng dẫn trước. Đây là tập lệnh mà chúng tôi sẽ sửa đổi (vui lòng xem hướng dẫn khác để biết giải thích về chức năng của mã này)

⚠ Vui lòng thay thế địa chỉ email youremail@example. com trong đoạn mã dưới đây với địa chỉ email của bạn

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}

Đoạn script trên gửi email giống như thế này

Mẫu html tập lệnh ứng dụng google

Gửi một email HTML khá dễ dàng

Trước tiên, hãy tạo một hàm mới có tên là

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
3 lấy giá cổ phiếu làm đầu vào và trả về phần thân HTML để sử dụng trong thông báo email

Hàm

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
3 tạo một mẫu HTML bằng Mẫu. html và trả về nội dung của nó. Xin lưu ý rằng
function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
5 là một đối tượng

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
2

Sau đó, chúng tôi sẽ sử dụng nội dung HTML này để gửi email HTML

⚠ Vui lòng thay thế địa chỉ email youremail@example. com trong đoạn mã dưới đây với địa chỉ email của bạn

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
3

Khi bạn chạy hàm

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
6, bạn sẽ nhận được một email HTML giống như bên dưới

Mẫu html tập lệnh ứng dụng google

Chúng ta làm xong chưa? . Chỉ có một điều khác bạn cần làm để hoàn thành hướng dẫn này. Đoạn mã trên hoàn toàn không sử dụng thông tin giá cổ phiếu. Nghĩa là, hàm

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
3 không sử dụng
function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
8 ở bất cứ đâu

Chúng tôi cần bảng trong email HTML để sử dụng thông tin giá cổ phiếu đến từ trang tính. Để làm điều này, chúng ta cần cung cấp biến

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
8 cho mẫu. Điều đó sẽ cho phép chúng tôi tạo mẫu động bằng cách sử dụng dữ liệu này

Câu lệnh

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
20 làm cho biến
function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
8 có sẵn để sử dụng trong mẫu thông qua thuộc tính
function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
22. Thuộc tính này có thể được sử dụng như một biến trong tập lệnh trong Mẫu. tệp html

function doApprove()
{
   var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
   var row = cell.getRow();
  
   var candidate = getCandidateFromRow(row); 
  
   var ui = SpreadsheetApp.getUi();
   var response = ui.alert('Approve '+candidate.name+'?', ui.ButtonSet.YES_NO);
  
   
}

function getCandidateFromRow(row)
{
  var values = SpreadsheetApp.getActiveSheet().getRange(row, 1,row,3).getValues();
  var rec = values[0];
  
  var candidate = 
      {
        first_name: rec[0],
        last_name : rec[1],
        email: rec[2] 
      };
  
   candidate.name = candidate.first_name+' '+candidate.last_name;
  
   return candidate;
}
1

Bước tiếp theo là điền vào bảng trong email HTML bằng cách sử dụng nội dung của biến

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
22 mà chúng tôi đã cung cấp cho mẫu

Đầu tiên, xóa mã HTML cho tất cả các hàng trong bảng trừ hàng tiêu đề và hàng đầu tiên. Mẫu HTML kết quả sẽ trông như thế này

function doApprove()
{
   var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
   var row = cell.getRow();
  
   var candidate = getCandidateFromRow(row); 
  
   var ui = SpreadsheetApp.getUi();
   var response = ui.alert('Approve '+candidate.name+'?', ui.ButtonSet.YES_NO);
  
   
}

function getCandidateFromRow(row)
{
  var values = SpreadsheetApp.getActiveSheet().getRange(row, 1,row,3).getValues();
  var rec = values[0];
  
  var candidate = 
      {
        first_name: rec[0],
        last_name : rec[1],
        email: rec[2] 
      };
  
   candidate.name = candidate.first_name+' '+candidate.last_name;
  
   return candidate;
}
3

Khi bạn gửi email bằng mẫu này, email bạn nhận được sẽ chỉ có một hàng

Mẫu html tập lệnh ứng dụng google

Tiếp theo, chúng ta sẽ sử dụng vòng lặp for để tự động tạo các hàng trong bảng HTML bằng cách sử dụng thông tin trong biến

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
22

Mẫu html tập lệnh ứng dụng google

Các ký tự

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
25 cho Apps Script biết rằng văn bản ở giữa chúng phải được đánh giá là mã. Chúng được gọi là scriptlet tiêu chuẩn

function handleApproval(row, candidate)
{
  var templ = HtmlService
      .createTemplateFromFile('candidate-email');
  
  templ.candidate = candidate;
  
  var message = templ.evaluate().getContent();
  
  MailApp.sendEmail({
    to: candidate.email,
    subject: "Your application is approved!",
    htmlBody: message
  });
  
  SpreadsheetApp.getActiveSheet().getRange(row, 4).setValue('approved');
  
}
1

function handleApproval(row, candidate)
{
  var templ = HtmlService
      .createTemplateFromFile('candidate-email');
  
  templ.candidate = candidate;
  
  var message = templ.evaluate().getContent();
  
  MailApp.sendEmail({
    to: candidate.email,
    subject: "Your application is approved!",
    htmlBody: message
  });
  
  SpreadsheetApp.getActiveSheet().getRange(row, 4).setValue('approved');
  
}
2

function handleApproval(row, candidate)
{
  var templ = HtmlService
      .createTemplateFromFile('candidate-email');
  
  templ.candidate = candidate;
  
  var message = templ.evaluate().getContent();
  
  MailApp.sendEmail({
    to: candidate.email,
    subject: "Your application is approved!",
    htmlBody: message
  });
  
  SpreadsheetApp.getActiveSheet().getRange(row, 4).setValue('approved');
  
}
3

function onOpen() 
{
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Process')
      .addItem('Approve', 'doApprove')
      .addToUi();
}

function doApprove()
{
 SpreadsheetApp.getUi().alert("Approval process");
}
34

Mẫu html tập lệnh ứng dụng google

Mẫu cuối cùng. tệp html sẽ trông như thế này

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
0

Khi chạy hàm

function sendEmail() {
  var stockData = getData();
  var body = getEmailText(stockData);
  
  MailApp.sendEmail({
    to: "[email protected]",
    subject: "Stock update",
    body: body
  });
}

function getEmailText(stockData) {
  var text = "";
  stockData.forEach(function(stock) {
    text = text + stock.name + "\n" + stock.ticker + "\n" + stock.price + "\n-----------------------\n\n";
  });
  return text;
}

/**
 * @OnlyCurrentDoc
 */
function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Data").getRange("Stocks").getValues();
  values.shift(); //remove headers
  var stocks = [];
  values.forEach(function(value) {
    var stock = {};
    stock.name = value[0];
    stock.ticker = value[1];
    stock.price = value[2];
    stocks.push(stock);
  })
  //Logger.log(JSON.stringify(stocks));
  return stocks;
}
6, bạn sẽ thấy một email HTML được định dạng đẹp mắt chứa dữ liệu từ Google Trang tính của bạn

Mẫu html tập lệnh ứng dụng google

chà. Đây là một hướng dẫn siêu dài nhưng hy vọng bạn thấy nó hữu ích

Trong hướng dẫn này, tôi đã giải thích cách gửi email HTML bằng Google Sheets và Apps Script. Tôi cũng đã chỉ cho bạn cách tạo mẫu email HTML bằng Google Docs và Gmail

Cảm ơn vì đã đọc

Ở lại đến ngày

Theo dõi tôi qua email để nhận các mẹo hữu ích và nội dung độc quyền khác. Tôi cũng sẽ gửi cho bạn thông báo khi tôi xuất bản nội dung mới

Bằng cách đăng ký, bạn đồng ý với Chính sách quyền riêng tư & Điều khoản


Tôi đánh giá cao bất kỳ phản hồi nào bạn có thể cung cấp cho tôi về bài đăng này

Nó có hữu ích không? . Cảm ơn bạn rất nhiều

Google Apps Script có giống với VBA không?

VBA hợp nhất các khả năng tương tự với Google Biểu mẫu, Apps Script , giao diện người dùng loại tiện ích bổ sung và mô hình đối tượng vào một nền tảng. Bạn cần một số hoặc tất cả các thành phần liên quan đến Apps Script để đạt được điều tương tự.

Tôi có thể sử dụng JavaScript trong Google App Script không?

Google Apps Script là một nền tảng phát triển giúp tạo các tập lệnh cũng như ứng dụng nhỏ tích hợp với Google Workspace nhanh chóng và dễ dàng. Với Apps Script, bạn. Viết mã bằng JavaScript và truy cập thư viện tích hợp cho các ứng dụng Google Workspace như Gmail, Lịch, Drive, v.v.

Tôi có thể sử dụng jQuery trong Google App Script không?

Google Apps Script cho phép chúng tôi sử dụng jQuery , đây là kỹ thuật ưa thích trong lập trình HTML cho đến nay. Tôi thực sự khuyên bạn nên học càng nhiều jQuery càng tốt.

Google Apps Script có hỗ trợ ES6 không?

Thận trọng. Các mô-đun ES6 chưa được hỗ trợ .