使用c#打开excel受保护的工作表

时间:2012-06-26 06:02:36

标签: c# excel

我正在尝试使用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

非常感谢任何帮助。

1 个答案:

答案 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'";