Excel导入检查表密码

时间:2018-05-29 21:20:33

标签: c# excel epplus

我正在使用EPPlus来创建带有一些限制的excel文件(锁定,验证,......)并且我已经为工作表设置了密码:

sheet.Protection.IsProtected = true;
sheet.Protection.SetPassword("pass");

用户必须在文件中进行一些更改并导入相同的文件。

如何在导入文件时检查密码是否相同(“通过”) 使用EPPLUS?我想确保用户使用并导入相同的Excel文件。

1 个答案:

答案 0 :(得分:0)

实际上没有办法专门针对检查密码提出要求。但是,您真正的问题是如何针对用户不道德的行为进行身份验证,以确保他们使用正确的模板。有很多方法可以做到这一点。我经常对此进行辩护,特别是印度地区的用户(不是种族主义只是统计现实!)。

我可以建议一种不同的策略来创建隐藏的选项卡/名称或某些东西来验证用户是否正在使用正确的工作簿?有很多方法可以通过检查作者/隐藏范围/等来实现。

如果你有一个名为yeaMan的隐藏范围,这是一个例子。我把它放在VeryHidden的表格中,以便用户很难找到。它不是不可战胜的,但它可能会阻止95%的不道德行为。

Sub CheckIfLegit()
Dim nHunter As String, NN As Name, OkayToSubmit As Boolean
nHunter = "yeaMan"

'searches for named range (could also be a veryhidden sheet or a variety of other tools)
For Each NN In ThisWorkbook.Names
    If InStr(1, NN.Name, nHunter, vbTextCompare) > 0 Then
        OkayToSubmit = True
        Exit For
    End If

Next NN

'test if the range was found
If OkayToSubmit Then
    'OKAY TO SUBMIT! Run your submission code!
Else
    MsgBox "Listen fool, you've been up to no good and I caught your @$$! Access Denied!!!", vbCritical, Title:="Oh NO!!!"
End If

End Sub