用c#打开excel保护表格

我试图用c#打开一个excel文件,但visual studio给这个OLEDB例外:“无法解密文件”。 当打开一个非专业的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); 

我发现下面的网站build议vb解决方法,但我不能让它在C#中工作。 VBA excel

任何帮助将不胜感激。

您可以使用像OoXmlCrypto这样的OpenSource库来解密受密码保护的文件,否则您仍然可以使用支持密码的Microsoft Interop官方库:

 using Microsoft.Office.Interop.Excel WorkbookObject.Password = password; 

否则最简单的方法,你可以添encryption码属性到你的OLeDb提供者的连接string:

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