2012-10-23 108 views
1

如何用在谷歌应用程式脚本两个(或多个)电子表格(约50张的每个)除以一个谷歌的电子表格(约100张)?将电子表格分成两个或更多电子表格?

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

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

在此先感谢;)

+0

是菜单选项“文件>制作副本...”不工作呢?看起来(在你粘贴的链接上)只有下载不适合你。 –

+0

是这两种方法都不起作用:“文件>制作副本...”和“文件>下载为/ Excel”。如果我尝试从drive.google.com/More/Download/selected item/excel中选择文件,那也是一样的。在此先感谢;) – miodf

回答

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); 
    } 
} 
+0

哇!非常感谢 ! ;)在测试出现问题的电子表格之前,我刚刚尝试了另一个电子表格上的建议。唉,我不断收到“”我们很抱歉,发生服务器错误。请稍等,然后重试。 (3号线)”只是一个细节:我希望我是对的,因为我已经适应了你的第二行:VAR oldfileID =?(‘0Ajz _..... 3NjJ1R0JiOUE’)//‘你原来的SS ID’在此先感谢;) – miodf

+0

嗨,在代码中有一些错误...现在你有一个工作版本(我在第二个循环中使用ss而不是ssold,并且在第一个循环中我忘记了-1 –

+0

嗨Serge,非常感谢);唉,此刻我不断收到同样的错误,如果你不介意的话,我明天再试一次,然后我会通知你,再次谢谢你,PS:我也回答了Henrique的问题 – miodf

相关问题