2016-10-13 30 views
1

我試圖獲取並刪除電子表格中的每一個空行。如果包含值的行包含空白單元格,我也想刪除該行。我將如何獲得每一個空白行?

我不想刪除過去的行與最後的值,我想刪除每一個空行。

例如,

-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似乎並沒有得到空行,所以我將如何去獲得所有行的for循環?


編輯

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); 
    } 
} 

代碼:

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); 
    } 
    } 
} 

執行transcr IPT:

[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 
+0

你最終搞清楚了嗎? –

+0

不。我有行,並且遍歷了該行中的值,但是當我試圖刪除行時,它刪除了更多非空行和空行。 – user4411473

+0

您是否嘗試將1加1以解決行1是基於而不是0的事實?檢查我的答案。 –

回答

1

要麼開始與最後一排和向後遍歷或從第一行開始,由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; 
    } 
    } 


} 
+0

如何判斷某一行包含空白單元格或整行是空白的?我可以用'.getMaxRows()'獲得每一行,包括空白行 - 它只是給了我一個數字,如10.0 – user4411473

+0

我不知道如何遍歷所有單元格......'.getDataRange'沒有給出我每一行,但'.getMaxRows()'做。當它只給出行號時,我如何迭代'.getMaxRows()'? – user4411473

+1

我在帖子中添加了迄今爲止我所做的。 if語句正在工作...這是迭代通過值並將其與「'進行比較的方式嗎? – user4411473

相關問題