无法创buildExcel.Application的对象

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

我正在使用以下代码:

using Excel = Microsoft.Office.Interop.Excel; Excel.Application _excelApp = null; _excelApp = new Excel.Application(); 

此代码工作正常,但最近我安装了微软项目专业2013年,它也更新办公室。 在这之后,我在_excelApp = new Excel.Application();

错误是:

无法将“System .__ ComObject”types的COM对象转换为接口types“Microsoft.Office.Interop.Excel.Application”。 此操作失败,因为IID为“{000208D5-0000-0000-C000-000000000046}”的接口的COM组件上的QueryInterface调用失败,原因是以下错误:加载types库/ DLL时出错。 (来自HRESULT的exception:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。

@Deepak gupta,我不能评论,所以我张贴在这里。 也许Soner是对的。 我曾经有同样的问题,所以我决定用旧的方式来打开一个Excel文件(与oledb命令)。

你需要什么? 读一个Excel或保存一个新的?

例如在我的情况下,我需要阅读一个Excel(即和.xls或.xlsx):

  //Check whether file extension is xls or xslx if (fileExtension == ".xls") connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; else if (fileExtension == ".xlsx") connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; //Create OleDB Connection and OleDb Command OleDbCommand cmd = new OleDbCommand(); OleDbConnection con = new OleDbConnection(connectionString); cmd.CommandType = System.Data.CommandType.Text; cmd.Connection = con; OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); con.Open(); DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString(); //send query, send query, fill adapter: cmd.CommandText = "SELECT * FROM [" + getExcelSheetName + "A1:GR255] WHERE [0] IS NOT NULL "; dAdapter.SelectCommand = cmd; dAdapter.Fill(dtExcelRecords); con.Close(); 

或者,也许你可以尝试使用本文中描述的这个库ExcelLibrary 从C#创buildExcel(.XLS和.XLSX)文件 。

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

Dim CopyFrom As Object Dim CopyTo As Object Dim CopyThis As Object Dim xl As Object

  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() 

这个问题已经解决。 当我安装微软项目专业2013年,它也更新微软办公室,但办公室的升级不成功。

当我修理办公室时,它开始工作正常。