-2

私が言ったように、私の winform アプリケーションは VS がインストールされたコンピューターでは正常に動作しますが、他のコンピューターではFileNotFound Exception. 使った

using Application = Microsoft.Office.Interop.Excel.Application;

私のソース コードで Excel ファイルを生成するために、Excel 関連の関数が呼び出されるとすぐに問題が発生します。しかし、それが正確に何を指しているのかはわかりません。.dll.exe ファイルと一緒に含める必要がありますか? そして、それは何DLLですか?

以下は私のコードの一部です:

  private void FileExport(object objTable)
    {
        StartWaiting();
        string[,] table = null;
        try
        {
            table = (string[,])objTable;
        }
        catch (Exception ex)
        {
            ShowStatus(ex.Message, StatusType.Warning);
        }
        if (table == null)
        {
            return;
        }
        Application excelApp = new Application
        {
            DisplayAlerts = false
        };
        Workbooks workbooks = excelApp.Workbooks;
        Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
        Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
        worksheet.Name = "TABLE";
        for (int i = 0; i < table.GetLength(0); i++)
        {
            for (int j = 0; j < table.GetLength(1); j++)
            {
                worksheet.Cells[i + 1, j + 1] = table[i, j];
            }
        }
        Range range = excelApp.Range["A1", "H1"];
        range.Merge();
        range.Font.Bold = true;
        range.Font.Size = 15;
        range.RowHeight = 50;
        range.EntireRow.AutoFit();
        range = excelApp.Range["A2", "H8"];
        range.Font.Size = 11;
        range = excelApp.Range["A1", "H8"];
        range.NumberFormatLocal = "@";
        range.RowHeight = 300;
        range.ColumnWidth = 50;
        range.HorizontalAlignment = XlHAlign.xlHAlignCenter;
        range.VerticalAlignment = XlVAlign.xlVAlignCenter;
        range.EntireRow.AutoFit();
        range.EntireColumn.AutoFit();
        worksheet.UsedRange.Borders.LineStyle = 1;
        Invoke(new MainThreadInvokerDelegate(SaveAs), new object[] { worksheet, workbook, excelApp }
            );
        EndWaiting();
    }

`

4

2 に答える 2

2

あなたのプログラムはコピーを探していて、Microsoft.Office.Interop.Excel.dll見つけていないと思います。

このためには、ソリューションエクスプローラーに移動し、[すべてのファイルを表示]が選択されていることを確認してから、参照のリストを開きます。

lへの参照を選択し、Microsoft.Office.Interop.Excel.dlF4を押して[プロパティ]メニューを開きます。そこで、[ローカルのコピー]をに変更するTrueと、参照されているdllが出力ディレクトリにコピーされます。つまり、ファイルが見つかり、プログラムが機能するはずです。

于 2012-07-01T09:21:42.757 に答える
1

Microsoft.Office.Interop.Excel.dll他の人が言ったように、アプリケーション ファイルと一緒にデプロイするのを忘れている可能性があります。アプリケーションを展開するときにこれらのファイルを含めるか、これを自動的に実行できる Windows インストーラーを使用することができます。インストーラーは、プロジェクト ファイルとそのすべての依存関係をデプロイします。この件に関して、MSDNは次のように述べています。

生成された Windows インストーラー (.msi) ファイルには、アプリケーション、依存ファイル、レジストリ エントリなどのアプリケーションに関する情報、およびインストール手順が含まれています。

余談ですが、Excel が他のマシンにインストールされていることを確認する必要があります。そうしないと、アプリケーションが期待どおりに動作しません。

于 2012-07-01T09:34:20.093 に答える