2011-06-01 73 views
2

是否可以在c#中跳过受密码保护的Excel文件?如何在c#中处理大量excel工作簿时跳过一些密码保护的excel文件

我不知道这些文件的密码,并且因为所有这些文件都应该自动处理,所以程序需要能够跳过所有要求密码的文件,因为提示要求用户输入密码会中断程序。

这是我打开的Excel文件的代码:

Excel.Workbook workbook = app.Workbooks.Open(fullFileName, ReadOnly: false, Password: ""); 

回答

0

你可以使用EPPlus,用它它的relativly容易,唯一的问题是要知道的是异常升高,因为保护或别的东西,这里是代码:

public bool IsXlsxPasswordProtected(string fileName) 
{ 
    bool encrypted = false; 
    FileStream fs = new FileStream(fileName, FileMode.Open); 
    ExcelPackage pack = new ExcelPackage(); 
    try 
    { 
    pack.Load(fs); 
    } 
    catch (Exception ex) 
    { 
    /// maybe there is better way to know if exception is because file is protected 
    /// with password, idealy EPP should raise dedicated exception type 
    /// e.g. PasswordProtectedException 
    if (ex.InnerException != null && ex.InnerException is FileFormatException) 
     encrypted = true; 
    else 
     throw; 
    } 
    return encrypted; 
} 
相关问题