C# 如何使用EPPLUS删除带有锁定单元格的行
我已使用epplus Core在ASP Core 1.0中创建了导入/导出Excel,并处理了插入/更新/删除 因此,对于excel中的每个对象,如果它有id,那么它将被更新,如果没有,那么它将被插入,如果excel中的id在数据库中而不是excel中,我将删除数据库中的行 但是,我在我的工作表上使用了一个保护,因为我隐藏了一些列,我不想让用户看到它们(比如id列)。因此用户无法调整隐藏列的大小 因此,用户必须右键单击一行,然后选择“删除行”以删除一行。但我有一个错误,因为Excel不想删除包含“锁定”单元格的行C# 如何使用EPPLUS删除带有锁定单元格的行,c#,epplus,C#,Epplus,我已使用epplus Core在ASP Core 1.0中创建了导入/导出Excel,并处理了插入/更新/删除 因此,对于excel中的每个对象,如果它有id,那么它将被更新,如果没有,那么它将被插入,如果excel中的id在数据库中而不是excel中,我将删除数据库中的行 但是,我在我的工作表上使用了一个保护,因为我隐藏了一些列,我不想让用户看到它们(比如id列)。因此用户无法调整隐藏列的大小 因此,用户必须右键单击一行,然后选择“删除行”以删除一行。但我有一个错误,因为Excel不想删除包含
如何处理此问题?您可以通过在工作表中插入宏来实现: 如回答 在对文件执行任何操作后使用Epplus,只需添加以下内容:
string code = "Private Sub Worksheet_SelectionChange(ByVal
Target As Range)\n" +
"If Target.Address Like \"$\" & Target.Row & \":$\" & Target.Row Then\n" +
"ActiveSheet.Unprotect\n" +
"Else\n" +
"ActiveSheet.Protect\n" +
"End If\n" +
"End Sub\n" ;
package.Workbook.CreateVBAProject();
worksheet.CodeModule.Code = code;
上面的代码将保护您的工作表,并且仍然允许用户删除行
string code = "Private Sub Worksheet_SelectionChange(ByVal
Target As Range)\n" +
"If Target.Address Like \"$\" & Target.Row & \":$\" & Target.Row Then\n" +
"ActiveSheet.Unprotect\n" +
"Else\n" +
"ActiveSheet.Protect\n" +
"End If\n" +
"End Sub\n" ;
package.Workbook.CreateVBAProject();
worksheet.CodeModule.Code = code;