Search code examples
c#asp.netdlloffice-interopexcel-interop

Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'


This is not duplicate read full question

I have console application.

here I want to export data set value to excel

for that i going to use this i have used microsoft.office.interop.excel.dll

and and using this namespace

using Excel = Microsoft.Office.Interop.Excel;

this is my excel export code

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

when I run my code i am getting error

Could not load file or assembly 'office, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.

i am not installed ms office in my pc.

I thought I not installed MSOffice in my pc so that only i am getting error.

if this is not error I made error in my code can anyone tell me


Solution

  • Excel interop is creating an excel instance on your machine - so you need to have it installed to be able to use it. Moreover you have to have the correct version of Excel installed. To support Excel versions newer than X use late binding against excel interop version X.