Day: May 6, 2015

  • Case Study: ตรวจสอบ Website Availability ด้วย Google Apps Script

    1. เปิด Google Sheets : GASWS1
    2. สร้าง Sheet ใหม่ ชื่อ “Log”
    3. เมนู Tools > Script Editor…
    4. เมนู File > New > Script File
    5. ตั้งชื่อ: myscript4
    6. เขียนโค๊ดตามนี้
       function check_website(url) { 
       var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
       return response.getResponseCode();
      }
      
      function doLog(timestamp, responseCode, timeDiff) {
       
       var ss=SpreadsheetApp.getActiveSpreadsheet();
       var sheet=SpreadsheetApp.setActiveSheet(ss.getSheetByName("Log")); 
       sheet.appendRow([timestamp, responseCode, timeDiff]);
      }
      
      function getTime() {
       var startTime = new Date() ;
       var responseCode=check_website("http://www.psu.ac.th");
       var endTime = new Date() ;
       var timeDiff = endTime-startTime; 
       doLog(Utilities.formatDate(new Date(), "GMT+7", "yyyyMMdd-HHmmss") , responseCode , timeDiff);
      }
    7. เมนู Resources > All yours triggers
      คลิก No triggers set up. Click here to add one now.
      ตั้งค่า
      Run = getTime
      Event = Time-driven
      แล้วเลือกเป็น Minutes timers และ Every minute
      จากนั้นคลิกปุ่ม Save
  • อ่าน/เขียนข้อมูลกับ Google Sheets

    1. เปิด Google Sheets : GASWS1
    2. เมนู Tools > Script Editor…
    3. เมนู File > New > Script File
    4. ตั้งชื่อ: myscript3
    5. สร้าง function insertData1() ตามนี้
      function insertData1() {
       var ss=SpreadsheetApp.getActiveSpreadsheet();
       var sheet=SpreadsheetApp.setActiveSheet(ss.getSheetByName("Sheet1"));
       sheet.getRange(1, 1).setValue("Hello World");
       sheet.getRange("A2").setValue("สวัสดี");
       
       var v1=[ ["ชื่อ","นามสกุล","อายุ"] ];
       var v2=[
       ["สมชาย"]
       ,["Robert"]
       ,["39"]
       ];
       sheet.getRange("A3:C3").setValues(v1);
       sheet.getRange("A4:A6").setValues(v2);
      }
    6. เมนู Run > insertData1
    7. สร้าง function insertData2() ตามนี้
      function insertData2() {
       var ss=SpreadsheetApp.getActiveSpreadsheet();
       var sheet=SpreadsheetApp.setActiveSheet(ss.getSheetByName("Sheet1")); 
       sheet.appendRow([new Date(),"something"]);
      }
    8. เมนู File > Save หรือ กดปุ่ม Ctrl+s
    9. เมนู Run > insertData2
    10. เมนู Resources > All yours triggers
      คลิก No triggers set up. Click here to add one now.
      ตั้งค่า
      Run = insertData2
      Event = Time-driven
      แล้วเลือกเป็น Minutes timers และ Every minute
      จากนั้นคลิกปุ่ม Save
    11. ไปที่ Google Sheets “GASWS1”
    12. สร้าง Sheet ใหม่ ชื่อ “ReadData”
    13. เมนู Tools > Script Editor…
    14. สร้าง function readData1() ตามนี้
      function readData1(){
       var ss=SpreadsheetApp.getActiveSpreadsheet();
       var sheet=SpreadsheetApp.setActiveSheet(ss.getSheetByName("ReadData")); 
      
       var url="https://docs.google.com/spreadsheets/d/1oztRXjC2KJzrqC3LtiRnUPrEgohX4VTYHixylvtCdzY/edit?usp=sharing";
       var db=SpreadsheetApp.openByUrl(url);
       var table=db.setActiveSheet(db.getSheetByName("WGHCEPA"));
       var data=table.getRange("A1:J10").getValues();
       
       for (var i=0; i<data.length;i++){
       sheet.appendRow(data[i]);
       }
       
      }
    15. เมนู File > Save หรือ กดปุ่ม Ctrl+s
    16. เมนู Run > readData1
    17. สร้าง function readData2() ตามนี้
      function readData2(){
       var ss=SpreadsheetApp.getActiveSpreadsheet();
       var sheet=SpreadsheetApp.setActiveSheet(ss.getSheetByName("readData")); 
      
       var id="1oztRXjC2KJzrqC3LtiRnUPrEgohX4VTYHixylvtCdzY";
       var db=SpreadsheetApp.openById(id);
       var table=db.setActiveSheet(db.getSheetByName("WGHCEPA"));
       var data=table.getDataRange().getValues();
       
       for (var i=0; i<data.length;i++){
       sheet.appendRow(data[i]);
       }
       
      }
    18. เมนู File > Save หรือ กดปุ่ม Ctrl+s
    19. เมนู Run > readData2
    20. สร้าง function insertData3() ตามนี้
      function insertData3(){
       var url="https://docs.google.com/a/psu.ac.th/spreadsheets/d/1bQyyQrB3PPyawWVb3afMi0Kgz1KUibIfMblv351BtQI/edit?usp=sharing";
       var db=SpreadsheetApp.openByUrl(url);
       var table=db.setActiveSheet(db.getSheetByName("Sheet1"));
       // เปลี่ยนเป็น ชื่อ นามสกุล และคณะ/หน่วยงานของท่าน
       var mydata=["ชื่อ","นามสกุล","คณะ/หน่วยงาน"];
       
       table.appendRow(mydata);
      }
    21. เมนู File > Save หรือ กดปุ่ม Ctrl+s
    22. เมนู Run > insertData3