1

如何在 google-apps-script 中将 google 电子表格(大约 100 张)分成两个(或更多)电子表格(每个大约 50 张)?

唉,由于谷歌错误(参见https://productforums.google.com/d/topic/docs/H2ZakBguOgk/discussion),我无法复制整个电子表格文件并删除每个电子表格中的一些工作表。

我只能在另一个电子表格上一张一张地复制工作表,如果复制成功,则删除原始工作表。

提前致谢 ;)

4

1 回答 1

1

这是一个应该做你想做的代码片段,我没有测试它,所以也许你必须调整一些细节,但总体思路就在那里......

编辑:我测试并进行了更正以使其正常工作......对于第一个版本中的拼写错误感到抱歉

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);
    }
}
于 2012-10-23T16:54:08.367 回答