最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 Google App Scripts 在學(xué)生出勤表的每一行最后一行添加色帶?

如何使用 Google App Scripts 在學(xué)生出勤表的每一行最后一行添加色帶?

慕田峪9158850 2023-05-11 10:36:00
作為學(xué)生出勤系統(tǒng)的一部分,我想使用 App Scripts 在班級(jí)的每一行最后一行添加一個(gè)色帶以進(jìn)行出勤。我的 Google 表格列是:(i) 日期,(ii) 電子郵件,(iii) 緯度,(iv) 經(jīng)度,和 (v) 主題代碼。嘗試了很多方法但沒有找到解決方案。  var sss = SpreadsheetApp.getActiveSpreadsheet();  var ssID = sss.getId();  var sheetName = sss.getName();   var sheet = sss.getSheetByName("TempDataSet");  var sheet1 = sss.insertSheet('TempDataSet_temp');  sheet.getDataRange().copyTo(sheet1.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);  sheet.getDataRange().copyTo(sheet1.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);    var shID = sheet1.getSheetId().toString();  sheet1.getRange(2, 1, sheet.getLastRow() -1, sheet.getLastColumn()).sort({column: 1, ascending: false});   var columns_delete = [7,2]; //[7,5,4,2];  columns_delete.forEach(col=>sheet1.deleteColumn(col));  //const sss = SpreadsheetApp.getActiveSpreadsheet();  //const sheet = sss.getSheetByName("TempDataSet");    const subs = sheet.getRange('F2:F'+sheet.getLastRow()).getValues().flat();  const usubs = subs.filter((value, index, self)=>self.indexOf(value) === index);  const dts = sheet.getRange('A2:A'+sheet.getLastRow()).getDisplayValues().flat();  const udts = dts.filter((value, index, self)=>self.indexOf(value) === index);    if(usubs.length>1){    subs.forEach((s,i)=>{    if(i>1){      if(subs[i]!=subs[i-1]){        sheet.getRange(i+1,1,1,5).setBackground('yellow');      }}});  }  else if (udts.length>1){    dts.forEach((d,i)=>{    if(i>1){      if(dts[i]!=dts[i-1]){        sheet.getRange(i+1,1,1,5).setBackground('yellow');      }}});  }  }
查看完整描述

1 回答

?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

解釋:

根據(jù)你的問題,我理解了以下步驟:

  1. 檢查E列中是否至少有兩個(gè)獨(dú)特的主題。一種方法是找到唯一的主題列表。如果該列表的長(zhǎng)度是或更多,則意味著您有不同的主題。在這種情況下,語(yǔ)句的第一個(gè)塊的計(jì)算結(jié)果為,并且您在更改主題之前的行中添加了一條黃線。2iftrue

  2. 如果您只有一個(gè)主題,即唯一主題列表的長(zhǎng)度,則語(yǔ)句1的第一個(gè)塊if將評(píng)估為false。在這種情況下,腳本將檢查A列是否有2一個(gè)或多個(gè)唯一日期。如果是,if將執(zhí)行語(yǔ)句的第二個(gè)塊,腳本將在日期更改前的行中添加一條黃線。否則,它不會(huì)做任何事情。


解決方案:

color()您可以作為獨(dú)立腳本執(zhí)行。我建議您將此函數(shù)保存在一個(gè)新.gs文件中,然后在您當(dāng)前的腳本中簡(jiǎn)單地調(diào)用它。即,在您提供的代碼片段中放置您想要的color() 任何位置。

function color() {

  const sss = SpreadsheetApp.getActiveSpreadsheet();

  const sheet = sss.getSheetByName("TempDataSet");

  

  const subs = sheet.getRange('E2:E'+sheet.getLastRow()).getValues().flat();

  const usubs = subs.filter((value, index, self)=>self.indexOf(value) === index);

  const dts = sheet.getRange('A2:A'+sheet.getLastRow()).getDisplayValues().flat();

  const udts = dts.filter((value, index, self)=>self.indexOf(value) === index);

  

  if(usubs.length>1){

    subs.forEach((s,i)=>{

    if(i>1){

      if(subs[i]!=subs[i-1]){

        sheet.getRange(i+1,1,1,5).setBackground('yellow');

      }}});

  }

  else if (udts.length>1){

    dts.forEach((d,i)=>{

    if(i>1){

      if(dts[i]!=dts[i-1]){

        sheet.getRange(i+1,1,1,5).setBackground('yellow');

      }}});

  }


  }

