2012-06-26 38 views
0

我想用c#打開一個excel文件,但visual studio給這個OLEDB例外:「無法解密文件」。當打開一個非專業的excel文件時,代碼工作正常。用c打開一個excel保護的表格#

下文是我的代碼:

string conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + s + ";Extended Properties='Excel 8.0;HDR=YES'"; 
     OleDbConnection objConn = new OleDbConnection(conn); 
     objConn.Open(); 

     OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", objConn); 
     OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
     da.Fill(dt); 

我發現下面的網站,提出了VB的方法,但我無法得到它在C#中工作。 VBA excel

任何幫助將不勝感激。

回答

3

你可以使用一個開放源代碼庫像OoXmlCrypto解密密碼保護的文件,否則,你仍然可以使用支持密碼微軟互操作性官方庫:

using Microsoft.Office.Interop.Excel 

WorkbookObject.Password = password; 

否則你的情況,最簡單的方式,你可以將密碼屬性添加到您的OLeDb提供程序的連接字符串:

string conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + s + ";Password=password;Extended Properties='Excel 8.0;HDR=YES'"; 
+0

感謝您的幫助 – user1473047