我正在尝试使用c#打开一个excel文件,但是visual studio正在提供这个OLEDB异常:“无法解密文件。”打开非prtected 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
非常感谢任何帮助。
答案 0 :(得分:3)
您可以使用像OoXmlCrypto这样的OpenSource库来解密受密码保护的文件,否则您仍然可以使用支持密码的Microsoft Interop官方库:
using Microsoft.Office.Interop.Excel
WorkbookObject.Password = password;
如果是最简单的方法,可以将password属性添加到OLeDb提供程序的连接字符串中:
string conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + s + ";Password=password;Extended Properties='Excel 8.0;HDR=YES'";