Google应用脚本设置的单元格公式需要通过appendrow添加的行的行号

时间:2017-12-29 16:17:19

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

我有一张谷歌表,通过谷歌表格填充活动。其中一个字段是活动日期字段。完成后,活动将移至另一个工作表,以便通过appendrow进行报告。

var cells = [activityDate, title, completionDate, ...];
destsheet.appendRow (cells);

为了支持pivotTable的填充,目标电子表格中的一列是用于分组目的的活动月份,通过以下公式=Text(A1, "MMMM")完成。我的问题是,要完全填充“行”,我需要知道添加到目标表的行的行号。例如,假设我追加第89行,那么我可以将行的公式设置为= Text(A89,“MMMM”)。我遇到的问题是,当appendRow是原子时,它返回工作表,而不是添加的行。

虽然我可以在appendRow之后通过getRange获取行,但我想可能另一个用户可以在appendRow和getRange调用之间插入一行。我通过更改列的公式解决了我的问题,是“=文本(间接(地址(行(),1,4)),”MMMM“)”。这为我提供了用于报告目的的活动日期的格式正确的月份。对于较少的电子表格精明,我用于我的解决方案的公式有点令人困惑。

有没有办法可以在原子事务中获取appendRow,这样我才能正确配置可能依赖“行”数的行中的单元格?

1 个答案:

答案 0 :(得分:0)

这个怎么样?删除目标工作表中的所有空行,然后在追加行函数中调用附加行的同一事务中的getMaxRows()方法。 Google appscript是同步的,因此在获取最大行信息所需的时间内无法插入另一行。

function appendRow() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var row = sheet.appendRow(['Some data'])
  Logger.log(row.getMaxRows())
}