如何在 google-apps-script 中将 google 电子表格(大约 100 张)分成两个(或更多)电子表格(每个大约 50 张)?
唉,由于谷歌错误(参见https://productforums.google.com/d/topic/docs/H2ZakBguOgk/discussion),我无法复制整个电子表格文件并删除每个电子表格中的一些工作表。
我只能在另一个电子表格上一张一张地复制工作表,如果复制成功,则删除原始工作表。
提前致谢 ;)
如何在 google-apps-script 中将 google 电子表格(大约 100 张)分成两个(或更多)电子表格(每个大约 50 张)?
唉,由于谷歌错误(参见https://productforums.google.com/d/topic/docs/H2ZakBguOgk/discussion),我无法复制整个电子表格文件并删除每个电子表格中的一些工作表。
我只能在另一个电子表格上一张一张地复制工作表,如果复制成功,则删除原始工作表。
提前致谢 ;)
这是一个应该做你想做的代码片段,我没有测试它,所以也许你必须调整一些细节,但总体思路就在那里......
编辑:我测试并进行了更正以使其正常工作......对于第一个版本中的拼写错误感到抱歉
function splitSS() {
var oldFileID = 'original ss Id'
var newFile = DocsList.getFileById(oldFileID).makeCopy()
var newFileID = newFile.getId()
var ss = SpreadsheetApp.openById(newFileID);
Logger.log(ss.getNumSheets())
var todel = parseInt((ss.getNumSheets())/2);
Logger.log(todel)
var tokeep = ss.getNumSheets()-todel
Logger.log(tokeep)
for (pa=ss.getNumSheets()-1;pa>tokeep;--pa){
ss.setActiveSheet(ss.getSheets()[pa]);
var delsheet = ss.deleteActiveSheet(); // delete sheets begining with the last one
Utilities.sleep(400);
}
var ssold = SpreadsheetApp.openById(oldFileID);
for (pa=todel;pa>1;--pa){
ssold.setActiveSheet(ssold.getSheets()[pa]);
var delsheet = ssold.deleteActiveSheet(); // delete sheets begining with the last one
Utilities.sleep(400);
}
}