如何在不采用公式的情况下使用旧数据创建新工作表

时间:2019-06-28 09:35:57

标签: google-apps-script google-sheets

我试图将数据复制到另一个工作表中,就像创建各种存档一样,但是它也在复制公式,使其成为活动工作表,而不是仅获取显示的数据。

我环顾四周,但似乎没有人回答我在寻找什么。 大多数解决方案仅适用于CopyTo方法和对我不起作用的{contentOnly:true}。

function archiving() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var defectSheet = ss.getSheetByName('Total Defects'); 
  var ts = 'Archived_Total Defects '+ new Date().toISOString().slice(0,10);

  ss.insertSheet(ts, ss.getSheets().length, {template: defectSheet});
}

是确实创建了新工作表,但它会带走所有信息,而不仅仅是显示的值。

1 个答案:

答案 0 :(得分:1)

代替 ss.insertSheet(ts, ss.getSheets().length, {template: defectSheet});

您可以运行

var sheet = ss.insertSheet(ts, ss.getSheets().length, {template: defectSheet});
sheet.getDataRange().copyTo(sheet.getDataRange(), {contentsOnly:true});

这会将每个单元格的值复制到新工作表而不是公式中。