在两个或多个电子表格中划分电子表格?

时间:2012-10-23 16:12:21

标签: google-apps-script spreadsheet

如何在google-apps-script的两个(或更多)电子表格(每张约50张)中划分谷歌电子表格(约100张)?

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

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

提前致谢;)

1 个答案:

答案 0 :(得分: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);
    }
}