如何用在谷歌应用程式脚本两个(或多个)电子表格(约50张的每个)除以一个谷歌的电子表格(约100张)?将电子表格分成两个或更多电子表格?
唉,由于谷歌的错误(见https://productforums.google.com/d/topic/docs/H2ZakBguOgk/discussion),我无法复制整个电子表格文件并删除每个电子表格中的一些表格。
我只能在另一个电子表格上一张一张地复印纸张,如果复制成功,则删除原始纸张。
在此先感谢;)
如何用在谷歌应用程式脚本两个(或多个)电子表格(约50张的每个)除以一个谷歌的电子表格(约100张)?将电子表格分成两个或更多电子表格?
唉,由于谷歌的错误(见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);
}
}
哇!非常感谢 ! ;)在测试出现问题的电子表格之前,我刚刚尝试了另一个电子表格上的建议。唉,我不断收到“”我们很抱歉,发生服务器错误。请稍等,然后重试。 (3号线)”只是一个细节:我希望我是对的,因为我已经适应了你的第二行:VAR oldfileID =?(‘0Ajz _..... 3NjJ1R0JiOUE’)//‘你原来的SS ID’在此先感谢;) – miodf
嗨,在代码中有一些错误...现在你有一个工作版本(我在第二个循环中使用ss而不是ssold,并且在第一个循环中我忘记了-1 –
嗨Serge,非常感谢);唉,此刻我不断收到同样的错误,如果你不介意的话,我明天再试一次,然后我会通知你,再次谢谢你,PS:我也回答了Henrique的问题 – miodf
是菜单选项“文件>制作副本...”不工作呢?看起来(在你粘贴的链接上)只有下载不适合你。 –
是这两种方法都不起作用:“文件>制作副本...”和“文件>下载为/ Excel”。如果我尝试从drive.google.com/More/Download/selected item/excel中选择文件,那也是一样的。在此先感谢;) – miodf