Microsoft.Bureau de.Interop.Excel ne fonctionne pas en 64 bits
J'ai rencontré un problème lors du développement sur MS Visual Web Developer 2008 Express Ed.
Le développement de ASP.NET C# sur Windows 7 64 bit OS.
J'essaie d'ouvrir un document Excel, mais il me donne Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
Je n'ai configuré le construire pour tous les processeurs (CPU, x64, x86) mais ça ne fonctionne pas. J'ai cherché la réponse sur internet mais je ne pouvais pas savoir comment le gérer.
La chose étrange est le même code a travaillé sur le même système quand j'ai développé sur Microsoft Visual C# 2010 Express! comment venir? n'est-il pas la même dll de travail derrière?
Ce que je dois changer que la dll COM va donc travailler sur x64 système?
S'il vous plaît aidez-moi, que puis-je faire?
Mon code est:
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);
Je pense que vous avez eu la bonne idée @Andrew. Si c'est 32 bits d'Excel, 64bit .net ne voulez plus travailler avec elle. Construire x86 et cela devrait fonctionner.
Déjà essayé.. mais la même chose s'est produite, je ne comprends pas pourquoi ce problème n'est pas apparut dans Visual C# et seulement dans les développeur Web
OriginalL'auteur Bush | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Après creusement d'internet, j'ai trouvé qu'il s'agit un bogue dans Microsoft Interopérabilité avec les objets COM (au moins à mon cas qui est MS Excel 2010).
Le bug, c'est que .NET vérifie que votre thread (C# ou VB code) de localisation est adapté à MS Excel localisation que vous avez déjà installé, et si non, il dit que le
Microsoft.Office.Interop
bibliothèque est ancienne ou non valide.Votre fil de localisation est dérivée à partir de votre ordinateur, les paramètres régionaux (panneau de configuration --> régionales et linguistiques)
Puis il y a deux options pour résoudre ce problème:
La première solution qui va comme ceci:
Espère que cela aide 🙂
gr8 jour
Le KO semble dire ce bug s'applique à VS 2005 et Excel 2007 (et versions antérieures). La description semble correspondre, mais il pourrait être un autre bug.
OriginalL'auteur Bush