Chuyển đổi bảng tính Google sang tập lệnh PDF

Bạn có thể thiết lập công việc định kỳ trong Google Drive bằng Google Apps Script. Công việc này sẽ gửi bất kỳ Bảng tính Google nào hoặc bất kỳ tài liệu hoặc tệp nào khác trong Drive tới một hoặc nhiều địa chỉ email tại một thời điểm cụ thể. Bạn có thể đặt trình kích hoạt dựa trên thời gian để chạy hàng tuần, hàng ngày, hàng giờ và các lịch trình định kỳ khác

Ví dụ này cho thấy cách tự động gửi Bảng tính Google đến địa chỉ email được chỉ định dưới dạng tệp PDF hàng ngày. Google Script chuyển đổi Bảng tính Google thành tệp PDF và gửi nó đến một địa chỉ email khác bằng tài khoản Gmail của riêng bạn. Bạn có thể tùy chỉnh thêm đầu ra PDF - như xóa đường lưới, ẩn hàng cố định, chuyển sang chế độ nằm ngang, v.v. bằng cách đặt các tham số xuất chính xác

Chuyển đổi và gửi email Google Trang tính

Tiện ích bổ sung Bảng tính Google Email có thể tự động chuyển đổi và gửi email bảng tính ở định dạng PDF, CSV hoặc Microsoft Excel (xlsx). Nó có thể chuyển đổi toàn bộ bảng tính hoặc các trang tính riêng lẻ

Phiên bản cao cấp của tiện ích bổ sung có thể tự động gửi email các trang tính đã chuyển đổi theo lịch trình định kỳ (chẳng hạn như hàng giờ, hàng ngày, hàng tuần hoặc hàng tháng). Bạn cũng có thể thiết lập nhiều lịch trình gửi và tự động gửi email trang tính đến một nhóm biên lai khác vào các thời điểm khác nhau

Google Script để gửi email Bảng tính Google

Nếu bạn không thể sử dụng tiện ích bổ sung Bảng tính email (một số quản trị viên Google Apps không cho phép tiện ích bổ sung), bạn có thể viết Google Script của riêng mình để gửi bảng tính qua email dưới dạng tệp PDF

/* Send Spreadsheet in an email as PDF, automatically */
function emailSpreadsheetAsPDF() {
  // Send the PDF of the spreadsheet to this email address
  const email = Session.getActiveUser().getEmail() || '[email protected]';

  // Get the currently active spreadsheet URL (link)
  // Or use SpreadsheetApp.openByUrl("<>");
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // Subject of email message
  const subject = `PDF generated from spreadsheet ${ss.getName()}`;

  // Email Body can  be HTML too with your logo image - see ctrlq.org/html-mail
  const body = 'Sent with [Email Google Sheets](https://www.labnol.org/email-sheet)';

  // Base URL
  const url = 'https://docs.google.com/spreadsheets/d/SS_ID/export?'.replace('SS_ID', ss.getId());

  const exportOptions =
    'exportFormat=pdf&format=pdf' + // export as pdf / csv / xls / xlsx
    '&size=letter' + // paper size legal / letter / A4
    '&portrait=false' + // orientation, false for landscape
    '&fitw=true&source=labnol' + // fit to page width, false for actual size
    '&sheetnames=false&printtitle=false' + // hide optional headers and footers
    '&pagenumbers=false&gridlines=false' + // hide page numbers and gridlines
    '&fzr=false' + // do not repeat row headers (frozen rows) on each page
    '&gid='; // the sheet's Id

  const token = ScriptApp.getOAuthToken();
  const sheets = ss.getSheets();

  // make an empty array to hold your fetched blobs
  const blobs = [];

  for (let i = 0; i < sheets.length; i += 1) {
    // Convert individual worksheets to PDF
    const response = UrlFetchApp.fetch(url + exportOptions + sheets[i].getSheetId(), {
      headers: {
        Authorization: `Bearer ${token}`,
      },
    });

    // convert the response to a blob and store in our array
    blobs[i] = response.getBlob().setName(`${sheets[i].getName()}.pdf`);
  }

  // create new blob that is a zip file containing our blob array
  const zipBlob = Utilities.zip(blobs).setName(`${ss.getName()}.zip`);

  // optional: save the file to the root folder of Google Drive
  DriveApp.createFile(zipBlob);

  // Define the scope
  Logger.log(`Storage Space used: ${DriveApp.getStorageUsed()}`);

  // If allowed to send emails, send the email with the PDF attachment
  if (MailApp.getRemainingDailyQuota() > 0)
    GmailApp.sendEmail(email, subject, body, {
      htmlBody: body,
      attachments: [zipBlob],
    });
}

