0

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);

vb の回避策を提案する次の Web サイトを見つけましたが、C# で動作させることができませんでした。VBA エクセル

どんな助けでも大歓迎です。

4

1 に答える 1

3

OoXmlCryptoのような OpenSource ライブラリを使用して、パスワードで保護されたファイルを復号化できます。それ以外の場合は、 password をサポートする Microsoft Interop の公式ライブラリを引き続き使用できます。

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'";
于 2012-06-26T06:07:54.563 に答える