0
我想在電子表格中插入一個刪除行的可刪除單元格。 詳情: 我有一個表格。此表單填充電子表格,此電子表格位於Google網站上。 現在,我需要在每一行中添加一個「刪除」鏈接,以便當用戶在Google網站中單擊該行時,該行被刪除。Appscript單擊「刪除鏈接」後刪除電子表格行
感謝
我想在電子表格中插入一個刪除行的可刪除單元格。 詳情: 我有一個表格。此表單填充電子表格,此電子表格位於Google網站上。 現在,我需要在每一行中添加一個「刪除」鏈接,以便當用戶在Google網站中單擊該行時,該行被刪除。Appscript單擊「刪除鏈接」後刪除電子表格行
感謝
當您發佈電子表格的網頁,它失去其所有的電子表格的具體特性和功能,你不能做任何事情,除了查看其內容。
爲了得到你想要的東西,你應該把電子表格轉換成一個html表格,並在每一行中插入一個可點擊的按鈕,這將調用一個會刪除該行的處理程序。
這可以通過UiApp或HTML服務完成,根據工作表的複雜程度,可以很簡單或相當複雜。
下面是「電子表格到webapp轉換」的基本實現,每行上有一個按鈕允許行隱藏。它不會更新工作表本身,但可以很容易地將其添加到處理函數中。
function doGet() {
var app = UiApp.createApplication().setTitle('ss to Ui');
var data = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1x8buwrYsb8-HSUJ7w7MeqZAiJJIX0yC-oITBAtykBAM/edit#gid=0').getSheets()[0].getDataRange().getValues();
var grid = app.createGrid(data.length, data[0].length+1).setBorderWidth(1).setId('grid');
var hidden = app.createHidden('hidden',data[0].length);
var handler = app.createServerHandler('deleteRow').addCallbackElement(grid).addCallbackElement(hidden);
for(var n in data){
for(var i in data[0]){
grid.setText(Number(n),Number(i),data[n][i].toString());
}
var button = app.createButton('x',handler).setId(n);
grid.setWidget(Number(n),Number(i)+1,button);
}
var hidden = app.createHidden('hidden',data[0].length);
app.add(grid).add(hidden);
return app;
}
function deleteRow(e){
var app = UiApp.getActiveApplication();
var row = Number(e.parameter.source);
var grid = app.getElementById('grid');
var dataW = Number(e.parameter.hidden);
for(var n = 0;n<dataW;n++){grid.setText(row,n,'')};
app.getElementById(row.toString()).setVisible(false);
return app;
}
電子表格如下: