我想将电子表格文件中的一个工作表复制到一个新的电子表格文件中。要复制的工作表包含公式,只想将值复制到新的电子表格文件。

我把剧本写成这样:
function makecopyto() {
const folderId = '1Y7RmeF9sluTndSUr2KQT8wlOL9oUkLVU';
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('Sheet1');
const newSsName = sheet.getRange('Sheet2!F1').getValue().toString();
const resource = {
title: newSsName,
mimeType: MimeType.GOOGLE_SHEETS,
parents: [{ id: folderId }]
};
const fileJson = Drive.Files.insert(resource);
const targetSs = SpreadsheetApp.openById(fileJson.id);
const targetSheet = sheet.copyTo(targetSs);
}但结果并不合适。

我想要的结果应该是这样:

发布于 2019-05-20 07:06:05
如果我的理解是正确的,这次修改怎么样?请把这个答案看作是几个答案中的一个。在这次修改中,我使用了以下流程。
function makecopyto() {
const folderId = '1Y7RmeF9sluTndSUr2KQT8wlOL9oUkLVU';
const ss = SpreadsheetApp.getActiveSpreadsheet();
// I modified the following script.
var newSpreadsheet = DriveApp.getFileById(ss.getId()).makeCopy(DriveApp.getFolderById(folderId));
newSpreadsheet.setName(ss.getRange('Sheet2!F1').getValue());
var newSs = SpreadsheetApp.openById(newSpreadsheet.getId());
var sheets = newSs.getSheets();
var range = newSs.getSheetByName("Sheet1").getDataRange();
range.copyTo(range, {contentsOnly: true});
for (var i = 0; i < sheets.length; i++) {
if (sheets[i].getSheetName() != "Sheet1") {
newSs.deleteSheet(sheets[i]);
}
}
}如果我误解了你的问题,而这不是你想要的结果,我道歉。
https://webapps.stackexchange.com/questions/129908
复制相似问题