Chức năng Google Script sẽ chuyển đổi từng trang tính của bảng tính Google thành tệp PDF, nén tất cả các tệp PDF trong tệp ZIP và gửi tới địa chỉ email được chỉ định. Bạn cũng có thể gửi đến nhiều địa chỉ email - chỉ cần phân tách từng địa chỉ bằng dấu phẩy

Phương thức hiện gửi tất cả các trang tính của Bảng tính trong tệp ZIP nhưng bạn cũng có thể chỉ định ID trang tính với tham số &gid để chỉ gửi email cho một trang tính cụ thể. Chẳng hạn, để gửi tờ đầu tiên, bạn có thể đặt gid=0, v.v.

Chuyển đổi toàn bộ Google Sheet thành tệp PDF

Đoạn mã trên chuyển đổi các trang riêng lẻ thành các tệp PDF riêng biệt nhưng cũng có một cách để chuyển đổi toàn bộ bảng tính thành một tệp PDF duy nhất. Trong trường hợp đó, hãy thay thế guid= bằng id=SS_ID (ID bảng tính) hoặc thực hiện chuyển đổi bằng DriveApp như được hiển thị tại đây

Gửi email Bảng tính Google dưới dạng PDF

function emailGoogleSpreadsheetAsPDF() {
  // Send the PDF of the spreadsheet to this email address
  var email = '[email protected]';

  // Get the currently active spreadsheet URL (link)
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Subject of email message
  var subject = 'PDF generated from spreadsheet ' + ss.getName();

  // Email Body can  be HTML too
  var body =
    "Sent via Email Spreadsheets";

  var blob = DriveApp.getFileById(ss.getId()).getAs('application/pdf');

  blob.setName(ss.getName() + '.pdf');

  // If allowed to send emails, send the email with the PDF attachment
  if (MailApp.getRemainingDailyQuota() > 0)
    GmailApp.sendEmail(email, subject, body, {
      htmlBody: body,
      attachments: [blob],
    });
}

Tập lệnh Google Apps Google Trang tính PDF

Chia sẻWhatsAppTwitterFacebook

Chuyển đổi bảng tính Google sang tập lệnh PDF

Amit Agarwal

Chuyên gia phát triển của Google, Nhà vô địch Google Cloud

Amit Agarwal là Chuyên gia nhà phát triển của Google về Google Workspace và Google Apps Script. Ông có bằng kỹ sư về Khoa học Máy tính (I. I. T. ) và là blogger chuyên nghiệp đầu tiên ở Ấn Độ

Amit đã phát triển một số tiện ích bổ sung phổ biến của Google bao gồm Mail Merge cho Gmail và Document Studio. Đọc thêm về Lifehacker và YourStory

Bạn có thể biến bảng tính Google thành PDF không?

Mở tệp Google Trang tính mà bạn muốn chuyển đổi sang PDF. Nhấp vào Tệp. Nhấp vào Tải xuống dưới dạng tài liệu PDF. Điều chỉnh cài đặt PDF .

Bạn có thể sử dụng mã VBA trong Google Trang tính không?

VBA trong Google Trang tính không khả dụng rất tiếc, thay vào đó, Google Trang tính sử dụng ngôn ngữ lập trình riêng có tên là Google Apps Script tương tự như JavaScript.

Google Trang tính có tập lệnh không?

Google Apps Script cho phép bạn thực hiện những điều mới mẻ và thú vị với Google Trang tính . Bạn có thể sử dụng Apps Script để thêm menu, hộp thoại và thanh bên tùy chỉnh vào Google Trang tính. Nó cũng cho phép bạn viết các chức năng tùy chỉnh cho Trang tính cũng như tích hợp Trang tính với các dịch vụ khác của Google như Lịch, Drive và Gmail.