Javascript 我怎样才能得到每一个空行?
我试图获取并删除电子表格中的每一个空行。如果具有值的行包含空白单元格,我也要删除该行 我不想只删除超过最后一个值的行,我想删除每一个空行 比如说,Javascript 我怎样才能得到每一个空行?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我试图获取并删除电子表格中的每一个空行。如果具有值的行包含空白单元格,我也要删除该行 我不想只删除超过最后一个值的行,我想删除每一个空行 比如说, -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
-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
从最后一行开始并向后迭代,或者从第一行开始并在每次执行删除时将迭代器的值递减1
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;
}
}
}
var startRange=“A1”;
var endRange=“F”+artistFileRows;
var totalRange=startRange+“:”+endRange;
var allValues=artistFile.getRange(totalRange.getValues();
对于(var a=0;a
当一行包含空白单元格或整行为空时,我如何判断?我可以用.getMaxRows()
获得每一行,包括空白行——它只会给我一个像10.0这样的数字,我不确定如何遍历所有单元格.getDataRange
并没有给出每一行,但是.getMaxRows()
会给出。当它只给我行号时,我如何遍历.getMaxRows()
?我在文章中添加了我到目前为止所做的工作。if语句正在工作。。。这是迭代值并将其与“”进行比较的方法吗?我还没有尝试过。为什么对于有空值的单元格它不显示true
?我想这是因为我得到了整行并将其与“”进行比较。要从该行中获取每个单元格,我需要做什么?另一个for循环遍历该行以获取每个单元格,然后将其与“”进行比较?您最终是否发现了这一点?不。我有这些行,并遍历了该行中的值,但当我尝试删除该行时,它删除了更多的非空行和空行。您是否尝试将1添加到以说明行是基于1而不是基于0的事实?检查我的答案。索引a与范围变量相关,不适用于整个工作表检查我的新答案并告诉我它是否适用。
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);
}
}
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);
}
}
}
[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
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;
}
}
}