高三科技應用專題A

2024/2/19 第二周

1.建立Google試算表、左上角名稱:GAS程式設計,內含2個欄位:學號、姓名。

2.點選擴充功能、Apps Script,開啟GAS編輯器。

3.修改 程式碼.gs 的myFunction為 doGet。

var sheetID = "複製試算表ID至此";

function doGet() {

  return HtmlService.createHtmlOutputFromFile("index");

}


function readSheet(){

  var spreadSheet = SpreadsheetApp.openById(sheetID); //連接試算表

  var sheet = spreadSheet.getSheetByName('工作表1'); //指定工作工作表

  var dataRange = sheet.getDataRange(); //指定資料範圍

  var values = dataRange.getValues(); //讀取全部紀錄到二維陣列

  if(dataRange.getLastRow()>0){

    return values[0][0]; //傳回A1內容

  } else {

    return -1; //無紀錄

  }

}

4.新增 + ,輸入 index。(產生 index.html )

<body>

    <div align="center">

      <h1>連接試算表</h1>

      <button onclick="read()">讀取</button><br>

      <label id="result"></label>

    </div>

  </body>


  <script>

    function read(){

      google.script.run.withSuccessHandler( function(e){

        var result = document.getElementById("result");

        if(e===-1){

          result.textContent = "無紀錄";

        }else{

          result.textContent = e;

        }

      } ).readSheet();

    }

  </script>

2024/2/26 第三周

1.讀取試算表A1儲存格內容。

2.輸入學號,尋找該紀錄、回傳姓名。

index.html

2024/3/4第四周

輸入帳號、密碼、驗證碼。

capcha.html

2024/3/11第五周


2024/3/18第六周

延續上周主題,於工作表2、密碼之後增加一個欄位「登入次數」、錯誤次數」,每次登入成功、失敗,各自+1。

capcha.html

2024/3/25第七周

文件處理:複製、取代、轉PDF。

docProcess.html

將文件內容{...}取代成另一字串。

※必須重新部署、授權,才能順利執行(DriveApp需要授權)。

function fileAccess(id,pw){

  var folderId = "1N1......5H";

  var folder = DriveApp.getFolderById(folderId);

  var docfileName = "Google文件複製、內容取代、轉換練習";

  var files = folder.getFilesByName(docfileName);

  if (files.hasNext()){ //檢查檔案是否存在?

    var originalDoc = files.next(); //建立來源檔案實體

    // 2. 複製文件成為名稱為"temp"的Google文件

    var copiedDoc = originalDoc.makeCopy("temp");

    // 3. 取得temp文件的內容

    var docId = copiedDoc.getId();

    var document = DocumentApp.openById(docId);

    var body = document.getBody();

    // 4. 依{}取代內容

    body.replaceText('{姓名}', "你的姓名");

    body.replaceText("{學號}", "你的學號");

    body.replaceText("{Success}", "100");

    body.replaceText("{Failure}", "0");

    body.replaceText("{日期}", "2024/3/25");

    // 5. 將取代後的內容寫回temp文件

    document.saveAndClose(); //儲存並關閉

    //轉成PDF

    var pdfFile = DriveApp.getFileById(docId).getAs('application/pdf');

    var pdfFileName = docfileName + "_converted.pdf";

    folder.createFile(pdfFile).setName(pdfFileName);

    //

    return "複製轉換成功為PDF";

  } else {

    return -1;

  }

}

2024/4/1第八周

<body>

    <h1>寄發郵件測試</h1>

    <label>輸入帳號:</label><input type="text" id="email"><br>

    <button onclick="sendEmail()">送出</button><br>

    <p id="result"></p>

</body>


  <script>

    function sendEmail(){

      var email = document.getElementById("email").value;

      google.script.run.withSuccessHandler( function(e){

        var result = e;

        if (result===1){

          document.getElementById("result").textContent = "郵件已寄出";

        } else {

          document.getElementById("result").textContent = result;

        }

      } ).testSendMail(email);

    }

  </script>


function testSendMail(email){

  try{

    MailApp.sendEmail({

      to: email,

      subject: '測試信件2024/4/1',

      body: '老師,您好!這是一封由ooo寄發的測試信件。',

    });


    return 1;

  } catch(err){

    throw new Error('郵件寄送失敗:' + err.message);

  }

}

2024/4/8第九周

doc轉pdf