4

現在のコードの場合:

 String currentPath = Directory.GetCurrentDirectory();

        OpenFileDialog op = new OpenFileDialog();
        op.InitialDirectory = currentPath;
        if (op.ShowDialog() == DialogResult.OK)
            currentPath = op.FileName;
        else
        {
            toolStripStatusLabel1.Text = "Failed to Load Workbook";
            toolStripStatusLabel1.Visible = true;
        }

        Workbook wb = new Workbook(excel.Workbooks.Open(currentPath));

エラーが表示されます:

System.Runtime.InteropServices.COMException が処理されませんでしたメッセージ = CLSID {00020819-0000-0000-C000-000000000046} を持つコンポーネントの COM クラス ファクトリの取得に失敗しました。 )))。ソース = mscorlib エラー コード =-2147221164

必要なのは、ワークシートを追加する定義済みのワークブックだけです

4

3 に答える 3

13

あなたのコードでは、Workbook のフルネームは Microsoft.Office.Interop.Excel.Workbook であり、Excel は Microsoft.Office.Interop.Excel.Application のインスタンスであると思います。

この場合、ワークブックはインターフェイスであり、インターフェイスにはコンストラクターがないため、コードは機能しません。Excel アプリケーションにワークブックを作成するように依頼する必要があります。あなたの場合は、次のように書くだけです。

Workbook wb = excel.Workbooks.Open(currentPath); 

同様に、新しい空のワークブックを作成する場合は、次のように記述します。

Workbook wb = excel.Workbooks.Add(System.Reflection.Missing.Value);
于 2012-06-05T14:13:08.640 に答える
2

あなたのエラーについてはわかりませんが、次のようなことをしました:

 _app = new Excel.Application();
Excel.Workbook wb = _app.Workbooks.Open(currentPath);
于 2012-06-05T12:06:04.230 に答える
1

ソリューションを右クリックし、プラットフォームを x86 に変更します。ソリューションを再構築します...頑張ってください!

于 2014-10-20T02:23:35.157 に答える