2010-04-24 5 views
2

Je suis confronté à un problème lors de la fonction LinEST d'Excel.Interop Excel méthode LinEst échec avec DISP_E_TYPEMISMATCH

Mon programme va comme

MyExcel.Application xl = new MyExcel.Application(); 
MyExcel.WorksheetFunction wsf = xl.WorksheetFunction; 
List<int> x = new List<int> { 1, 2, 3, 4 }; 
List<int> y = new List<int> { 11, 12, 45, 42 }; 
object o = wsf.LinEst(x, y, true, true); 

Et l'espace de noms est using MyExcel = Microsoft.Office.Interop.Excel;

Le programme compile sans problème, mais lors de l'exécution, il est de lancer une erreur

{System.Runtime.InteropServices.COMException (0x80020005): Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH)) 

En fait, c'est la première fois J'utilise la fonction Excel .. donc je suis incapable d'aller plus loin. Si quelqu'un a traversé ce genre de situation et a résolu, s'il vous plaît aidez-moi.

J'utilise C# 3.0.

+0

Avez-vous essayez d'utiliser '' var' au lieu de object' comme type de retour? – Oded

+0

Merci j'ai eu la réponse. Nous devons convertir en tableau comme objet o = wsf.LinEst (y.ToArray(), x.ToArray(), false, true); – Newbie

Répondre

1

Convertir les listes x et y à un tableau:

MyExcel.Application xl = new MyExcel.Application(); 
    MyExcel.WorksheetFunction wsf = xl.WorksheetFunction; 
    List<int> x = new List<int> { 1, 2, 3, 4 }; 
    List<int> y = new List<int> { 11, 12, 45, 42 }; 
    //object o = wsf.LinEst(x, y, true, true); 
    object o = wsf.LinEst(y.ToArray(), x.ToArray(), false, true); 
Questions connexes