Ho riscontrato un problema durante lo sviluppo su MS Visual Web Developer 2008 Express Ed. Sviluppo di ASP.NET C# su SO Windows7 64 bit.Microsoft.Office.Interop.Excel non funziona su 64 bit
sto cercando di aprire un documento di Excel, ma mi dà Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
ho configurato il build per tutti i processori (CPU Qualsiasi, x64, x86) ma non funziona. Ho cercato la risposta su internet ma non sono riuscito a scoprire come gestirlo.
La cosa strana è lo stesso codice ha lavorato sullo stesso sistema in cui ho sviluppato su Microsoft Visual C# 2010 Express! come mai? non è la stessa dll che lavora dietro?
ho bisogno di cambiare che DLL COM in modo che funzionerà sul sistema x64?
Please help me, cosa posso fare?
Il mio codice è:
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);
io non sono del tutto sicuro che questo willl a risolvere il problema, ma se si dispone di una DLL COM a 32 bit, è probabilmente necessario utilizzare una build di x86 il tuo progetto anche se stai usando Windows a 64 bit. – Andrew
Penso che tu abbia avuto l'idea giusta @Andrew. Se è a 32 bit Excel, 64bit .net non vorrà lavorare con esso. Costruirlo come x86 e dovrebbe funzionare. –
Già provato ... ma lo stesso è accaduto, non capisco perché questo problema non si verifica in Visual C# e solo nello sviluppatore Web – Bush