(本文档仅供参考)
由于电子表格删除行的功能,只能是基于主键单元格去进行删除,在其他非主键单元格右键删除行是无法找到对应的记录的,
而在有的情况下,希望可以点击其他的单元格可以实现删除一整行数据,那么这个时候可以通过以下宏代码来实现。
注意:
1、该代码不能与点击任一单元格添加数据的宏(电子表格回写点击任一单元格插入整行)放在一起,需要分别创建2个宏,否则可能会出现数据无法正常删除的问题。
2、该代码实现的删除宏使用时,是通过单元格的右键菜单命令执行的。
3、添加行的宏和删除行的宏不能兼容,需要根据实际应用场景进行调整。
宏类型
宏类型 | 对象 | 事件 |
ClientSide | spreadsheetReport | onRenderReport |
function main(spreadsheetReport) { //debugger; var spreadsheetReportWriteBack = spreadsheetReport.spreadsheetReportWriteBack; spreadsheetReportWriteBack.doInsertRowClick_old = spreadsheetReportWriteBack.doInsertRowClick; spreadsheetReportWriteBack.doInsertRowClick = function(e) { var currentEditingPosition = this.currentEditingPosition; var idx = currentEditingPosition.indexOf(':') + 1; this.currentEditingPosition = currentEditingPosition.substring(0, idx) + 1; //这个1是表示第二列的意思,从0开始计数 //若报表中第一个字段放置在C列,则应该+2,若第一个字段放置在D列,则应该+3 spreadsheetReportWriteBack.doInsertRowClick_old(e); } //debugger; spreadsheetReportWriteBack.doRemoveRowClick_old = spreadsheetReportWriteBack.doRemoveRowClick; spreadsheetReportWriteBack.doRemoveRowClick = function(e) { var currentEditingPosition = this.currentEditingPosition; var idx = currentEditingPosition.indexOf(':') + 1; this.currentEditingPosition = currentEditingPosition.substring(0, idx) + 1; //这个1是表示第二列的意思,从0开始计数 //若报表中第一个字段放置在C列,则应该+2,若第一个字段放置在D列,则应该+3 spreadsheetReportWriteBack.doRemoveRowClick_old(e); } } |