使用exceldna开发excel自定义函数

693次阅读

共计 1781 个字符,预计需要花费 5 分钟才能阅读完成。

作为一个经常使用 Excel 的人,我经常有定义函数的需求。尽管 VBA 和 Lambda 函数在某种程度上满足了我的需求,但它们都存在一个明显的局限性:函数定义存储在 Excel 文件中,这意味着在不同的文件间共享和使用这些自定义函数变得异常繁琐。因此,我一直在寻找一种更灵活的方法来创建并共享 Excel 自定义函数。知道我发现了 ExcelDNA,它完全满足了我的需求,可以使用 vb 编程,同时也很方便分享函数。
下面是一个详细的过程展示如何使用 excel—dna 创建自定义函数,本文以一个正则替换函数作为案例来说明。

开始使用 Excel-DNA

第一步:创建工程和安装 Excel-DNA

首先在 Visual Studio 中创建一个新的 Class Library 项目开始的,确保选择的是.NET Framework,注意目前的最新的 exceldna1.7 需要.net6.0 以上版本。

使用 exceldna 开发 excel 自定义函数

点击下一步,输入项目的名称地址等信息。

 

接下来选择.NET6.0

使用 exceldna 开发 excel 自定义函数

点击创建,创建项目成功。

接着,通过 NuGet 安装 Excel-DNA 包。

使用 exceldna 开发 excel 自定义函数

在控制台依次输入命令安装 exceldna 差距


Install-Package ExcelDna.AddIn

Install-Package ExcelDna.Integration

到了这一步,exceldna 差距和开发环境安装完成。

第二步:编写代码

安装完 Excel-DNA 后,下一步是添加一个新的 VB.NET 类文件,并引入必要的命名空间。接下来,就可以编写自定义函数了。例如,我编写了一个使用正则表达式替换文本的函数,代码如下:


' 引入 Excel-DNA Integration 库,使.NET 代码能够作为 Excel 自定义函数(UDF)运行
Imports ExcelDna.Integration
' 引入 System.Text.RegularExpressions 库,以便使用正则表达式相关功能
Imports System.Text.RegularExpressions

' 定义一个公共模块,其中将包含我们的自定义 Excel 函数
Public Module MyExcelFunctions

    ' 使用 ExcelFunction 属性定义一个 Excel 自定义函数,描述为“使用正则表达式替换文本”<ExcelFunction(Description:="使用正则表达式替换文本")>
    Public Function RegexReplace(
        ' 定义函数参数:原文本,描述为“要被替换的原始文本”<ExcelArgument(Name:="原文本", Description:= "要被替换的原始文本")> ByVal inputText As String,
        ' 定义函数参数:正则表达式,描述为“用于匹配文本的正则表达式”<ExcelArgument(Name:="正则表达式", Description:= "用于匹配文本的正则表达式")> ByVal pattern As String,
        ' 定义函数参数:替换文本,描述为“用于替换的文本”<ExcelArgument(Name:="替换文本", Description:= "用于替换的文本")> ByVal replacementText As String
    ) As String
        Try
            ' 尝试使用正则表达式替换指定文本,并返回结果
            Return Regex.Replace(inputText, pattern, replacementText)
        Catch ex As Exception
            ' 如果过程中出现异常,则捕获异常并返回错误信息
            Return "错误:" & ex.Message
        End Try
    End Function

End Module

第三步:构建项目

项目编写完成后,下一步是构建项目,以生成 XLL 文件,直接点击运行,就可以在 excel 看到效果。

第四步:创建 Excel Add-In

最后,将生成的 DLL 文件和 ExcelDNA 的.xll 文件放在同一个文件夹中,并重命名.xll 文件以匹配你的 DLL 文件名。然后,双击.xll 文件即可在 Excel 中加载你的 Add-In。

正文完
 4