excel - 互操作 Excel 方法 LinEst 因 DISP_E_TYPEMISMATCH 失败

标签 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。

最佳答案

将列表 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);

关于excel - 互操作 Excel 方法 LinEst 因 DISP_E_TYPEMISMATCH 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703623/

相关文章:

java - python中处理excel文件的最佳库是什么?

excel - 识别基于文本的单元格中的无效字符

.net - 如何在 IIS 上托管我的 ASP.NET 核心站点(在开发环境中,无需部署/发布)

c# - 如何将固定电话通话记录保存到数据库

c# - 如何允许手动和编程方式修改Excel数据?

c# - 保存重新计算的 Excel 文件

Excel CountIfs 与日期或条件

excel - 从 IE 的下拉列表中选择一个项目

c# - C#同步TCP客户端套接字无法解释的丢失数据

c# - 在Excel中获取删除的范围