C# 无法创建Excel.Application的对象
在我的C#应用程序中,我将数据导入并导出到excel。我有2013年的办公室 我正在使用以下代码: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=
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()