高三科技應用專題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