![](/img/trans.png)
[英]How do I pull All data in one Google Sheet to another Google Sheet Tab using Google App Script?
[英]Split data in google sheet to another sheet using google app script
我尝试按行拆分 google 工作表中的数据并创建新工作表并将数据传输到新工作表。 这是我的脚本示例:
var ss= getspreadsheetId();
var sheet = ss.getActiveSheet();
var data = sheet.getDataRange().getValues();
var lastRow = sheet.getLastRow();
var ui_user = SpreadsheetApp.getUi();
var result = ui_user.prompt("Enter split Number?");
var split_number=result.getResponseText();
var sheetName = ui_user.prompt("Enter Sheet name *Separate by space");
var sheetName_user =sheetName.getResponseText();
var sheetNamet_user_split=sheetName_user.split(" ");
data = sheet.getDataRange().getValues();
result = [];
//calculation to get row data split
split_value=Math.floor(lastRow/split_number);
//Logger.log(split_value);
for(i=0;i<split_number;i++){
for(j=0;j<split_value;j++){
result.push(data[j]);
}
ss.insertSheet(sheetNamet_user_split[i]);
var sheetAdd = ss.getSheetByName(sheetNamet_user_split[i]);
sheetAdd.getRange(1,1,result.length,result[0].length).setValues(result);
result=[]
}
此脚本中的问题是我只能为创建的每个工作表显示相同的数据。 有什么办法可以增加迭代,以便它可以迭代新数据?
for (j = 0; j < split_value; j++) { result.push(data[j]); }
使用相同的值 for (j = 0; j < split_value; j++) { result.push(data[j]); }
。 我认为这就是您问题的原因The problem in this script is i only able to display same data for every sheet that created.
.insertSheet
方法返回插入的工作表 object。当这些点都体现在你的脚本中时,下面的修改怎么样?
data = sheet.getDataRange().getValues();
result = [];
//calculation to get row data split
split_value=Math.floor(lastRow/split_number);
//Logger.log(split_value);
for(i=0;i<split_number;i++){
for(j=0;j<split_value;j++){
result.push(data[j]);
}
ss.insertSheet(sheetNamet_user_split[i]);
var sheetAdd = ss.getSheetByName(sheetNamet_user_split[i]);
sheetAdd.getRange(1,1,result.length,result[0].length).setValues(result);
result=[]
}
var data = sheet.getDataRange().getValues();
var split_value = Math.floor(lastRow / split_number);
sheetNamet_user_split.forEach(e => {
var values = data.splice(0, split_number);
if (values.length > 0) {
var sheetAdd = ss.insertSheet(e.trim());
sheetAdd.getRange(1, 1, values.length, values[0].length).setValues(values);
}
});
splice()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.