转载自个人主页

前言

ExcelDNA是一名国际友人开发的开源框架,文档全是英文文档,当时看的时候非常吃力,现在将英文文档翻译过来,为的是让自己加深印象以及自己以后看的时候能不用这么吃力。

介绍

Excel-DNA是一个独立于Excel的.net项目。使用Excel-DNA你可以用C#、VB、F#创建一个本地的Excel插件,该插件可以执行用户自定义函数(UDF)自定义菜单栏等。整个插件可以打包进一个.xll文件,不需要安装或者注册

开始

如果的的Visual Studio 版本支持 NuGet Package Manager(包管理工具)你可以很容易使用Excel-DNA add-in

  • 创建一个新的类库项目在VB、C#、F#中

  • 使用Manage NuGet Packages窗口或者Package Manager控制台,安装Excel-DNA的包

    PM> Install-Package ExcelDna.AddIn
  • 新建一个类,并添加如下代码

    //安装所需的包后,在相关类文件上也要引用次文件
    using ExcelDna.Integration; public static class MyFunctions
    {
    //此处便是定义该方法为excel自定义函数,函数的名称为SayHello
    [ExcelFunction(Description = "My first .NET function")]
    public static string SayHello(string name)
    {
    return "Hello " + name;
    }
    }
  • 设置项目调试,启动Excel

    ![如图所示]({{ site.url }}/img/postin/exceldna-run-excel.png)

  • 编译,加载你的Excel公式,并在Excel单元格中输入以下公式,便能看见输出的东西

    =SayHello("World!")

使用ExcelDNA NuGet包安装必要的文件和配置,编译你的项目,便生成出ExcelDNA插件

或者,从(GitHub)[https://github.com/Excel-DNA/ExcelDna/releases]获取源码,然后通过开始页面,一步一步创建C# 插件。

更多信息

ExcelDNA 依赖于.NET 开发,并且用户需要安装免费提供的.NET Framework。项目代码会整合到Excel插件(.xll文件)中并安装到Excel上。代码可以写在文本脚本文件(.dna)中,也可以写在可编译的.NET 类库中(.dll)。Excel-DNA支持.NET Framework 2.0/3.0/3.5/4。插件致力于运行时版本,并且Excel支持同事加载多个版本的Excel插件

Excel版本从97-2016均可以使用ExcelDNA插件,一些高级功能在不同的版本支持情况不同,例如,多线程重新计算(2007版及之后的支持)、注册免费的RTD(异步自定义函数)(2002版及以后的支持)、自定义菜单栏接口(2007及2010版支持,其他均不支持)自定义任务窗格(2007版及之后的版本支持)、卸载UDF计算功能(2010版及之后的支持)、64位版本(2010版及之后的支持)

最新版本

最新版本是 ExcelDNA0.34,最新发布时间为2017.06,最新发布包括修复bug、优化运行效果、整合NuGet包

相关链接

原文文档

此处作者回答了很多问题作者的Stack Overflow

Google Group

翻译-ExcelDNA开发文档-首页的更多相关文章

  1. 翻译-ExcelDNA开发文档

    转载自个人主页 前言 翻译开源项目ExcelDNA开发文档 异步处理 ExcelDNA支持两种异步函数: RTD,该函数适用与Excel2003及以上版本,(当你使用ExcelAsyncUtil.*时 ...

  2. [翻译]开发文档:android Bitmap的高效使用

    内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...

  3. 【原创】Odoo开发文档学习之:ORM API接口(ORM API)(边Google翻译边学习)

    官方ORM API开发文档:https://www.odoo.com/documentation/10.0/reference/orm.html Recordsets(记录集) New in vers ...

  4. 【原创】Odoo开发文档学习之:构建接口扩展(Building Interface Extensions)(边Google翻译边学习)

    构建接口扩展(Building Interface Extensions) 本指南是关于为Odoo的web客户创建模块. 要创建有Odoo的网站,请参见建立网站;要添加业务功能或扩展Odoo的现有业务 ...

  5. ECMall模板开发文档

    ECMall 模板开发文档 前 言 欢迎阅读 ECMall 模板制作教程,通过阅读本教程可快速上手 ECMall 模板的使用和制作. ECMall 模板制 作要求用户具备 XML . XHTML 和 ...

  6. windows下使用 ApiGen 生成php项目的开发文档

    之前使用 PHPDocument 生成过开发文档,但是界面看着不爽,遂尝试了 ApiGen 生成,不得不说界面看着舒服多了,下面说说安装和使用的方法. ApiGen官网: http://www.api ...

  7. WSTMart开发文档

    WSTMart开发文档页面   PC版   开源版 授权版   序言   WSTMart安装协议   WSTMart电商系统安装   商城前台安装操作指南   用户中心指南   商家中心操作指南   ...

  8. Web图片编辑控件开发文档-Xproer.ImageEditor

    版权所有 2009-2014 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com 产品首页:http://www.ncmem.com/webplug/image-e ...

  9. Android官方开发文档Training系列课程中文版:目录

    Android官方开发文档Training系列课程中文版:目录   引言 在翻译了一篇安卓的官方文档之后,我觉得应该做一件事情,就是把安卓的整篇训练课程全部翻译成英文,供国内的开发者使用,尤其是入门开 ...

随机推荐

  1. Qt 学习之路 2(2):Qt 简介

    Home / Qt 学习之路 2 / Qt 学习之路 2(2):Qt 简介 Qt 学习之路 2(2):Qt 简介  豆子  2012年8月21日  Qt 学习之路 2  43条评论 Qt 是一个著名的 ...

  2. PHPExcel 报 Allowed memory size of 8388608 byte

    使用 phpExcel 报 Allowed memory size of 8388608 bytes exhausted 错误,原因是php页面消耗的最大内存默认是为 8M (在PHP的ini件里可以 ...

  3. SQL Connect By 的例子

    看到一个较为通俗易懂的connect by的例子,是百度知道的答案,稍微整理了一下.我自己这样理解:connect by prior "id" = "p_id" ...

  4. VScode中Go的相关插件的安装

    一.安装Go插件失败 使用VScode时,当我们安装完go语言扩展时,新建一个go的源码文件,进行保存时,会提示我们需要安装一些go的扩展插件,可别小看这些插件,这些插件都是非常有用的,比如说自动补全 ...

  5. Day04 流程控制 while 和for循环

    一.流程控制 if 判断 python中使用缩进来区分代码块的 语法 一: #python if 条件: 代码块1 代码块2 自上而下依次运行 语法二: # python if 条件一: 代码一 el ...

  6. OCR 维护 crsd.log

    ###########sample 1 OCR corruption messages are reported in crsd.log, automatic OCR backup is failin ...

  7. Jenkins遇到哪些坑~

    1Jenkins关闭和重启实现方式. 1.关闭Jenkins ​ 只需要在访问jenkins服务器的网址url地址后加上exit.例如我jenkins的地址http://localhost:8080/ ...

  8. Unity3d 破解

    在官网上或者其他地方下载unity3d后 运行注册机,需要详细的设置可以点击edit   一.点击browse,选择安装unity目录下的Editor文件夹 二.选择path,会提示Pathed 三. ...

  9. python_文件 处理

    一.字符编码 内存固定使用unicode编码 数据最先产生于内存中,是unicode格式,要想传输需要转成bytes格式 # unicode -------> enconde( u t f - ...

  10. (转)ping命令

    ping命令 原文:https://www.cnblogs.com/peida/archive/2013/03/06/2945407.html Linux系统的ping命令是常用的网络命令,它通常用来 ...