C# 无法创建Excel.Application的对象

C# 无法创建Excel.Application的对象,c#,.net,excel,interop,C#,.net,Excel,Interop,在我的C#应用程序中,我将数据导入并导出到excel。我有2013年的办公室 我正在使用以下代码: using Excel = Microsoft.Office.Interop.Excel; Excel.Application _excelApp = null; _excelApp = new Excel.Application(); 此代码运行良好,但最近我安装了Microsoft project professional 2013,它还更新了office。在此之后,我在_excelApp=

在我的C#应用程序中,我将数据导入并导出到excel。我有2013年的办公室

我正在使用以下代码:

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application _excelApp = null;
_excelApp = new Excel.Application();
此代码运行良好,但最近我安装了Microsoft project professional 2013,它还更新了office。在此之后,我在_excelApp=new Excel.Application()中遇到错误

错误是:

无法将“System.\u ComObject”类型的COM对象强制转换为接口 键入“Microsoft.Office.Interop.Excel.Application”。这次手术 失败,因为对的COM组件的QueryInterface调用失败 与IID“{000208D5-0000-0000-C000-0000000000 46}”的接口由于以下原因失败 导致以下错误:加载类型库/DLL时出错。(例外情况 来自HRESULT:0x80029C4A(类型为E)


@迪帕克·古普塔,我不能发表评论,所以我把它贴在这里。也许索纳是对的。我以前也遇到过同样的问题,所以我决定使用旧方法打开Excel文件(使用oledb命令)

你需要什么?阅读Excel还是保存新的Excel

例如,在我的例子中,我需要阅读Excel(即and.xls或.xlsx):


或者,您可以尝试使用本文中介绍的excel库。

这是创建对象的方法,从而将工作表从一个excel复制到另一个excel

将复制从对象变暗 将复制对象设置为对象 将此复制为对象 作为对象的Dim xl

    xl = CreateObject("Excel.Application")
    xl.Visible = False
    CopyFrom = xl.Workbooks.Open("E:\EXCEL\From.xls")
    CopyTo = xl.Workbooks.Open("E:\EXCEL\To.xls")
    For i = 0 To 1
        ''To use a password: Workbooks.Open Filename:="Filename", Password:="Password"
        If i = 0 Then
            CopyThis = CopyFrom.Sheets(1)
            CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
            CopyTo.Sheets(3).Name = "Sheet3"
        Else
            CopyThis = CopyFrom.Sheets(2)
            CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
            CopyTo.Sheets(4).Name = "Sheet4"
        End If
    Next
    CopyTo.Sheets(1).Activate()
    CopyTo.Save()
    'CopyTo.SaveAs("E:\EXCEL\Check.xls")
    xl.Quit()

问题已经解决了。当我安装Microsoft project professional 2013时,它也更新了Microsoft office,但office的更新没有成功


当我修复office时,它开始正常工作。

可能需要删除现有的office互操作引用和最新版本引用。
    xl = CreateObject("Excel.Application")
    xl.Visible = False
    CopyFrom = xl.Workbooks.Open("E:\EXCEL\From.xls")
    CopyTo = xl.Workbooks.Open("E:\EXCEL\To.xls")
    For i = 0 To 1
        ''To use a password: Workbooks.Open Filename:="Filename", Password:="Password"
        If i = 0 Then
            CopyThis = CopyFrom.Sheets(1)
            CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
            CopyTo.Sheets(3).Name = "Sheet3"
        Else
            CopyThis = CopyFrom.Sheets(2)
            CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
            CopyTo.Sheets(4).Name = "Sheet4"
        End If
    Next
    CopyTo.Sheets(1).Activate()
    CopyTo.Save()
    'CopyTo.SaveAs("E:\EXCEL\Check.xls")
    xl.Quit()