转载自个人主页

前言

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. (转)TestNG框架提供两种传入参数的方法:

    1.从testng.xml传入参数. 如果参数是一些简单的值,可以直接在testng.xml中定义.这也是最常用的一种. 可以在测试用例中给参数一个默认值.这样,即使在xml文件中没有这个变量,你的测 ...

  2. java中\r ,\n,\t等的含义

    \t 相当于tab,缩进,制表符\n NewLine 换行 \f 换页符 \r 回车 \" 转义 “\\ 转义 \

  3. Linux不同发型版本(Debian REHL)与软件包管理器(RPM dpkg)的概念

    Linux的发行版本可以大体分为两类: Linux发行版 = Linux内核(类Unix内核) + Linux软件管理(package manager) 一类是商业公司维护的发行版本,以著名的Red ...

  4. HDU-Fibonacci Again(打表找规律)

    There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2). ...

  5. Java json字符串对比

    public class JsonUtil { public static boolean compareJsonText(String str1, String str2) { return com ...

  6. Java学习笔记day05_方法重载

    1.方法的重载overload 在同一个类中, 允许出现同名的方法, 只要方法的参数列表不同即可. 参数列表不同: 参数个数不同, 参数类型不同, 顺序不同. public class MethodO ...

  7. Yii2的框架笔记整理

    1 .request的获取方式 $request = Yii::$app->request; 2. get参数的获取方式 $id = $request->get('id',1);获取get ...

  8. 爬虫(GET)——add_header()和get_header()

    import urllib.request import random url = "http://www.baidu.com/" # 可以是User-Agent列表,也可以是代理 ...

  9. vue interceptors 设置请求头

    在main.js添加过滤器,可以 Vue.http.interceptors.push((request,next)=>{ //request.credentials = true; // 接口 ...

  10. protobuf在c++的使用方法以及在linux安装

      https://blog.csdn.net/wangyin668/article/details/80046798 https://www.cnblogs.com/zhouyang209117/p ...