如何用在谷歌應用程式腳本兩個(或多個)電子表格(約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