1 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
有幾種選擇:
將工作表復(fù)制到新電子表格,然后使用getDataRange()、setValues(values)和getValues()的組合來(lái)刪除公式:
function Copymastersheettoscorecard(){
? var date = Utilities.formatDate(new Date(), "GMT-22", "MM/dd/yyyy");
? var ss = SpreadsheetApp.openById("SS_ID_1");
? var dss = SpreadsheetApp.openById("SS_ID_2");
? var Newsheet = ss.getSheetByName("Master Sheet").copyTo(dss).setName(date);
? var destRange = Newsheet.getDataRange();
? destRange.setValues(destRange.getValues());
}
在新電子表格中插入并清空工作表,然后直接復(fù)制原始工作表中的值,也可以使用getDataRange、setValues和getValues:
function Copymastersheettoscorecard(){
? var date = Utilities.formatDate(new Date(), "GMT-22", "MM/dd/yyyy");
? var ss = SpreadsheetApp.openById("SS_ID_1");
? var dss = SpreadsheetApp.openById("SS_ID_2");
? var Newsheet = dss.insertSheet(date);
? var sourceValues = ss.getSheetByName("Master Sheet").getDataRange().getValues();
? Newsheet.getRange(1,1,sourceValues.length,sourceValues[0].length).setValues(sourceValues);
}
第二種方法不太復(fù)雜,但它不會(huì)復(fù)制格式。如果您想保留它,請(qǐng)不要使用它。
使用Range.copyTo,它允許將選項(xiàng)設(shè)置為僅粘貼值 ( SpreadsheetApp.CopyPasteType.PASTE_VALUES)。但是,這種方式需要?jiǎng)?chuàng)建和刪除臨時(shí)工作表(因?yàn)樗荒苡糜谠诓煌娮颖砀裰g復(fù)制范圍),并且它也不會(huì)保留格式:
function Copymastersheettoscorecard(){
? var date = Utilities.formatDate(new Date(), "GMT-22", "MM/dd/yyyy");
? var ss = SpreadsheetApp.openById("SS_ID_1");
? var dss = SpreadsheetApp.openById("SS_ID_2");
? var sourceRange = ss.getSheetByName("Master Sheet").getDataRange();
? var Tempsheet = ss.insertSheet("TEMPORARY");
? sourceRange.copyTo(Tempsheet.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
? Tempsheet.copyTo(dss).setName(date);
? ss.deleteSheet(Tempsheet);
}
添加回答
舉報(bào)