首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >#gsheet导出日历视图表中的时间表表

#gsheet导出日历视图表中的时间表表
EN

Stack Overflow用户
提问于 2022-07-22 09:41:17
回答 1查看 30关注 0票数 0

我想要一些帮助,让人们在全球年度报告中参与时间活动。

目的

每周我们根据活动和一周中的每一天来报告我们的时间。

目标

因为我们每周都这样做,所以我想在为下一周的活动重写数据之前,将数据导出到一份年度报表中。

源SheetName=‘时间表’

导出的数据

  1. 在"A“中,从源消耗时间的日期(C:I)
  2. 在"B“中来源的活动(A:A)
  3. 在"C“中,来源的人的名字(B:B)
  4. 在"D“中,指人在某一天从来源中消耗的活动时间(C:I)。

目的地SheetName= 'Anual_Timesheet‘

结论

每周,通过脚本,我将能够保持数据自动导出和节省时间,而不做手工错误。

档案

用于https://docs.google.com/spreadsheets/d/1WzVbd8esjmJZJ0PnbUfnW8sS2KOTv6JikVD8vhtpqPg/edit?usp=sharing的文件

谢谢你的阅读和帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-22 12:53:58

下面是一个归档时间记录的示例脚本。我为测试做了一个样本数据集,如下所示。工作表名称需要更改以反映您的情况。

Code.gs

代码语言:javascript
复制
function saveTimeRecords() {
  try {
    let spread = SpreadsheetApp.getActiveSpreadsheet();
    let sheet = spread.getSheetByName("Sheet1");
    let records = sheet.getRange(4,1,sheet.getLastRow()-3,sheet.getLastColumn()).getValues();
    let dates = records.shift();  // get the dates and remove from records
    dates = dates.slice(2,8); // get only the columns with dates
    records.shift(); // remove headers
    let archive = [];
    records.forEach( record => {
      for( let i=2; i<9; i++ ) {
        if( record[i] !== "" ) {
          archive.push([dates[i-2],record[0],record[1],record[i]]);
        }
      }
    });
    sheet = spread.getSheetByName("Sheet2");
    sheet.getRange(sheet.getLastRow()+1,1,archive.length,archive[0].length).setValues(archive);
  }
  catch(err) {
    Logger.Log(err);
  }
}

参考文献

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73078275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档