如何合并电子表格并在新文档中设置其选项卡顺序
How to merge Spreadsheets and Set their tab order in the new document
我使用下面的代码在Gdrive上的文件夹中组合电子表格。我正试图弄清楚如何组合的表,但知道他们在什么顺序。例如,如果我在一个名为SS1、SS2、SS3、SS4的文件夹中有4个文件。我如何确保统一表中的4个选项卡将是SS1, SS2, SS3, SS4,而不是像我的代码目前所做的一些随机顺序。例如,我的代码可能会吐出像SS2, SS1, SS4, SS3这样的顺序。
function mergeSheets() {
/* Retrieve the desired folder */
var myFolder = DriveApp.getFoldersByName(SOURCE).next();
/* Get all spreadsheets that resided on that folder */
var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");
/* Create the new spreadsheet that you store other sheets */
var newSpreadSheet = SpreadsheetApp.create("Merged Sheets");
/* Iterate over the spreadsheets over the folder */
while(spreadSheets.hasNext()) {
var sheet = spreadSheets.next();
/* Open the spreadsheet */
var spreadSheet = SpreadsheetApp.openById(sheet.getId());
/* Get all its sheets */
for(var y in spreadSheet.getSheets()) {
/* Copy the sheet to the new merged Spread Sheet */
spreadSheet.getSheets()[y].copyTo(newSpreadSheet);
}
}
}
您可以做的是将提取的文件的结果(您的while循环)存储在数组中,然后对数组进行排序,最后附加在数组中排序的工作表(作为数组的值排序)。
这里你的代码重写了我的想法(没有测试它,所以可能有一些bug)
function mergeSheets() {
/* Retrieve the desired folder */
var myFolder = DriveApp.getFoldersByName(SOURCE).next();
/* Get all spreadsheets that resided on that folder */
var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");
/* Create the new spreadsheet that you store other sheets */
var newSpreadSheet = SpreadsheetApp.create("Merged Sheets");
/* Iterate over the spreadsheets over the folder */
var spreadsheetsList = [];
while(spreadSheets.hasNext()) {
var sheet = spreadSheets.next();
spreadsheetsList.push([sheet.getName(),sheet.getId()]);
}
spreadsheetsList.sort(function(a,b){return a[0].localCompare(b[0])});
for(var i =0; i< spreadsheetsList.length; i++){
/* Open the spreadsheet */
var spreadSheet = SpreadsheetApp.openById(spreadsheetsList[i][1]);
/* Get all its sheets */
for(var y in spreadSheet.getSheets()) {
/* Copy the sheet to the new merged Spread Sheet */
spreadSheet.getSheets()[y].copyTo(newSpreadSheet);
}
}
}
相关文章:
- 设置文档位置href会阻止设置cookie
- 如何在新的Meteor Collection文档中设置服务器上的created_on字段
- 设置'文档'在FireFox中
- 如何设置javascript中引用的文档的URL
- 第三方javascript设置文档.cookie
- 如何在 asp.net 中设置文档模式怪癖
- 如何获取和设置鼠标单击x,y打开的pdf文档的位置
- 将文档高度设置为负 100px
- 将焦点设置为框架内的文档 (jQuery)
- MongoDB:确保只有一个文档可以将字段设置为 true
- 在文档加载时使用 JQuery 在下拉字段中设置默认值
- 如何将文档属性(例如 document.webkitFullscreenElement)设置为 null
- 如何为 HTML 文档请求的 JS 和 CSS 文件设置 http “accept” 标头
- 设置文档域时出现“访问被拒绝”错误
- 在 Web 视图中设置 innerHTML 将替换整个文档,而不仅仅是元素
- 在Firefox中强制将焦点设置回内容可编辑文档
- 如何查找文档中的所有数字并设置它们的样式
- 从特定iframe本身中呈现的文档设置iframe属性
- 如何为嵌套的Mongoose文档设置select=false
- 在JavaScript中从文档设置双重getElementById