Google apps script 优化代码以及如何将活动电子表格的选定区域作为google文档的输入

Google apps script 优化代码以及如何将活动电子表格的选定区域作为google文档的输入,google-apps-script,Google Apps Script,我已经编写了脚本,用于将12.4/12/12.03等格式更改为12:40:00/12:00:00/12:03:00 代码如下: function myFunction() { var sheet=SpreadsheetApp.getActiveSheet(); var rows= sheet.getDataRange(); var numRows=rows.getNumRows(); var values=rows.getValues() var column = [];

我已经编写了脚本,用于将
12.4/12/12.03
等格式更改为
12:40:00/12:00:00/12:03:00
代码如下:

function myFunction() {
  var sheet=SpreadsheetApp.getActiveSheet();
  var rows= sheet.getDataRange();
  var numRows=rows.getNumRows();
  var values=rows.getValues()
  var column = [];
  var p = 0;
  var k = "H";

   for (var i=0;i<numRows;i++) {

    // var cell = 
    //Split the string a the .
  var  string = values[i][7].split(".");

     string[0] = string[0].toString();
     p = i+1;
     k = "H"+p;
     var cell = sheet.getRange(k);
     if(string[1]){
       string[1] = string[1].toString(); 
    // if the second part is like 4 in 12.4 you set it to 40

     if(string[1]!=0) {
    if (string[1].length == 1 )
    {   string[1] += "0";}
     }
    // Set the row value to the format you like, here : 12:40:00/12:40
      var changed_format = string[0] + ":" + string[1] + ":00";
     values[i][7]=changed_format;
     p = i+1;
     k = "H"+p;
     cell.setValue(changed_format);     
}
     else {
       var changed_format = values[i][7]+":00:00";
     cell.setValue(changed_format);

     }    
   }
函数myFunction(){
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues()
var列=[];
var p=0;
var k=“H”;

对于(var i=0;i优化代码的一个关键是减少对Google服务的调用数量,并尝试使用JavaScript完成这些调用。 请注意,我还没有测试过它——因此,如果您遇到一些小的语法错误,请随意修复它们,如果您无法修复它们,请大喊一声

function myFunction() {
  var sheet=SpreadsheetApp.getActiveSheet();
  var rows= sheet.getDataRange();
  var values=rows.getValues(); 
  var COL_H = 8;

  var numRows=values.length ; // Length of array = nuymRows. rows.getNumRows();
  var column = [];
  //var p = 0;
  //var k = "H";
  var destArray = new Array();

   for (var i=0;i<numRows;i++) {

    // var cell = 
    //Split the string a the .
    var  string = values[i][7].split(".");

     string[0] = string[0].toString();
     //p = i+1;
     //k = "H"+p;
     //var cell = sheet.getRange(k);
     if(string[1]){
       string[1] = string[1].toString(); 
       // if the second part is like 4 in 12.4 you set it to 40

       if(string[1]!=0) {
         if (string[1].length == 1 )
         {   string[1] += "0";}
       }
      // Set the row value to the format you like, here : 12:40:00/12:40
      var changed_format = string[0] + ":" + string[1] + ":00";
      //values[i][7]=changed_format;
      //p = i+1;
      //k = "H"+p;
      //cell.setValue(changed_format);   
      destArray.push([changed_format]);  
    }
    else {
       var changed_format = values[i][7]+":00:00";
       //values [i][7] = changed_format;
     //cell.setValue(changed_format);
      destArray.push([changed_format]);
     }
   }
   var destRange = sheet.getRange(1, COL_H, destArray.length, 1);
   destRange.setValues(values);
}
函数myFunction(){
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var values=rows.getValues();
var COL_H=8;
var numRows=values.length;//数组的长度=numRows.rows.getNumRows();
var列=[];
//var p=0;
//var k=“H”;
var destArray=新数组();

对于(var i=0;i谢谢你…@Srik..从下一次开始…我将把格式化的代码..和什么是desArray.push…放入你的代码..还有没有办法将电子表格的选定区域作为参数或其他东西传递(作为脚本的输入)..??
destArray.push
向数组中添加一个新元素。请记住,使用
setValues
时,必须传递一个2D数组。因此数组中的每个元素本身就是一个数组。要使用所选区域,只需使用
getActiveRange()
而不是
getDataRange()