Interop Excel方法LinEst失败,DISP_E_TYPEMISMATCH

时间:2010-04-24 07:34:25

标签: excel c#-3.0 excel-interop

我在制作Excel的LinEST功能时遇到了问题。

我的程序就像

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

名称空间为using MyExcel = Microsoft.Office.Interop.Excel;

程序正在顺利编译,但在运行时它会抛出错误

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

实际上这是我第一次使用Excel功能..所以我无法继续进行。如果有人遇到这种情况已经解决了,请帮助我。

我正在使用C#3.0。

1 个答案:

答案 0 :(得分:2)

将列表x和y转换为数组:

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