![](/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.