2013-10-09 55 views
0

我已經嘗試併合並幾個腳本刪除行,但這不會重置計數器。幫助重置回覆,將不勝感激。谷歌表格腳本刪除響應計數器

我的複印紙功能,並刪除所有行功能的作品,但計數器仍然存在,顯示58響應。

我使用觸發器來設置複製和刪除功能每天進行。 (不包括「docs.google.com ......」 0AvTM4SfinH2NdGp1MHdzWms2QnpUMnFiMHJXd1dlV1E & USP片URL)這是我到目前爲止有:

function CopySheet() { 
    var sh = SpreadsheetApp.getActiveSpreadsheet(); 
    var ss = sh.getSheets()[0];// here I chose to always get the first sheet in the spreadsheet 
    var inputRange = ss.getRange(1,1,ss.getLastRow(),7); 
    var data = inputRange.getValues(); 
    var newData = []; 

    newData.push(['Timestamp','Full Name?','Email?','RAG']); 
    for(var n=1;n<data.length;++n){ // skip headers by starting at 1 
     for(var c=0;c<7;c=c+3){ 
     var row = []; 
     if(c==0){row.push(data[n][0]) ; c++}else{row.push('')}; 
     row.push(data[n][c]) 
     row.push(data[n][c+1]); 
     row.push(data[n][c+1+1]);//Keep adding a new row and +1 for each extra column 
     newData.push(row); 
     } 
    } 

    //This next bit creates a copy of the sheet. I would rather a spreadsheet copy but could only get document copy to work 
    sh.insertSheet().getRange(1,1,newData.length,newData[0].length).setValues(newData); 
    var doc = DocumentApp.create('Responses document'); // create document 
    var file = DocsList.getFileById(doc.getId()); 
    file.removeFromFolder(DocsList.getRootFolder()); 
    file.addToFolder(DocsList.getFolder("Folder 1")); 

    var table = doc.getBody().appendTable(newData); // create table in a separate process so I can set the style below 
    var style = {}; 
    style[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.CENTER; // this one has no effect 
    style[DocumentApp.Attribute.FONT_FAMILY] = DocumentApp.FontFamily.ARIAL; 
    style[DocumentApp.Attribute.FONT_SIZE] = 10; 
    style[DocumentApp.Attribute.FOREGROUND_COLOR] = '#0000ff'; 
    style[DocumentApp.Attribute.BORDER_COLOR] = '#dddddd' ; 
    table.setAttributes(style); 
} 

//This section deletes the sheet, leaving the headers; "function deleteAllResponses()" at the bottom should reset counter but does not work 
function DeleteSheet() { 
    SpreadsheetApp.flush(); 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var datarange = sheet.getDataRange(); 
    var lastrow = datarange.getLastRow(); 
    var values = datarange.getValues();// get all data in a 2D array 

    for (i=lastrow;i>=2;i--) { 
     var tempdate = values[i-1][2]; // arrays are 0 indexed so row1 = values[0] and col3 = [2], If I add more columns I need to up this number 
     { 
      sheet.deleteRow(i); 
      function deleteAllResponses() {} 
     } 
    } 
} 

回答

2

如果你指的是表上顯示的計數器響應:

enter image description here

一個選項可能是使用deleteAllResponses()(仔細閱讀文檔)從Class Form

最小實現可以是:

/* CODE FOR DEMONSTRATION PURPOSES */ 
function deleteAllResponses() { 
    var form, urlForm = SpreadsheetApp.getActiveSpreadsheet().getFormUrl(); 
    if (urlForm) { 
    form = FormApp.openByUrl(urlForm); 
    if (form) form.deleteAllResponses(); 
    } 
} 
+0

工作。謝謝! – user2847142

0

@ user2847142,@布萊恩 - tompsett,@wchiquito

新的谷歌表單,您可以從谷歌表單中刪除,即使個體反應,而不需要一個腳本。
現在有比@wchiquito給出的答案更簡單的方法。

- 這是現在可以在新的谷歌Forms--

二月2016年(第10

谷歌宣佈googleappsupdates.blogspot.com/2016/02/new-google-forms-now -default-option.html)

如何刪除所有響應:

delete ALL responses

如何刪除個體反應:

delete individual responses

要刪除單個回覆,請單擊「回覆」選項卡並選擇「個人」。您找到想要刪除的記錄,然後點擊垃圾桶圖標以刪除該單個回覆。
這也將重置計數器
但是。不會從連接到表單電子表格中刪除回覆/ s。您將不得不手動刪除那些(或使用腳本)。

+0

我認爲這裏有更多的答案。鏈接改變,所以SO更喜歡不依賴它們。 –

+0

@DaveSchweisguth我同意你的意見。鏈接是imgur上的圖像。不幸的是,我現在沒有足夠的代表讓他們被視爲圖像。我會盡快編輯我的答案。另一方面,請隨時編輯答案。 – marikamitsos

+0

哦,我把我的評論回來。我認爲這些鏈接背後有更多文字。 –

相關問題