将日期特定列从一张纸转移到另一张纸

时间:2015-09-17 12:34:26

标签: google-apps-script google-sheets

我有一个每日更新的专栏。我想每天将此列复制到另一个工作表,但我每周第八列都有一个总计。如何维护每周总计,如何继续创建不是表格中最后一列的新列,并在每周开始时创建新的每周总列数? 我目前的代码每天只添加新列,并且不能将一周中的后几天放在前一天和每周总数之间:

      function DailyKPIs() {
      //var ss = SpreadsheetApp.getActiveSpreadsheet();
      var ss = SpreadsheetApp.openById("1QY-          gVPAOcPbM8MwS77M5fRbBd9yPpxW5WPzpa8KvsKk");
      var target =                     SpreadsheetApp.openById("1axKaf2x5KiqwYh1xNGye67tp1Z1dOezdEi89oOPBcYQ");
      var source_sheet = ss.getSheetByName("KPI Source");
      var target_sheet = target.getSheetByName("Daily");
      var source_range = source_sheet.getRange("C2:C106");
      var last_col = target_sheet.getIndex();
      // add columns only if necessary
      while(target_sheet.getMaxColumns()<=last_col+1){
      target_sheet.insertColumnAfter(last_col)
       }
      var source_values = source_range.getValues();
      // row Nr4, starting on last column+1, 2 columns width and 89-4           rows height
      //var target_range =                                         target_sheet.getRange(4,last_col+1,source_values.length,2);
      var target_range = target_sheet.getRange(1,last_col+1,source_values.length,1);
      target_range.setValues(source_values);
      }

1 个答案:

答案 0 :(得分:0)

要添加不属于工作表中最后一列的新列,可以使用&#34; insertColumnAfter&#34; (正如你已经在做的那样)。该函数接受您将拥有的列的索引作为参考。例如如果要在第二列和第三列(列B和C)之间添加新列,可以调用&#34; insertColumnAfter(2)&#34;。 B列的索引是2。

还有函数&#34; insertColumnBefore()&#34;,您可以使用最后一列索引(您的var last_col)在最后一列之前插入一个新列。

要在本周开始时为每周总计添加新列,您可以在条件中使用日期函数getDay。如果日期为1(星期一),则创建新的每周总列数。