แนวทางสร้างเอกสาร PDF และส่งอีเมลด้วย Google Sheets และ Docs

เรียนรู้แนวคิดเชื่อม Google Sheets, Docs และ Gmail เพื่อสร้างเอกสาร PDF พร้อมข้อควรตรวจเรื่องข้อมูล ผู้รับ และโควตาก่อนนำไปพัฒนาใช้งาน

จบปัญหานั่งพิมพ์ทีละใบ! สร้างระบบออกเอกสาร PDF อัตโนมัติ พร้อมส่ง Email ในคลิกเดียว (สไตล์โปร)

สวัสดีครับชาว trakun.com ทุกท่าน! กลับมาพบกับผม ตระกูล อ่อนรัตน์ กันอีกครั้งนะครับ

จาก EP16 และ EP17 ที่เราได้เรียนรู้วิธีดึงข้อมูลเข้า Google Sheets แจ้งเตือนผ่าน LINE และทำ Web App หน้าตาสวยๆ กันไปแล้ว วันนี้เราจะมาก้าวข้ามอีกหนึ่ง “ขีดจำกัด” ของการทำงานแอดมินและคนทำธุรกิจ นั่นก็คือ “การทำเอกสาร” ครับ

เคยไหมครับ? สิ้นเดือนทีไรต้องมานั่งทำใบแจ้งหนี้ (Invoice) ใบเสร็จรับเงิน หรือสลิปเงินเดือน โดยการเปิดไฟล์ Word/Excel ก๊อปปี้ชื่อลูกค้ามาวาง ก๊อปปี้ยอดเงินมาแปะ แล้วกด Save as PDF ทีละไฟล์… กว่าจะเสร็จ 100 คิว ก็หมดไปแล้วครึ่งวัน!

วันนี้ผมจะพาทุกคนมาอัปเกรดระบบให้ดู “อัจฉริยะ” ขึ้นไปอีกขั้น ด้วยการสอนให้ Google Sheets ทำงานร่วมกับ Google Docs สร้างเอกสาร PDF ให้เราแบบอัตโนมัติ แถมยังสั่งให้ส่ง Email หาลูกค้าได้ทันทีในคลิกเดียว!

🛑 ปัญหาโลกแตก: งานเอกสารทำมือที่ดึงรั้งความก้าวหน้า

การทำเอกสารแบบ Manual ไม่ได้แค่ทำให้เราเสียเวลาครับ แต่มันคือการเปิดประตูรับ “ความผิดพลาด (Human Error)” ลองจินตนาการว่าคุณก๊อปปี้ยอดเงินลูกค้าผิดไป 1 ศูนย์ หรือส่งใบเสนอราคาผิดซอง… ความเสียหายที่ตามมาอาจหมายถึงความน่าเชื่อถือของธุรกิจคุณเลยทีเดียว

การใช้ระบบอัตโนมัติ (Automation) เข้ามาจัดการ ช่วยลดงานคัดลอกข้อมูล แต่ยังต้องตรวจข้อมูลและการส่งถึงผู้รับให้ถูกต้อง และ ยังช่วยให้คุณดูเป็น “มืออาชีพ” ในสายตาลูกค้าอีกด้วยครับ

ภาพเปรียบเทียบก่อนและหลัง ก่อนต้องสลับ Sheets, Docs และ Gmail ทำเอกสารทีละไฟล์ หลังใช้ Web App กดปุ่มเดียวสร้าง PDF และส่งอีเมล

⚖️ เปรียบเทียบชัดๆ: “พิมพ์มือทีละใบ” VS “สร้างอัตโนมัติ”

เพื่อให้เห็นว่าระบบที่เรากำลังจะทำนี้ “ทรงพลัง” แค่ไหน ลองดูตารางเปรียบเทียบนี้เลยครับ:

ข้อเปรียบเทียบ❌ ทำเอกสารแบบ Manual (แบบเก่า)✅ สร้าง PDF & ส่ง Email อัตโนมัติ (สไตล์โปร)
เวลาที่ใช้ต่อ 100 ใบ2-3 ชั่วโมง (เปิด, ก๊อปปี้, เซฟ, ส่ง)ขึ้นอยู่กับจำนวนไฟล์ ขนาดเอกสาร โควตาบริการ และเวลาประมวลผล
ความถูกต้องของข้อมูลเสี่ยงพิมพ์ชื่อผิด ก๊อปปี้ยอดสลับช่องลดการคัดลอกด้วยมือ แต่ความถูกต้องยังขึ้นอยู่กับข้อมูลต้นทางและโค้ด
ความต่อเนื่องของงานต้องมานั่งเซฟไฟล์ลงคอม แล้วค่อยแนบเมลสร้าง PDF เสร็จ ระบบแนบไฟล์ส่ง Email ให้ทันที
ภาพลักษณ์แบรนด์ธรรมดา ทำงานล่าช้าตามคิวดูโปรเฟสชันนัล เอกสารเป๊ะ ลูกค้าได้รับทันใจ

