He encontrado un problema al desarrollar en MS Visual Web Developer 2008 Express Ed. Desarrollo de ASP.NET C# en Windows7 SO de 64 bits.Microsoft.Office.Interop.Excel no funciona en 64 bit
estoy tratando de abrir un documento de Excel, pero me da Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
Yo configuré la acumulación de todos los procesadores (CPU Cualquier, x64, x86), pero no funciona. Busqué la respuesta en Internet pero no pude encontrar la forma de manejarla.
Lo extraño es que el mismo código funcionó en el mismo sistema cuando lo desarrollé en Microsoft Visual C# 2010 Express. ¿Cómo? ¿No es el mismo dll trabajando detrás?
¿Debo cambiar ese dll COM para que funcione en el sistema x64?
Por favor, ayúdenme, ¿qué puedo hacer?
Mi código es:
using Excel = Microsoft.Office.Interop.Excel;
xlApp = new Excel.Application();
__Log("Openning " + excelFileName);
xlWorkBook = xlApp.Workbooks.Open(excelFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
no estoy completamente seguro de que este willl a resolver su problema, pero si usted tiene un archivo DLL COM de 32 bits, es probable que tenga que utilizar una versión x86 de su proyecto incluso si está ejecutando Windows de 64 bits. – Andrew
Creo que tienes la idea correcta @Andrew. Si es de 32 bits Excel, 64 bit .net no querrá trabajar con él. Constrúyelo como x86 y debería funcionar. –
Ya lo intenté ... pero sucedió lo mismo, no entiendo por qué este problema no ocurre en Visual C# y solo en el desarrollador web – Bush