Google表格脚本为特定单元格添加时间

时间:2017-11-26 09:11:47

标签: javascript google-apps-script google-sheets

我需要一个脚本帮助,该脚本将时间值添加到包含时间值的特定单元格。例如,Cell A1包含时间值,如09:30。 然后当脚本运行时,它将在A1中添加30分钟,结果是10:00。

感谢帮助。

编辑:下面是我当前的代码

package firstPro;

import java.util.List;

public class Dummy {

    private List<String> names;

    public Dummy(List<String> names) {
        this.names = names;
    }

    public List<String> getNames() {
        return this.names;
    }

}

1 个答案:

答案 0 :(得分:0)

假人数字时钟

这是一个数字时钟,以Date()函数的正确时间开始。但是当它被更新时,它只需要通过获取前一个日期时间值并向其添加60 * 1000毫秒并使用新值格式化日期而不是使用可用的实际值来添加60秒。所以它每分钟只改变一次。它还为您创建和管理一分钟计时器。

function digitalClockMenu(){
  SpreadsheetApp.getUi().createMenu('Clock Tools')
     .addItem('Start Clock', 'startDigitalClock')
     .addItem('Stop Clock', 'stopDigitalClock')
     .addToUi();
}

function startDigitalClock() {
  if(!isTrigger('addMinute')){
    ScriptApp.newTrigger('addMinute').timeBased().everyMinutes(1).create();
  }
  SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A2').clearFormat().setValue('');
  SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A1').setValue('Starting');
}

function initialTime(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('ClockSheet');
  sh.getRange('A2').setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "HH:mm:ss"));
  sh.getRange('A1').setValue('Running');
}

function addMinute(){
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('ClockSheet');
  var v=sh.getRange('A2').getValue();
  if(v){
    var old=new Date(v).valueOf();
    var minute=60*1000;
    sh.getRange('A2').setValue(Utilities.formatString(Utilities.formatDate(new Date(old + minute), Session.getScriptTimeZone(), "HH:mm:ss")));
  }else{
    initialTime();
  }
}

function stopDigitalClock(){
  deleteTrigger('addMinute');
  SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A1').setValue('Stopped');
}  


function isTrigger(funcName)
{
  var r=false;
  if(funcName)
  {
    var allTriggers=ScriptApp.getProjectTriggers();
    var allHandlers=[];
    for(var i=0;i<allTriggers.length;i++)
    {
      allHandlers.push(allTriggers[i].getHandlerFunction());
    }
    if(allHandlers.indexOf(funcName)>-1)
    {
      r=true;
    }
  }
  return r;
}

function deleteTrigger(funcName)
{
  var triggers=ScriptApp.getProjectTriggers();
  for(var i=0;i<triggers.length;i++)
  {
    if(funcName==triggers[i].getHandlerFunction())
    {
      ScriptApp.deleteTrigger(triggers[i]);
      break;
    }
  }

}

它会按照您的要求加上更多。