1

我有一个电子表格模型,我想自动将此模型中的工作表复制到一个新的电子表格中(不在同一个电子表格中)。这个新的电子表格必须自动打开并保存在我的 Google Drive 中。我怎样才能做到这一点?

我从这段代码开始,但它不起作用

function CreateReports()
{    

    var ssNew = SpreadsheetApp.create(date);
    var url = ssNew.getUrl()
    var ss = SpreadsheetApp.openByUrl(url);

    Logger.log(ssNew.getUrl());

}
4

2 回答 2

2

如果脚本以最终用户身份运行(它会从脚本编辑器自动执行),则电子表格的任何创建或副本最终都会在 Drive 中结束,而无需任何其他步骤。

它不可能自动打开电子表格或任何窗口。创建/复制完成后,用户必须单击 URL。

因此,为了使用电子表格 UI,您必须getUrl在弹出窗口中显示 URL 或通过电子邮件将其发送给用户,他们可以点击。

于 2013-05-07T12:33:51.193 回答
2

如果要复制整个电子表格,请参阅文档中的示例Spreadsheet.copy()

该脚本将:

  • 创建一个以当前日期命名的新电子表格。
  • 将模型表复制到新电子表格
  • 重命名复制的模型表(再次使用当前日期)
  • 返回新的工作表对象(“打开”它,如果你愿意的话)

代码

function copyModel() {
  // Get today's date as a string
  var date = (new Date()).toDateString();

  // Get our model sheet
  var source = SpreadsheetApp.getActiveSpreadsheet();
  var model = source.getSheetByName("model");

  // Create a new spreadsheet on Drive, named by date
  var destination = SpreadsheetApp.create(date);

  // Copy and rename the model sheet into new spreadsheet
  var newSheet = model.copyTo(destination).setName(date);
  return newSheet;
}
于 2013-05-07T12:56:59.650 回答