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;
}
电子表格如下: