Javascript 在google工作表中的行之前插入行
我有一个有很多行的谷歌表。为了更好地查看工作表,我希望在单元格a中有数据的每一行之前添加一个空行 我想我需要先使用insertrowsbJavascript 在google工作表中的行之前插入行,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个有很多行的谷歌表。为了更好地查看工作表,我希望在单元格a中有数据的每一行之前添加一个空行 我想我需要先使用insertrowsb function Insert() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getActiveSheet(); s.insertRowsBefore(2, 1); // add 1 row before the 2nd } 当然,这个函数只对第二行起作用,我没有找到
function Insert() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
s.insertRowsBefore(2, 1); // add 1 row before the 2nd
}
当然,这个函数只对第二行起作用,我没有找到一个好的解决方案来对a中的每一行数据都这样做
有人有办法或建议来帮助我吗
:从您的问题和评论中,3个< /P> < P>,我可以理解,对于<代码> [[ Value1 ] ]、[ [ Value2 ] ] [[代码] >,您要插入空白行,如<代码> [[“Value1”],[ [“] ],[“Value2”],[ [“] ],[“Value3”] ] /代码>,并且每个空白行是A列到最后一列。如果我的理解是正确的,这次修改怎么样
修改点:- 我认为可以使用for循环的
by作为脚本插入行。但是在这种情况下,当它是大量的行时,处理速度会有点慢。所以我想建议使用Sheets API。这样,您就可以通过一个API调用来实现它insertRowsBefore()
- 关于脚本编辑器
- 资源->高级谷歌服务
- 打开GoogleSheetsAPI v4
- 关于脚本编辑器
- 资源->云平台项目
- 查看API控制台
- 开始时,单击启用API并获取密钥等凭据
- 在左侧,单击“库”
- 在搜索API和服务时,输入“工作表”。然后单击GoogleSheetsAPI
- 单击启用按钮
- 如果API已经启用,请不要关闭
- 当这些行没有列“A”的值时,将跳过这些行。
- 如果您不想跳过它,请删除
和If(e[0]){
}else{adjustment++;requests.pop();}
- 如果您不想跳过它,请删除
- 高级谷歌服务:
- 表API v4:
function Insert() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var values = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues();
var sheetId = sheet.getSheetId();
var offset = 1; // For header
var requests = [];
for (var i = values.length - 1; i > offset + 1; i--) {
if (values[i][0]) {
requests.push({
"insertRange": {
"shiftDimension": "ROWS",
"range": {
"sheetId": sheetId,
"startRowIndex": i,
"endRowIndex": i + 1
}
}
});
}
};
Sheets.Spreadsheets.batchUpdate({"requests": requests}, spreadsheet.getId());
}
编辑2:
此修改的脚本为添加的新空行提供while颜色。为此,使用了
从您的问题和评论中,我可以理解,对于<代码> [[ Value1 ] ]、[ [ Value2 ] ] [[代码] >,您要插入空白行,如<代码> [[“Value1”]、[ [“] ]、[“Value2”]、[ [“] ]、[ [ Value3 ] ] < /COD>,并且每个空行是A列到最后一列。如果我的理解是正确的,这次修改怎么样
修改点:- 我认为可以使用for循环的
by作为脚本插入行。但是在这种情况下,当它是大量的行时,处理速度会有点慢。所以我想建议使用Sheets API。这样,您就可以通过一个API调用来实现它insertRowsBefore()
- 关于脚本编辑器
- 资源->高级谷歌服务
- 打开GoogleSheetsAPI v4
- 关于脚本编辑器
- 资源->云平台项目
- 查看API控制台
- 开始时,单击启用API并获取密钥等凭据
- 在左侧,单击“库”
- 在搜索API和服务时,输入“工作表”。然后单击GoogleSheetsAPI
- 单击启用按钮
- 如果API已经启用,请不要关闭
- 当这些行没有列“A”的值时,将跳过这些行。
- 如果您不想跳过它,请删除
和If(e[0]){
}else{adjustment++;requests.pop();}
- 如果您不想跳过它,请删除
- 高级谷歌服务:
- 表API v4:
function Insert() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var values = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues();
var sheetId = sheet.getSheetId();
var offset = 1; // For header
var requests = [];
for (var i = values.length - 1; i > offset + 1; i--) {
if (values[i][0]) {
requests.push({
"insertRange": {
"shiftDimension": "ROWS",
"range": {
"sheetId": sheetId,
"startRowIndex": i,
"endRowIndex": i + 1
}
}
});
}
};
Sheets.Spreadsheets.batchUpdate({"requests": requests}, spreadsheet.getId());
}
编辑2:
此修改的脚本为添加的新空行提供while颜色。为此,使用了
为什么不在每一行上循环,如果你看到一些数据,你就添加这一行,我可以问一下你想要的输出吗?您希望在列a处有值的每一行之前插入一个空行。例如,当存在值
[[“value1”]、[“value2”]、[“value3”]
时,您希望添加空格,如[[“value1”]、[“”]、[“value2”]、[“”]、[“value3”]
。我的理解正确吗?如果它是正确的,在您的情况下,您希望为其他专栏做什么?我很抱歉我的英语水平很差。@Tanaike我试着做类似的事情。从第一列到最后一列的空白行。谢谢您的回复。我张贴了我的答案。请确认。为什么不在每一行上循环,如果你看到一些数据,你就添加这一行。我可以问一下你想要的输出吗?您希望在列a处有值的每一行之前插入一个空行。例如,当存在值[[“value1”]、[“value2”]、[”
function Insert() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var values = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues();
var sheetId = sheet.getSheetId();
var offset = 1; // For header
var requests = [];
for (var i = values.length - 1; i > offset + 1; i--) {
if (values[i][0]) {
requests.push({
"insertRange": {
"shiftDimension": "ROWS",
"range": {
"sheetId": sheetId,
"startRowIndex": i,
"endRowIndex": i + 1
}
}
});
requests.push({ // Give color to new blank row.
"repeatCell": {
"cell": {
"userEnteredFormat": {
"backgroundColor": {
"red": 1,
"green": 1,
"blue": 1,
}
}
},
"range": {
"sheetId": sheetId,
"startRowIndex": i,
"endRowIndex": i + 1
},
"fields": "*"
}
});
}
};
Sheets.Spreadsheets.batchUpdate({"requests": requests}, spreadsheet.getId());
}