-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但没有找到它。

为此,请转到解决方案资源管理器,确保选中“显示所有文件”,然后打开您的参考列表。

选择您对Microsoft.Office.Interop.Excel.dll 的引用,然后按 F4 打开“属性”菜单。在那里,将 Copy Local 更改为True,现在应该将引用的 dll 复制到您的输出目录,这意味着将找到该文件并且程序应该可以运行。

于 2012-07-01T09:21:42.757 回答
1

Microsoft.Office.Interop.Excel.dll正如其他人提到的,您可能忘记与应用程序文件一起部署。您可以在部署应用程序时包含这些文件,也可以使用可以自动为您执行此操作的 Windows 安装程序。安装程序将负责部署您的项目文件及其所有依赖项。关于这个问题, MSDN说:

生成的 Windows Installer (.msi) 文件包含应用程序、任何相关文件、有关应用程序的信息(如注册表项)和安装说明。

附带说明:您必须确保 Excel 安装在另一台机器上,否则您的应用程序将不会按照您期望的方式运行。

于 2012-07-01T09:34:20.093 回答