如何将带有 20 个标签的单个跨页 sheet 拆分为单独的 sheet(不同的文件)
How to split a single spread sheet with 20 tabs into separate sheets(different files)
我有一个包含 20 个选项卡的电子表格,但处理起来非常繁重,所以我想将它分成不同的工作表(文件)
如果可能的话,您能否推荐一些 Google Apps 脚本,以便我能够做到?
希望标签名称在转换时成为新文件的名称。
这是一个应该有效的脚本。 toFolderName
默认为空白,因此您的文件将保存到您的根文件夹。如果输入唯一的文件夹名称,文件将被复制到该文件夹。我建议从这里开始,虽然这是一个非常慢的脚本,20 个标签应该需要一分钟多一点。
function migrateSheetsToFiles() {
var mySheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var toFolderName = '';
var i;
for(i in mySheets){
var currentSheet = mySheets[i];
var oldData = currentSheet.getDataRange().getValues();
var newFile = SpreadsheetApp.create(currentSheet.getName());
var newId = newFile.getId();
var newSheet = newFile.getSheets()[0]
newSheet.getRange(1,1,oldData.length,oldData[0].length).setValues(oldData);
newSheet.setName(newFile.getName());
if(toFolderName != ''){
var fileInDrive = DriveApp.getFileById(newId);
fileInDrive.makeCopy(fileInDrive.getName(),DriveApp.getFoldersByName(toFolderName).next());
fileInDrive.setTrashed(true);
};
};
};
我有一个包含 20 个选项卡的电子表格,但处理起来非常繁重,所以我想将它分成不同的工作表(文件)
如果可能的话,您能否推荐一些 Google Apps 脚本,以便我能够做到?
希望标签名称在转换时成为新文件的名称。
这是一个应该有效的脚本。 toFolderName
默认为空白,因此您的文件将保存到您的根文件夹。如果输入唯一的文件夹名称,文件将被复制到该文件夹。我建议从这里开始,虽然这是一个非常慢的脚本,20 个标签应该需要一分钟多一点。
function migrateSheetsToFiles() {
var mySheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var toFolderName = '';
var i;
for(i in mySheets){
var currentSheet = mySheets[i];
var oldData = currentSheet.getDataRange().getValues();
var newFile = SpreadsheetApp.create(currentSheet.getName());
var newId = newFile.getId();
var newSheet = newFile.getSheets()[0]
newSheet.getRange(1,1,oldData.length,oldData[0].length).setValues(oldData);
newSheet.setName(newFile.getName());
if(toFolderName != ''){
var fileInDrive = DriveApp.getFileById(newId);
fileInDrive.makeCopy(fileInDrive.getName(),DriveApp.getFoldersByName(toFolderName).next());
fileInDrive.setTrashed(true);
};
};
};