用C#开发Excel插件的强大开源工具

news/2024/7/21 6:26:58 标签: c#, excel, 开发语言

推荐一个开源项目,方便我们使用C#为Excel开发插件。

01 项目简介

Excel-DNA是一个.Net开源项目,为开发者提供了一种便利的方法,可以将.Net代码与Excel集成,能够轻松的为Excel创建自定义函数、图表、表单等,一方面不仅可以利用.Net强大的库,另外一方面还可以与外部数据、程序等连接交互。

利用该项目我们可以用来,开发一些数据分析与处理、数据自动化等一些场景。

02 使用示例

**1、创建一个类型:**类库的项目,这边选择.Net 6。

图片

2、修改项目文件ClassLibrary.csproj

修改TargetFramework修改为net6.0-windows,示例代码如下:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0-windows</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

**3、添加依赖库:**Excel-DNA。

图片

4、创建类并添加如下代码:

using ExcelDna.Integration;

public static class MyFunctions
{
    [ExcelFunction(Description = ".Net自定义方法")]
    public static string SayHello(string name)
    {
        return "Hello " + name;
    }

    [ExcelFunction(Description = ".Net自定义方法")]
    public static int AddExt(int num1, int num2)
    {
        return num1 + num2;
    }
}

**5、运行项目,**并在对话框选择:仅为本对话启用此加载项。

图片

6、使用效果

SayHello自定义方法:

图片

AddExt自定义方法:

图片

03

项目地址

https://github.com/Excel-DNA/ExcelDna

更多开源项目: https://github.com/bianchenglequ/NetCodeTop

我是编程乐趣,一个.Net开发经验老程序员,欢迎“关注”我,每天为你分享开源项目和编程知识。
也欢迎加入【.Net技术编程交流社区】,和大家共同学习交流!,点击加入:https://bbs.csdn.net/topics/613465368

- End -


http://www.niftyadmin.cn/n/5405916.html

相关文章

智能驾驶规划控制理论学习01-自动驾驶系统介绍、规划控制模块介绍

目录 一、自动驾驶系统概述 二、规划控制模块介绍 1、规划控制架构 2、规划控制目标 3、Cartesian和Frenet坐标系 4、Frenet坐标系概览 5、解耦式规划和联合式规划 一、自动驾驶系统概述 目前被国内外广为接受的自动驾驶级别划分标准是 SAE&#xff…

数字化转型导师鹏:政府数字化转型政务服务类案例研究

政府数字化转型政务服务类案例研究 课程背景&#xff1a; 很多地方政府存在以下问题&#xff1a; 不清楚标杆省政府数字化转型的政务服务类成功案例 不清楚地级市政府数字化转型的政务服务类成功案例 不清楚县区级政府数字化转型的政务服务类成功案例 课程特色&#x…

【Redis】Redis 实现分布式Session

Cookie 保存在客户端浏览器中&#xff0c;而 Session 保存在服务器上。客户端浏览器访问服务器的时候&#xff0c;服务器把客户端信息以某种形式记录在服务器上&#xff0c;这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了。 在实际工作…

SAP VT01N创建Shipment Number

调用BAPI:BAPI_SHIPMENT_CREATE创建装运单本身很简单&#xff0c;但是如果是第一次使用的话&#xff0c;可能会对抬头的一些日期感到困惑 BAPI_SHIPMENT_CREATE抬头日期字段处理代码&#xff1a;Include程序&#xff1a;LV56I_BAPIHEA&#xff0c;子程序&#xff1a;set_heade…

Qt 简约美观的动画 摆钟风格 第十季

&#x1f60a; 今天给大家分享一个摆钟风格的加载动画 &#x1f60a; 效果如下: 最近工作忙起来了 , 后续再分享其他有趣的加载动画吧. 一共三个文件 , 可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <Q…

type.GetFields() 获取不到,改用type.DeclaredFields

StatisticQuery 类 private Dictionary<string, DateTime> GetTBHBDate(StatisticQuery model, string field){Dictionary<string, DateTime> dic new Dictionary<string, DateTime>();DateTime TB new DateTime();//同比开始日期 &#xff08;年&#xff…

Java批量修改文件目录名称(树行结构、批量重命名)

Java批量修改文件目录名称(树行结构、批量重命名) 1.读取某个路径的文件目录结构 2.递归批量修改目录文件前缀进行递增 3.结果截图 4.代码 package com.zfi.server.device;import java.io.File; import java.util.Arrays; import java.util.Comparator;public class FileTest…

MES的生产计划管理与ERP的生产计划管理到底有什么不同?

在制造业信息化的道路上&#xff0c;ERP系统和MES系统是两个非常重要的信息化管理工具。大多数制造业企业往往首先考虑上ERP系统&#xff0c;经过一段时间的深度使用后&#xff0c;再引进MES系统进行报工或数采。但我们可以发现&#xff0c;这两个系统都能进行生产管理&#xf…