🛠️ 3 สเต็ปอัจฉริยะ: เบื้องหลังการเสกเอกสาร

หลักการทำงานของระบบนี้เข้าใจง่ายมากครับ เราจะใช้เครื่องมือฟรีที่ทรงพลังที่สุดอย่าง Google Apps Script มาเป็นตัวเชื่อมประสาน 3 ทหารเสือเข้าด้วยกัน:

  1. Google Docs (ตัวแม่แบบ): เราจะออกแบบหน้าตาใบเสร็จ หรือรายงานไว้ที่นี่ แล้วเว้นช่องว่างด้วยสัญลักษณ์พิเศษ เช่น <<Name>> หรือ <<Total>> ไว้ให้ระบบรู้ว่าต้องเอาข้อมูลมาหย่อนตรงไหน
  2. Google Sheets (ฐานข้อมูล): แหล่งเก็บข้อมูลรายชื่อ ยอดเงิน หรือรายละเอียดต่างๆ
  3. Gmail (ไปรษณีย์): เมื่อ Script สั่งจับข้อมูลจาก Sheets ไปยัดใส่ Docs แล้วแปลงเป็น PDF เสร็จ มันจะสั่งให้ Gmail นำไฟล์นั้นแนบส่งถึงมือผู้รับทันที
ขั้นตอนสร้างใบแจ้งหนี้จากแม่แบบ Google Docs แปลงเป็นไฟล์ PDF แล้วส่งทางอีเมล

ลองทำตาม: สร้าง PDF จากแม่แบบ Docs แล้วส่งอีเมลทีละแถว

ตัวอย่างนี้สร้างใบแจ้งหนี้จากรายชื่อในชีต แถวละ 1 ไฟล์ แล้วส่ง PDF ถึงอีเมลของแต่ละคน ทดลองด้วยข้อมูลสมมติและอีเมลของตัวเองก่อนเสมอ

1. เตรียมแม่แบบ โฟลเดอร์ และชีต

  1. สร้าง Google Docs แม่แบบ จัดหน้าตามต้องการ แล้วพิมพ์ตัวแทนข้อมูลไว้ตรงที่จะให้ระบบเติม เช่น <<Name>> และ <<Total>>
  2. คัดลอก ID ของแม่แบบจากลิงก์ของไฟล์ ID คือข้อความระหว่าง /d/ กับ /edit
  3. สร้างโฟลเดอร์ใน Google Drive สำหรับเก็บ PDF แล้วคัดลอก ID ที่อยู่ต่อจาก /folders/ ในลิงก์
  4. ในชีต ตั้งชื่อแท็บว่า Invoices แถวแรกเป็นหัวคอลัมน์ 4 ช่อง ได้แก่ ชื่อ อีเมล ยอดเงิน และสถานะ ปล่อยคอลัมน์สถานะว่างไว้ สคริปต์จะเขียนให้เองหลังส่งสำเร็จ

2. วางโค้ด

ไปที่ ส่วนขยาย (Extensions) > Apps Script วางโค้ดนี้ในไฟล์ Code.gs แล้วแก้ค่า TEMPLATE_ID และ FOLDER_ID เป็น ID ของคุณ

const TEMPLATE_ID = 'วาง ID ของไฟล์ Docs แม่แบบ';
const FOLDER_ID = 'วาง ID ของโฟลเดอร์เก็บ PDF';
const SHEET_NAME = 'Invoices';

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('เอกสาร')
    .addItem('สร้าง PDF และส่งอีเมล', 'sendInvoices')
    .addToUi();
}

function sendInvoices() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const rows = sheet.getDataRange().getDisplayValues();
  const template = DriveApp.getFileById(TEMPLATE_ID);
  const folder = DriveApp.getFolderById(FOLDER_ID);
  const timeZone = Session.getScriptTimeZone();

  for (let i = 1; i < rows.length; i++) {
    const [name, email, total, status] = rows[i];
    if (!name || !email || status) continue; // ข้ามแถวที่ข้อมูลไม่ครบหรือส่งไปแล้ว

    const copy = template.makeCopy('ใบแจ้งหนี้ - ' + name, folder);
    const doc = DocumentApp.openById(copy.getId());
    doc.getBody().replaceText('<<Name>>', name);
    doc.getBody().replaceText('<<Total>>', total);
    doc.saveAndClose();

    const pdf = copy.getAs(MimeType.PDF).setName('ใบแจ้งหนี้ - ' + name + '.pdf');
    folder.createFile(pdf);
    MailApp.sendEmail({
      to: email,
      subject: 'ใบแจ้งหนี้สำหรับ ' + name,
      body: 'เรียน ' + name + '\n\nแนบใบแจ้งหนี้ในรูปแบบ PDF มาพร้อมอีเมลนี้',
      attachments: [pdf]
    });
    sheet.getRange(i + 1, 4).setValue('ส่งแล้ว ' + Utilities.formatDate(new Date(), timeZone, 'yyyy-MM-dd HH:mm'));
  }
}

