แปลง Sheet เป็น PDF ส่งเข้า Line

 แปลง Sheet เป็น PDF ส่งเข้า Line

sheet2pdf

สวัสดีครับวันนี้ผมจะมาสอนการแปลงบิลเงินสดจาก Google Sheet เป็น Pdf และส่งลิงก์เข้า Line Notify เพื่อให้สามารถกดดาวน์โหลดได้ครับ
ขั้นแรก ผมสร้างแบบฟอร์มบิลเงินสดไว้ที่ Google Sheet โดยใช้ชื่อว่า Bill

หลังจากนั้นให้ทำการ Copy Code ด้านล่างไปไว้ใน Google App Script ได้เลยครับ

function makePdf() {
  let ws = SpreadsheetApp.openByUrl("xxx") //*ขั้นตอนที่ 1 sheeturl 
  let sheets = ws.getSheets()
  for (var i = 0; i < sheets.length; i++) {
    if(sheets[i].getSheetName()!=="Bill"){
      sheets[i].hideSheet()
    };
  }
  let driveFile = DriveApp.getFileById('xxx') //**ขั้นตอนที่ 2 sheetid
  let pdfFile = driveFile.getAs('application/pdf').setName('testpdf')
  let convertPdf = DriveApp.createFile(pdfFile)
  let fol = DriveApp.getFolderById("xxx") //***ขั้นตอนที่ 3 folderid
  convertPdf.moveTo(fol);
  sheets.forEach(function(eachSheets){
    eachSheets.showSheet();
  })
}

ขั้นตอนที่ 1 นำ URL หน้าบิลเงินสดที่ออกแบบไว้ใน Google Sheet ไปแทน “xxx” ตรง SpreadsheetApp.openByUrl(“xxx”)

ขั้นตอนที่ 2 นำ Sheet Id ไปแทน “xxx” ตรง DriveApp.getFileById(‘xxx’)
ขั้นตอนที่ 3 นำ FolderId ที่สร้างไว้ใน Google Drive ไปแทน “xxx” ตรง DriveApp.getFolderById(“xxx”)
เมื่อทำตามขั้นตอนทั้ง 3 ข้อ เสร็จเรียบร้อยแล้ว ให้กด Run Script ได้เลยครับ เมื่อกด Run Script ผ่านเรียบร้อยแล้ว เราจะได้ไฟล์ PDF มาไว้ใน Folder ของเราดังรูป

ต่อไปคือการเรียก ID ของไฟล์ PDF ออกมาเพื่อเป็นการระบุไฟล์ PDF แต่ละไฟล์ และเมื่อได้ ID ไฟล์แล้ว ต่อมาจะนำ ID ที่ได้ทำเป็นลิงก์ URL เพื่อส่งเข้ากลุ่ม Line ทำให้ทุกคนสามารถดาวน์โหลดไฟล์ PDF จาก URL ได้นั่นเอง โดยใช้โค้ดนี้ครับ let pdfFileUrl = ‘https://drive.google.com/uc?export=view&id=’ + convertPdf.getId();

function makePdf() {
  let ws = SpreadsheetApp.openByUrl("xxx") //sheeturl
  let sheets = ws.getSheets()
  for (var i = 0; i < sheets.length; i++) {
    if(sheets[i].getSheetName()!=="Bill"){
      sheets[i].hideSheet()
    };
  }

  let driveFile = DriveApp.getFileById('xxx') // sheetid
  let pdfFile = driveFile.getAs('application/pdf').setName('testpdf')
  let convertPdf = DriveApp.createFile(pdfFile)
  let fol = DriveApp.getFolderById("xxx") //folderid
  convertPdf.moveTo(fol);

  let pdfFileUrl = 'https://drive.google.com/uc?export=view&id=' + convertPdf.getId(); //เพิ่มลิงก์ URL ไฟล์ PDF

  sheets.forEach(function(eachSheets){
  eachSheets.showSheet();
  })

}

ส่วนวิธีการส่งเข้า Line นั้นหวังว่าเพื่อน ๆ คงทำได้กันแล้วใช้ไหมครับ เพียงแค่เอาตัวแปล pdfFileUrl ส่งเข้าไลน์กลุ่มนั้นเอง
ขอให้สนุกกับการทำนะครับ


ที่มาครูสมชายคัดมาจาก : {getButton} $text={อ้างอิงที่มา} $icon={share} $color={pink}

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า