3

我在制作 Excel 的 LineEST 函数时遇到了问题。

我的程序就像

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。

4

1 回答 1

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);
于 2010-04-24T07:48:02.653 回答