无法加载文件或程序集'Microsoft.Office.Interop.Excel,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c'

时间:2017-09-06 09:07:19

标签: c# asp.net dll office-interop excel-interop

这不是重复阅读完整问题

我有控制台应用程序。

这里我想将数据集值导出为ex​​cel

为此我将使用此 我使用过microsoft.office.interop.excel.dll

并使用此命名空间

使用Excel = Microsoft.Office.Interop.Excel;

这是我的Excel出口代码

 private static bool ExportDataTableToExcel(DataTable dt, string filepath)
    {

        Excel.Application oXL;
        Excel.Workbook oWB;
        Excel.Worksheet oSheet;
        Excel.Range oRange;

        try
        {      
            oXL = new Excel.Application();
            oXL.Visible = true;
            oXL.DisplayAlerts = false;

            oWB = oXL.Workbooks.Add(Missing.Value);

            oSheet = (Excel.Worksheet)oWB.ActiveSheet;
            oSheet.Name = "Data";

            int rowCount = 1;
            foreach (DataRow dr in dt.Rows)
            {
                rowCount += 1;
                for (int i = 1; i < dt.Columns.Count + 1; i++)
                {
                    // Add the header the first time through 
                    if (rowCount == 2)
                    {
                        oSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
                    }
                    oSheet.Cells[rowCount, i] = dr[i - 1].ToString();
                }
            }


            oRange = oSheet.get_Range(oSheet.Cells[1, 1],
                          oSheet.Cells[rowCount, dt.Columns.Count]);
            oRange.EntireColumn.AutoFit();

            oSheet = null;
            oRange = null;
            oWB.SaveAs(filepath, Excel.XlFileFormat.xlWorkbookNormal,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Excel.XlSaveAsAccessMode.xlExclusive,
                Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value);
            oWB.Close(Missing.Value, Missing.Value, Missing.Value);
            oWB = null;
            oXL.Quit();
        }
        catch
        {
            throw;
        }
        finally
        {

            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }

        return true;
    }

当我运行我的代码时,我收到错误

无法加载文件或程序集'office,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c'或其中一个依赖项。系统找不到指定的文件。

我没有在我的电脑上安装ms office。

我以为我没有在我的电脑上安装MSOffice,所以只有我收到错误。

如果这不是错误我在代码中犯了错误,任何人都可以告诉我

1 个答案:

答案 0 :(得分:1)

Excel互操作正在您的计算机上创建一个Excel实例 - 所以您需要安装它才能使用它。此外,您必须安装正确版本的Excel 。要支持比X更新的Excel版本,请使用针对excel interop版本X的后期绑定。