如何使用Epplus用锁定的单元格删除行



我已经在epplus core中创建了一个import/gortex excel,我处理了insert/update/delete。

因此,对于我的excel中的每个对象,如果它具有ID,则将进行更新,如果不将其插入,并且Excel中的ID在数据库中而不是Excel中,则我删除数据库中的行。

但是,我在工作表上使用了一个保护,因为我隐藏了一些列,并且我不希望用户看到它们(例如ID列)。因此用户无法调整隐藏的列大小。

因此,用户必须连续右键单击一个选择"删除行"才能删除行。但是我有一个错误,因为Excel不想使用"锁定"单元格删除一行。

我该如何处理?

您可以通过在表中插入宏来实现这一点:

在这里回答

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address Like "$" & Target.Row & ":$" & Target.Row Then
ActiveSheet.Unprotect
Else
ActiveSheet.Protect
End If
End Sub

执行文件上的任何操作后使用Epplus,只需添加以下内容:

string code = "Private Sub Worksheet_SelectionChange(ByVal 
Target As Range)n" +
"If Target.Address Like "$" & Target.Row & ":$" & Target.Row Thenn" +
"ActiveSheet.Unprotectn" +
"Elsen" +
"ActiveSheet.Protectn" +
"End Ifn" +
"End Subn" ;
package.Workbook.CreateVBAProject();
worksheet.CodeModule.Code = code;

上面的代码将保护您的工作表,并且仍然允许用户删除行。

最新更新