สคริปต์อ่านทุกแถว ข้ามแถวที่ข้อมูลไม่ครบหรือมีสถานะแล้ว คัดลอกแม่แบบ แทนที่ตัวแทนข้อมูล แปลงเป็น PDF เก็บไว้ในโฟลเดอร์ ส่งอีเมลพร้อมไฟล์แนบ แล้วเขียนสถานะพร้อมเวลาที่ส่ง การใช้ getDisplayValues() ทำให้ยอดเงินในเอกสารแสดงแบบเดียวกับที่จัดรูปแบบไว้ในชีต เช่น 1,500.00 ส่วนคอลัมน์สถานะทำให้กดรันซ้ำได้โดยไม่ส่งอีเมลซ้ำ

3. ทดสอบก่อนใช้จริง

  1. ใส่ข้อมูลทดสอบ 1-2 แถว โดยใช้อีเมลของตัวเอง
  2. ในหน้า Apps Script เลือกฟังก์ชัน sendInvoices แล้วกด Run และอนุญาตสิทธิ์ในครั้งแรก
  3. ตรวจ PDF ในโฟลเดอร์และอีเมลที่ได้รับ ถ้าตัวแทนข้อมูลไม่ถูกแทนที่ ให้ตรวจว่าในแม่แบบพิมพ์ไว้ตรงกับในโค้ดทุกตัวอักษร และ Docs ไม่ได้เปลี่ยนเครื่องหมายเป็นอักขระอื่นให้อัตโนมัติ
  4. รีเฟรชหน้าชีต จะมีเมนู “เอกสาร” ให้กดสร้างและส่งได้ในคลิกเดียว

ข้อควรรู้ก่อนใช้กับงานจริง

  • เลือก MailApp แทน GmailApp เมื่อแค่ส่งอีเมล MailApp ขอสิทธิ์เฉพาะการส่งอีเมล ส่วน GmailApp ขอสิทธิ์เข้าถึงกล่องจดหมาย Gmail ทั้งหมด สิทธิ์ที่แคบกว่าปลอดภัยกว่า
  • มีโควตาต่อวัน ณ วันที่ตรวจ บัญชี Gmail ทั่วไปส่งอีเมลได้ 100 ผู้รับต่อวันและสร้างเอกสารได้ 250 ไฟล์ต่อวัน ส่วนบัญชี Google Workspace ส่งได้ 1,500 ผู้รับต่อวัน Google ปรับตัวเลขได้ทุกเมื่อ ตรวจล่าสุดได้ที่หน้า โควตาของ Apps Script
  • หนึ่งรอบทำงานได้ไม่เกิน 6 นาที ถ้ามีหลายร้อยแถวแล้วสคริปต์หยุดกลางทาง ให้กดรันซ้ำ แถวที่ส่งแล้วจะถูกข้าม
  • ข้อมูลส่วนบุคคล เก็บ PDF ไว้ในโฟลเดอร์ที่จำกัดสิทธิ์ และตรวจอีเมลผู้รับในชีตให้ถูกต้องก่อนรันจริงทุกครั้ง

อ้างอิง: Class MailApp, Class Body (replaceText) และ โควตาของ Apps Script — ตรวจข้อมูล 18 ตุลาคม 2026

🎯 บทสรุป

ในยุคที่เวลามีค่ามากกว่าเงินทอง การเอาเวลาไปนั่งทำสิ่งที่ “คอมพิวเตอร์ทำแทนได้” ถือเป็นการสูญเสียโอกาสอย่างมหาศาลครับ การใช้ Google Apps Script สร้างเอกสาร PDF และส่งอีเมลอัตโนมัติ คือทักษะที่จะช่วยยกระดับการทำงานของคุณจากคนทำงานทั่วไป ให้กลายเป็น “หัวกะทิ” ที่ใครๆ ก็อยากได้ตัว

ลองเอาโปรเจกต์นี้ไปปรับใช้กันดูนะครับ รับรองว่าคุณจะเหลือเวลากลับไปนอนพักผ่อน หรือไปคิดแผนขยายธุรกิจได้อีกเพียบ! หากใครติดปัญหาตรงไหน หรืออยากให้ trakun.com สอนทำเอกสารรูปแบบไหนเพิ่มเติม คอมเมนต์บอกผมได้เลยครับ

ทำงานให้ฉลาดขึ้น เพื่อให้ชีวิตง่ายขึ้นครับ

ตระกูล อ่อนรัตน์

ตระกูล อ่อนรัตน์ Avatar

ตระกูล อ่อนรัตน์

ลงมือสร้างระบบช่วยงานจริง แล้วเขียนเล่าเป็นขั้นตอนให้ทำตามได้ ติดตรงไหน ถามไว้ในคอมเมนต์ด้านล่าง หรือส่งโจทย์มาที่หน้าติดต่อ

ส่งโจทย์ให้ผม

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *