我将如何获得每一个空白行? [英] How would I get every blank row?
问题描述
我尝试获取并删除电子表格中的每个空行。如果一个包含值的行包含一个空白单元格,我也想删除该行。
我不想只删除行例如,
<$ c最后一个值,我想删除每一个空白行。
$ c> -1 2 3 4 5
-1 2 3 4 5
- <删除行
-1 2 3 4 5
- <<删除行
- <<删除行
-1 2 3 4 5
-1 2 4 5<<删除行 - 单元格为空
- <<删除行
.getDataRange
为了获得空白行,那么我将如何去获取for循环中的所有行?
编辑
var artistFile = SpreadsheetApp.openById(fileId); //打开艺术家电子表格
var artistFileRows = artistFile.getActiveSheet()。getMaxRows(); //获取电子表格中的行数 - 1 =无值(表格中只有标题),2+ =值(标题+值在表格中)
Logger.log(artistFileRows) ;
var startRange =A1;
var endRange =F+ artistFileRows;
var totalRange = startRange +:+ endRange;
Logger.log(totalRange);
var allValues = artistFile.getRange(totalRange).getValues(); $ a
(var a = 0; a< allValues.length; a ++)
{
Logger.log(row+ parseInt(a + 1)+: + allValues [a]);
if(allValues [a] ==='')
{
Logger.log(true);
}
else
{
Logger.log(false);
var artistFile = SpreadsheetApp.openById(fileId); //打开艺术家电子表格
var artistFileRows = artistFile.getActiveSheet()。getMaxRows(); //获取电子表格中的行数 - 1 =无值(表格中只有标题),2+ =值(标题+值在表格中)
Logger.log(artistFileRows) ;
var startRange =A1;
var endRange =F+ artistFileRows;
var totalRange = startRange +:+ endRange;
Logger.log(totalRange);
var allValues = artistFile.getRange(totalRange).getValues(); $ a
b
$(b
$ b $ :+ allValues [a]);
for(//遍历行中的每个值)
{
Logger.log(//行中的每个值);
$ / code $ / pre
$ hr
代码:
for(var a = 0; a< allValues.length; a ++)
{
//Logger.log(\"row+ parseInt(a + 1)+:+ allValues [a]);
for(var b = 0; b {
Logger.log(allValues [a] [b]);
if(allValues [a] [b] ==='')
{
Logger.log(true);
//artistFile.deleteRow(a);
}
}
}
执行记录:
[16-10-13 19:24:54:885 EDT] 10.0
[16-10-13 19:24 :54:885 EDT] A1:F10
[16-10-13 19:24:54:917 EDT]日期
[16-10-13 19:24:54:918 EDT] h1
[16-10-13 19:24:54:918 EDT] h2
[16-10-13 19:24:54:919 EDT] h3
[16-10-13 19 :24:54:919 EDT] h4
[16-10-13 19:24:54:920 EDT] h5
[16-10-13 19:24:54:921 EDT] d2
[16-10-13 19:24:54:921 EDT] td2
[16-10-13 19:24:54:922 EDT] ca2
[16-10-13 19 :24:54:922 EDT] cr2
[16-10-13 19:24:54:923 EDT] t2
[16-10-13 19:24:54:923 EDT] ns2
[16-10-13 19:24:54:924 EDT] d3
[16-10-13 19:24:54:924 EDT] td3
[16-10-13 19 :24:54:924 EDT] ca3
[16-10-13 19:24:54:925 EDT] cr3
[16-10-13 19:24:54:925 EDT] t3
[16-10-13 19:24:54:926 EDT] ns3
[16-10-13 19:24:54:926 EDT]
[16-10-13 19: 24:54:926 EDT] true
[16-10-13 19:24:54:927 EDT]
[16-10-13 19:24:54:927 EDT] true
[16-10-13 19:24:54:927 EDT]
[16-10-13 19:24:54:928 EDT] true
[16-10-13 19:24:54:928 EDT]
[16-10-13 19:24:54:929 EDT] true
[16-10-13 19:24:54:929 EDT]
[16-10-13 19:24 :54:929 EDT] true
[16-10-13 19:24:54:930 EDT]
[16-10-13 19:24:54:930 EDT] true
[16-10-13 19:24:54:930 EDT]
[16-10-13 19:24:54:931 EDT] true
[16-10-13 19:24:54 :931 EDT]
[16-10-13 19:24:54:932 EDT]真
[16-10-13 19:24:54:9 EDT]
[16- 10-13 19:24:54:932 EDT] true
[16-10-13 19:24:54:933 EDT]
[16-10-13 19:24:54:933 EDT ] true
[16-10-13 19:24:54:933 EDT]
[16-10-13 19:24:54:934 EDT] true
[16-10- 13 19:24:54:934 EDT]
[16-10-13 19:24:54:934 EDT] true
[16-10-13 19:24:54:935 EDT] d4
[16-10-13 19:24:54:935 EDT] td4
[16-10-13 19:24:54:936 EDT] ca4
[16-10-13 19:24:54:936 EDT] cr4
[16-10-13 19:24:54:936 EDT] t4
[16-10-13 19:24:54:937 EDT] ns4
[16-10-13 19:24:54:937 EDT] test1
[16-10-13 19:24:54:938 EDT] tes test1
[16-10-13 19:24:54:938 EDT] test1
[16-10-13 19:24:54:938 EDT] test1
[16-10- 13:19:24:54:939 EDT] test1
[16-10-13 19:24:54:939 EDT] test1
[16-10-13 19:24:54:940 EDT]
[16-10-13 19:24:54:940 EDT] true
[16-10-13 19:24:54:940 EDT]
[16-10-13 19 :24:54:941 EDT] true
[16-10-13 19:24:54:941 EDT]
[16-10-13 19:24:54:941 EDT] true
[16-10-13 19:24:54:942 EDT]
[16-10-13 19:24:54:942 EDT] true
[16-10-13 19:24 :54:943 EDT]
[16-10-13 19:24:54:943 EDT]真
[16-10-13 19:24:54:94 EDT]
[ 16-10-13 19:24:54:944 EDT] true
[16-10-13 19:24:54:944 EDT] test2
[16-10-13 19:24:54 :945 EDT] test2
[16-10-13 19:24:54:945 EDT] test2
[16-10-13 19:24:54:945 EDT] test2
[ 16-10-13 19:24:54:946 EDT] test2
[16-10-13 19:24:54:946 EDT] test2
[16-10-13 19:24:54 :946 EDT]
[16-10-13 19:24:54:947 EDT]真
[16-10-13 19:24:54:94 EDT]
[16- 10-13 19:24:54:948 EDT] true
[16-10-13 19:24:54:948 EDT ]
[16-10-13 19:24:54:948 EDT] true
[16-10-13 19:24:54:949 EDT]
[16-10-13 19:24:54:949 EDT] true
[16-10-13 19:24:54:949 EDT]
[16-10-13 19:24:54:950 EDT] true
[16-10-13 19:24:54:950 EDT]
[16-10-13 19:24:54:951 EDT] true
解决方案或者从最后一行开始,向后迭代或者从第一行开始,每次将迭代器递减1删除。
var startRange =A1;
var endRange =F+ artistFileRows;
var totalRange = startRange +:+ endRange;
var allValues = artistFile.getRange(totalRange).getValues(); (var a = 0; a< artistFileRows; a ++)
{
for(var n = 0; n< allValues [a] .length; n ++)
{
if(allValues [a] [n] ==='')
{
artistFile.getActiveSheet()。deleteRow(a + 1);
a--;
休息;
}
}
}
I'm trying to get and then delete every blank row in a spreadsheet. If a row with values contains a blank cell, I want to delete that row too.
I don't want to delete just the rows that are past the row with the last values, I want to delete every blank row.
For example,
-1 2 3 4 5
-1 2 3 4 5
- << delete row
-1 2 3 4 5
- << delete row
- << delete row
-1 2 3 4 5
-1 2 4 5 << delete row -- cell is blank
- << delete row
.getDataRange
doesn't seem to get the blank rows, so how would I go about getting all the rows in a for loop?
edit
var artistFile = SpreadsheetApp.openById(fileId); //open artists spreadsheet
var artistFileRows = artistFile.getActiveSheet().getMaxRows(); //get number of rows in spreadsheet -- 1 = no values (only headers are in the sheet), 2+ = values (headers + values are in the sheet)
Logger.log(artistFileRows);
var startRange = "A1";
var endRange = "F" + artistFileRows;
var totalRange = startRange + ":" + endRange;
Logger.log(totalRange);
var allValues = artistFile.getRange(totalRange).getValues();
for (var a = 0; a < allValues.length; a++)
{
Logger.log("row " + parseInt(a + 1) + ": " + allValues[a]);
if (allValues[a] === '')
{
Logger.log("true");
}
else
{
Logger.log("false");
}
}
var artistFile = SpreadsheetApp.openById(fileId); //open artists spreadsheet
var artistFileRows = artistFile.getActiveSheet().getMaxRows(); //get number of rows in spreadsheet -- 1 = no values (only headers are in the sheet), 2+ = values (headers + values are in the sheet)
Logger.log(artistFileRows);
var startRange = "A1";
var endRange = "F" + artistFileRows;
var totalRange = startRange + ":" + endRange;
Logger.log(totalRange);
var allValues = artistFile.getRange(totalRange).getValues();
for (var a = 0; a < allValues.length; a++)
{
//Logger.log("row " + parseInt(a + 1) + ": " + allValues[a]);
for (//iterate through each value in the row)
{
Logger.log(//each value in the row);
}
}
code:
for (var a = 0; a < allValues.length; a++)
{
//Logger.log("row " + parseInt(a + 1) + ": " + allValues[a]);
for (var b = 0; b < allValues[a].length; b++)
{
Logger.log(allValues[a][b]);
if (allValues[a][b] === '')
{
Logger.log("true");
//artistFile.deleteRow(a);
}
}
}
execution transcript:
[16-10-13 19:24:54:885 EDT] 10.0
[16-10-13 19:24:54:885 EDT] A1:F10
[16-10-13 19:24:54:917 EDT] Date
[16-10-13 19:24:54:918 EDT] h1
[16-10-13 19:24:54:918 EDT] h2
[16-10-13 19:24:54:919 EDT] h3
[16-10-13 19:24:54:919 EDT] h4
[16-10-13 19:24:54:920 EDT] h5
[16-10-13 19:24:54:921 EDT] d2
[16-10-13 19:24:54:921 EDT] td2
[16-10-13 19:24:54:922 EDT] ca2
[16-10-13 19:24:54:922 EDT] cr2
[16-10-13 19:24:54:923 EDT] t2
[16-10-13 19:24:54:923 EDT] ns2
[16-10-13 19:24:54:924 EDT] d3
[16-10-13 19:24:54:924 EDT] td3
[16-10-13 19:24:54:924 EDT] ca3
[16-10-13 19:24:54:925 EDT] cr3
[16-10-13 19:24:54:925 EDT] t3
[16-10-13 19:24:54:926 EDT] ns3
[16-10-13 19:24:54:926 EDT]
[16-10-13 19:24:54:926 EDT] true
[16-10-13 19:24:54:927 EDT]
[16-10-13 19:24:54:927 EDT] true
[16-10-13 19:24:54:927 EDT]
[16-10-13 19:24:54:928 EDT] true
[16-10-13 19:24:54:928 EDT]
[16-10-13 19:24:54:929 EDT] true
[16-10-13 19:24:54:929 EDT]
[16-10-13 19:24:54:929 EDT] true
[16-10-13 19:24:54:930 EDT]
[16-10-13 19:24:54:930 EDT] true
[16-10-13 19:24:54:930 EDT]
[16-10-13 19:24:54:931 EDT] true
[16-10-13 19:24:54:931 EDT]
[16-10-13 19:24:54:932 EDT] true
[16-10-13 19:24:54:932 EDT]
[16-10-13 19:24:54:932 EDT] true
[16-10-13 19:24:54:933 EDT]
[16-10-13 19:24:54:933 EDT] true
[16-10-13 19:24:54:933 EDT]
[16-10-13 19:24:54:934 EDT] true
[16-10-13 19:24:54:934 EDT]
[16-10-13 19:24:54:934 EDT] true
[16-10-13 19:24:54:935 EDT] d4
[16-10-13 19:24:54:935 EDT] td4
[16-10-13 19:24:54:936 EDT] ca4
[16-10-13 19:24:54:936 EDT] cr4
[16-10-13 19:24:54:936 EDT] t4
[16-10-13 19:24:54:937 EDT] ns4
[16-10-13 19:24:54:937 EDT] test1
[16-10-13 19:24:54:938 EDT] test1
[16-10-13 19:24:54:938 EDT] test1
[16-10-13 19:24:54:938 EDT] test1
[16-10-13 19:24:54:939 EDT] test1
[16-10-13 19:24:54:939 EDT] test1
[16-10-13 19:24:54:940 EDT]
[16-10-13 19:24:54:940 EDT] true
[16-10-13 19:24:54:940 EDT]
[16-10-13 19:24:54:941 EDT] true
[16-10-13 19:24:54:941 EDT]
[16-10-13 19:24:54:941 EDT] true
[16-10-13 19:24:54:942 EDT]
[16-10-13 19:24:54:942 EDT] true
[16-10-13 19:24:54:943 EDT]
[16-10-13 19:24:54:943 EDT] true
[16-10-13 19:24:54:943 EDT]
[16-10-13 19:24:54:944 EDT] true
[16-10-13 19:24:54:944 EDT] test2
[16-10-13 19:24:54:945 EDT] test2
[16-10-13 19:24:54:945 EDT] test2
[16-10-13 19:24:54:945 EDT] test2
[16-10-13 19:24:54:946 EDT] test2
[16-10-13 19:24:54:946 EDT] test2
[16-10-13 19:24:54:946 EDT]
[16-10-13 19:24:54:947 EDT] true
[16-10-13 19:24:54:947 EDT]
[16-10-13 19:24:54:948 EDT] true
[16-10-13 19:24:54:948 EDT]
[16-10-13 19:24:54:948 EDT] true
[16-10-13 19:24:54:949 EDT]
[16-10-13 19:24:54:949 EDT] true
[16-10-13 19:24:54:949 EDT]
[16-10-13 19:24:54:950 EDT] true
[16-10-13 19:24:54:950 EDT]
[16-10-13 19:24:54:951 EDT] true
解决方案 Either start with the last row and iterate backwards or start with the first row and decrement your iterator by 1 everytime a delete is performed.
var startRange = "A1";
var endRange = "F" + artistFileRows;
var totalRange = startRange + ":" + endRange;
var allValues = artistFile.getRange(totalRange).getValues();
for (var a = 0; a < artistFileRows; a++)
{
for (var n = 0; n < allValues[a].length; n++)
{
if(allValues[a][n] === '')
{
artistFile.getActiveSheet().deleteRow(a+1);
a--;
break;
}
}
}
这篇关于我将如何获得每一个空白行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!