实例化Excel函数(Instantiating an Excel function)

无论我在哪里查找如何在C#应用程序中使用excel函数,都要告诉我要执行以下操作:

  • 从COM选项卡添加以下using语句:using IExcel = Microsoft.Office.Interop.Excel
  • 然后声明并初始化IWorkSheetFunction对象IExcel.IWorksheetFunction iwf = new IExcel.IWorksheetFunction();
  • 现在你可以使用int result = iwf.Math.Sum(1,2)中的函数;
  • 我遇到的问题是,虽然intellisense正在检测IExcel,但它没有显示IWorksheetFunction。 但它显示了WorksheetFunction。 无论哪种方式,它都不会让我将它实例化为一个对象。 我收到错误:无法创建抽象类或接口'Microsoft.Office.Interop.Excel.WorksheetFunction'的实例

    有任何想法吗?


    Everywhere I look for how to use excel function inside of a C# application tells me to do the following:

  • From the COM TabAdd the following using statement:using IExcel = Microsoft.Office.Interop.Excel
  • Then declare and initialise a IWorkSheetFunction objectIExcel.IWorksheetFunction iwf = new IExcel.IWorksheetFunction();
  • Now you can use the functions as in int result = iwf.Math.Sum(1,2);
  • The problem im having is that while intellisense is detecting IExcel, it is not showing IWorksheetFunction. It is however showing WorksheetFunction. Either way, it is not letting me instantiate it as an object. I am getting the error: Cannot create an instance of the abstract class or interface 'Microsoft.Office.Interop.Excel.WorksheetFunction'

    any ideas?


    原文:https://stackoverflow.com/questions/3955942
    2021-06-21 22:06

    满意答案

    尝试:

    Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application();
    
    Microsoft.Office.Interop.Excel.WorksheetFunction wsf = xl.WorksheetFunction;
    int result = wsf.Percentile(obj, 0.75);
    

    基本上它归结为,而不是:

    IExcel.IWorksheetFunction iwf = 
           new IExcel.IWorksheetFunction(); // You can't instantiate an interface
    

    使用Excel.ApplicationWorksheetFunction属性:

    IExcel.IWorksheetFunction iwf = xl.WorksheetFunction;
    

    Try:

    Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application();
    
    Microsoft.Office.Interop.Excel.WorksheetFunction wsf = xl.WorksheetFunction;
    int result = wsf.Percentile(obj, 0.75);
    

    Basically it comes down to, instead of:

    IExcel.IWorksheetFunction iwf = 
           new IExcel.IWorksheetFunction(); // You can't instantiate an interface
    

    use the WorksheetFunction property in Excel.Application:

    IExcel.IWorksheetFunction iwf = xl.WorksheetFunction;
    

    相关问答

    更多

    什么是EXCEL

    Excel是微软公司出品的Office系列办公软件中的一个组件,确切地说,它是一个电子表 格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测并且具有强大的制作图表的功能;还可以制作网页.

    Excel函数返回#Value(Excel function returns #Value)

    劣质Excel for Mac比Excel for Windows多了几年,并且不支持vbscript.regexp 看到这里 The inferior Excel for Mac is years behind Excel for Windows and does not support vbscript.regexp See here

    一个函数内的Excel函数(Excel function within a function)

    尝试COUNTIFS: =COUNTIFS(B1:B5, "ON",C1:C5,"city") Try COUNTIFS: =COUNTIFS(B1:B5, "ON",C1:C5,"city")

    Excel读入Matlab函数(Excel read in a Matlab function)

    使用持久变量: function [electron density] = electrondensity(temperature) persistent data; if isempty(data) disp('calling xlsread') data=xlsread('D:\Matlabcode\partitionfunctions.xlsx',2,'A2:D5'); end 这样,第一次调用函数时,创建变量,初始化为空矩阵,并调用xlsread。 下次调用函数时,将检索...

    实例化Excel函数(Instantiating an Excel function)

    尝试: Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.WorksheetFunction wsf = xl.WorksheetFunction; int result = wsf.Percentile(obj, 0.75); 基本上它归结为,而不是: IExcel.IWorksheet...

    在excel中使用什么功能(What function to use in excel)

    您是在寻找多行或多列的数据吗? 无论哪种方式,使用单个VLOOKUP公式都无法创建整行数据的报告。 VLOOKUP公式为单个单元格生成结果。 如果您只查找属于单行的列中的数据,则可以通过创建第一个公式,然后将该单元格复制并粘贴到其余单元格中,为要报告的每个值创建公式。你想重现这些价值观。 要在其上报告值的工作表上具有列号(1-6)的附加行将允许Excel对您的公式进行适当的调整。 '$'的存在与否将阻止或允许Excel对公式中的行和列进行调整。 例如,如果要在Sheet1中创建公式,则第一行(单元...

    使用java的Excel correl()函数?(Excel correl() function with java?)

    在Excel 2003及更高版本中, CORREL和PEARSON的实现方式类似,应始终给出相同的结果 。 这意味着您可以使用Commons Math PearsonsCorrelation类来获得相同的功能。 In Excel 2003 and later, CORREL and PEARSON are implemented similarly and should always give the same results. This means you can use the Commons...

    实例化Excel对象的快捷方式?(Shortcut for instantiating an Excel object?)

    这是Excel命名空间的别名 ,但不是Excel应用程序对象的快捷方式。 例如,如果您有两个声明相同类Location名称空间,则可以使用名称空间别名来防止名称冲突 : using MyProject.Model; using Maps = Microsoft.Maps.MapControl; var location = new Location(); // MyProject.Model.Location var location2 = new Maps.Location(); // Mic...

    关于日期的Excel函数(Excel function about Date)

    尝试TEXT功能 =TEXT(A1,"dd.mm.yyyy") Try the TEXT function =TEXT(A1,"dd.mm.yyyy")

    在Excel中使用IF函数范围(Using IF Function Range in Excel)

    像E11这样的单个细胞无法与C8:C21这样的范围进行比较。 我假设您确实想要检查E11中的值是否出现在C8:C21范围内的任何位置,如果是,请执行查找。 这可以通过几种方式完成 =if(isnumber(match(e11,Rekap!$C$8:$C$21,0)),vlookup(E11,Master!$A$2:$C$148,false),"") 请注意,我将第四个参数添加到Vlookup。 如果省略,它将默认为TRUE,如果查找表未排序,则可能返回错误的结果。 A single cell l...

    相关文章

    更多

    这种的EXCEL表格 怎么来解析??

    如图的EXCEL表格 怎么来解析??

    JXLS根据excel模板生成EXCEL并下载

    JXLS根据excel模板生成EXCEL并下载,jxl.jar,jxls-core-0.9.9.jar ...

    两种js function 声明方式

    http://helephant.com/2012/07/14/javascript-function ...

    POI 操作 Excel的主要API

    Java Aspose Cells 是一种纯粹的Java授权的Excel API

    使用POI操作Excel和Word

    前言:今天在项目中看到有小模块是上传Excel解释后保存到数据库的操作,好奇之下去了解了如何使用Apa ...

    关于excel文件导入到mysql数据没有读取到文件问题

    我最近在做一个oa项目,其中有一个excel文件导入到数据中去,用poi做的。我现在在后台能够得到文件 ...

    POI 操作Excel公式

    在执行这个公式

    java+jsp来获取excel的数据?

    首先我会在jsp页面上给用户一个上传组件,然后用户上传excel~然后自动后台去解析excel里面的数 ...

    lucene读取word,excel,pdf

    前面在写lucene入门的时候,例子只能对txt文档建立索引,不能对word,excel,pdf建立索 ...

    jxl解析excel并导入数据库

    怎样用jxl解析多级表头的excel文件,确定某个单元格cell对应的标题?

    最新问答

    更多

    将十六进制的字符串转换为字符串(Convert hex-encoded String to String)

    您希望将十六进制编码的数据用作AES密钥,但数据不是有效的UTF-8序列。 您可以将其解释为ISO Latin编码中的字符串,但AES(key: String, ...)初始化程序将该字符串转换回其UTF-8表示形式,也就是说,您将从开始时获得不同的关键数据。 所以你不应该把它转换成字符串。 使用 extension Data { init?(fromHexEncodedString string: String) } 方法从Swift中进行十六进制/二进制字符串转换,将十六进制编码的

    将friendly_id添加到用户模型后,登录后的友好转发不起作用(Friendly forwarding after login doesn't work after adding friendly_id to the user model)

    在应用程序控制器中,将redirect_back_or(path)方法更改为此方法。 def redirect_back_or(path) redirect_to session[:forwarding_url] || path session.delete(:forwarding_url) end 你有redirect_to request.referer之前负责将你重定向到最后一个url,即login_url。 我不知道为什么你要定义两个不同的方法

    Qt + VS2010:由于 .dll从您的计算机丢失,程序无法启动(Qt + VS2010: The program can't start because .dll is missing from your computer)

    您可能需要将有问题的DLL复制到您的可执行文件所在的文件夹中,或者确保DLL位于系统PATH中的文件夹中。 You likely need to copy the DLLs in question to the folder your executable is in, or ensure that the DLLs are located in a folder in the system's PATH.

    AutoFixture使用内部setter创建属性(AutoFixture create property with internal setter)

    理想情况下 ,测试不应该与类的internal成员交互,因为它们明确地从其公共API中排除 。 相反,这些成员将通过公共API启动的代码路径间接测试。 但是,如果在您的特定情况下这不可行,则可能的解决方法是从测试中明确地为内部属性赋值 。 您可以通过以下两种方式之一来实现: 通过使用InternalsVisibleTo属性将程序集中的所有内部成员公开给测试项目。 通过在特定接口中表示类的可修改状态并明确地实现它。 在您的示例中,选项1将是: // [assembly:InternalsVisib

    使用Trigger.IO/PhoneGap在UIWebView中使用focus()事件自动显示键盘(Show keyboard automatically with focus() event in UIWebView using Trigger.IO/PhoneGap)

    访问UIWebView不是我们在当前版本的插件中正确公开的东西(但我们很快就会支持)。 现在,如果您想尝试一下,可以添加 extern UIWebView *webView; 在插件文件的顶部,这将使您的API方法中的变量webView可用。 这将很快停止工作,所以我建议你现在只用它来测试一下。 2012年10月更新 : 该应用程序的Web视图现在通过ForgeApp : http : ForgeApp 例如: [ForgeApp sharedApp].webView Access to t

    ASP.NET MVC控件(ASP.NET MVC Control)

    您可以使用RadComboBox以及此处找到的此telerik社区项目提供的一些小调整。 应该在MVC中都能正常工作。 You can use the RadComboBox along with a little tweaking as provided for by this telerik community project, found here. Should all work fine in MVC.

    在后期保存上下文 - 将指针保存到上下文?(Saving Context At a Later Stage - Saving Pointer To Context ? Core Data)

    是的,您可以在循环后保存上下文。 它比每次迭代中的保存要好得多。 如果你看一下MagicalRecord src,你会看到MR_contextForCurrentThread总是为相同的线程返回相同的上下文,如果没有上下文的线程,MagicalRecord会创建它。 此外,您不需要传递上下文[_entityClass createInContext:context] ,只需要[_entityClass MR_createEntity] - 它将在当前线程的上下文中创建 Yes, you can

    tinyMce函数用于确定弹出窗口是否已打开(tinyMce function to determine if popup is already open)

    这是我要去的解决方案: 我似乎已经确认: - windowManager.open()不会像window.open()那样返回对窗口的引用 - windowManager没有内置方法来限制可以打开的实例数。 但它确实有一种方法可以将onClose函数添加到插件窗口:ed.windowManager.onClose.add(function(){alert('Closing!');}); 所以我将在onClick代码中使用一个变量来跟踪弹出窗口是否已被打开和关闭。 onClose函数将该变量标记为

    使用nil调用Document.find在mongodb中无效(Calling Document.find with nil is invalid in mongodb)

    OrderController #new调用OrderController#current_cart,它运行Cart.find(session [:cart_id])。 在会话开始时没有:cart_id,即session [:cart_id]为nil,你得到上面的Mongoid :: Errors :: InvalidFind异常。 请注意,当您正在抢救ActiveRecord :: RecordNotFound时,您的救援子句不会挽救该异常。 您正在使用Mongoid,而不是ActiveRec

    在函数中返回postgresql查询结果(Return postgresql query result in a function)

    假设您正在使用nodejs和pg模块。 正如您所说,由于查询功能是异步的,您无法直接将结果返回给调用者。 传统上,在nodejs中,调用者传递一个回调函数来处理结果或错误(如果有的话)。 在Kotlin中,这看起来像: client.query(MY_QUERY_TEMPLATE, params) { err, result -> if (err != null) { // do something with the error }