簡體   English   中英

是否可以在 Google Apps Scripts for Google Sheets 中為單個單元格創建顏色漸變?

[英]Is it possible to create a color fade for an individual cell in Google Apps Scripts for Google Sheets?

所以,如果它是最近的,即這個單元格中的時間戳,就像 5 分鍾前,那么它是深綠色,但如果是 30 分鍾前,它是淺綠色,兩小時后它會變成白色。

有問題的單元格由以下腳本控制:

function onEdit(e) {
  //e.source.toast("Entry");
  //console.log(JSON.stringify(e));
  const sh=e.range.getSheet();
  if(sh.getName()=="Sheet1" && e.range.columnStart==2 && e.value) {
    e.range.offset(0,1).setValue(Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"MM/dd/yyyy HH:mm:ss"));
  }
  if(sh.getName()=="Sheet1" && e.range.columnStart==4 && e.value) {
    e.range.offset(0,1).setValue(Utilities.formatDate(new Date(),Session.getScriptTimeZone(),"MM/dd/yyyy HH:mm:ss"));
  }
}

您可以創建以下函數並將其設置為時間驅動觸發器

function bindMeOnTimeDrivenTrigger(){
  var sheet = SpreadsheetApp.openById("XXXXX").getSheetByName("Sheet1");  
  var stampContainingColumns = [3,5];
  var lastRow = sheet.getLastRow();
  var stamps = [sheet.getRange(1, stampContainingColumns[0], lastRow, 1).getValues().flat(), sheet.getRange(1, stampContainingColumns[1], lastRow, 1).getValues().flat()];
  var now = new Date().getTime();
  var fiveMin = 5*60*1000;
  var thirtyMin = 30*60*1000;
  var twoHours = 120*60*1000;
  for(var i =0; i < stamps.length; i++){
    for(var j =0; j < stamps[0].length; j++){
      if((typeof stamps[i][j]) == "object"){
        if(stamps[i][j].getTime()+twoHours < now){
          sheet.getRange(j+1, stampContainingColumns[i]).setBackground("white");
        }
        else if(stamps[i][j].getTime()+thirtyMin < now){
          sheet.getRange(j+1, stampContainingColumns[i]).setBackground("lightgreen");
        }
        else if(stamps[i][j].getTime()+fiveMin < now){
          sheet.getRange(j+1, stampContainingColumns[i]).setBackground("darkgreen");
        }
      }
    }
  }
}

當然,您可以合並更多不同的陰影和時間范圍 - 在這種情況下,您將需要實施更多不同的else語句。

鑒於每 5 分鍾檢查一次時間戳對您來說至關重要,因此將時間驅動觸發器設置為每 5 分鍾執行一次是有意義的,但請記住, Apps 腳本配額具有Triggers total runtime per day限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM