2011-06-01 74 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; 
} 
相關問題