完整的解決方案:

function sendEmails(){  


  

  var sss = SpreadsheetApp.getActiveSpreadsheet();

  var ssID = sss.getId();

  var sheetName = sss.getName(); 

  var sheet = sss.getSheetByName("TempDataSet");

  var sheet1 = sss.insertSheet('TempDataSet_temp');

  sheet.getDataRange().copyTo(sheet1.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

  sheet.getDataRange().copyTo(sheet1.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);


  var shID = sheet1.getSheetId().toString();

  sheet1.getRange(2, 1, sheet.getLastRow() -1, sheet.getLastColumn()).sort({column: 1, ascending: true}); 

  var columns_delete = [7,2]; //[7,5,4,2];

  columns_delete.forEach(col=>sheet1.deleteColumn(col));

  SpreadsheetApp.flush();

  

 const subs = sheet1.getRange('E2:E'+sheet1.getLastRow()).getValues().flat();

  const usubs = subs.filter((value, index, self)=>self.indexOf(value) === index);

  const dts = sheet1.getRange('A2:A'+sheet1.getLastRow()).getDisplayValues().flat();

  const udts = dts.filter((value, index, self)=>self.indexOf(value) === index);

  

  if(usubs.length>1){

    subs.forEach((s,i)=>{

    if(i>1){

      if(subs[i]!=subs[i-1]){

        sheet1.getRange(i+1,1,1,5).setBackground('yellow');

      }}});

  }

  else if (udts.length>1){

    dts.forEach((d,i)=>{

    if(i>1){

      if(dts[i]!=dts[i-1]){

        sheet1.getRange(i+1,1,1,5).setBackground('yellow');

      }}});

  }

  SpreadsheetApp.flush();

  var from = Session.getActiveUser().getEmail();

  var subject = 'Batch Attendance Record for Your Reference';

  var body = 'Dear Student,'+ '\n\n' + 'Greetings! Please find the batch attendance record attached. Stay safe and blessed.' + '\n\n' + 'Thank you.';

  

  var requestData = {"method": "GET", "headers":{"Authorization":"Bearer "+ScriptApp.getOAuthToken()}};  

  var url = "https://docs.google.com/spreadsheets/d/"+ ssID + "/export?format=xlsx&id="+ssID+"&gid="+shID;


  var result = UrlFetchApp.fetch(url , requestData);  

  var contents = result.getContent();

  sss.deleteSheet(sss.getSheetByName('TempDataSet_temp'));   

  

  var sheet2 = sss.getSheetByName('StudentList');  

  var data = sheet2.getLastRow();

  var students = [];

  var students = sheet2.getRange(2, 6, data).getValues(); 

  //MailApp.sendEmail(students.toString(), subject ,body, {attachments:[{fileName:sheetName+".xlsx", content:contents, mimeType:"MICROSOFT_EXCEL"}]});

    

  for (var i=0; i<students.length; i++){ // you are looping through rows and selecting the 1st and only column index

    if (students[i][0] !== ''){           

      MailApp.sendEmail(students[i][0].toString(), subject ,body, {attachments:[{fileName:sheetName+".xlsx", content:contents, mimeType:"MICROSOFT_EXCEL"}]}); 

      //MailApp.sendEmail(students[i][0].toString(), subject ,body, {from: from, attachments:[{fileName:"YourAttendaceRecord.xlsx", content:contents, mimeType:"MICROSOFT_EXCEL"}]});

    } 

  }

     

}


查看完整回答
反對(duì) 回復(fù) 2023-05-11
  • 1 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)