【发布时间】:2015-07-20 09:35:51
【问题描述】:
我是 Google 表格的新手,我正在寻找一种方法/功能,它允许我创建的按钮将电子表格中的所有条目存档到另一个电子表格。
我目前有一列计算一年中的当前周,另一个手动输入的列是输入条目的一年中的一周。这最终将在输入新行时自动计算,但我要做的是从当前周前几周提取所有条目,并将这些行放入我指定的另一个电子表格中。
我知道这在 Excel 中是可能的,但我在 Google 表格中的编程不是最棒的,所以我正在寻找一些建议/帮助。
编辑: 很快我发现我要么真的很生疏,要么就是不擅长 Java。我尝试了以下代码:
function myArchive() {
var aYear = getYear()
var sourceSheet = SpreadsheetApp.getActive()
.getSheetByName('Payroll'),
destSheet = SpreadsheetApp.openById('PayrollArchive')
.getSheetByName(aYear),
sourceRanges = ['A:A', 'B:B', 'C:C'],
targetRanges = [7, 9, 12]
.map(function (r, i) {
var sr = sourceSheet.getRange(sourceRanges[i]),
val = sr.getValues();
destSheet.getRange(1, r, val.length, val[0].length)
.setValues(val);
sr.clear()
});
}
从这里检索:Is there an easy format to move columns of data by script?
但是,我正在尝试做一些不同的事情。
我想复制所有条目,其中第 1 列包含前一周或之前的第 # 周。例如,当前是一年中的第 21 周。我希望它提取电子表格中第 1 列为 20 或更早的所有条目。不知道如何用 Java 编写当前的一周。
-
我想将上面拉出的行中的所有信息放入名为 PayrollArchive 的电子表格中名为当前年份的工作表中。因此,前几周的所有行都将放入 PayrollArchive 电子表格的 2015 工作表中。我认为 var aYear = getYear() 是获取当前年份的正确编码,但是是否有可能获取工作表中特定单元格的值来获取它?我已经在电子表格的单元格中保存了当前的周数和日期信息。星期保存在 J1 中,日期保存在 D1:E1 中,作为当前工作周的最后一天。例如:
=TODAY()-WEEKDAY(TODAY(),3)+6 如果我们想在 2016 年的第一周归档 2015 年的最后一周,会发生什么情况?我们如何防止 2015 年的信息进入 2016 年的工作表。
如果工作表不存在,这是否会创建工作表?我目前创建了 2015 工作表,但我需要手动创建 2016 工作表还是该函数会自行创建工作表?
【问题讨论】:
标签: google-apps-script google-sheets