前言

本期分享下如何使用Cursor+ExcelDNA编写Excel自定义功能插件

工具准备:

  1. Cursor
  2. Visual Studio

Visual Studio 操作

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

创建项目

  • 运行软件,点击创建新项目

创建新项目

  • 搜索DNA,选择Excel-DNA full featured add-inc#语言版本的模板

创建项目模板文件

如果搜索DNA后没有模板出现,打开powershell终端执行如下

1
dotnet new install ExcelDna.Templates::1.9.0-alpha3

其他版本模板地址:

NuGet Gallery | ExcelDna.Templates 1.8.0

  • 命名项目名称,点击创建

输入项目名称

修改相关配置

双击项目名称,改第4行net6.0-windows为net462;添加第七行:\12\;点击保存。

配置修改

设置解释和项目结构想了解的可以观看快速搭建基于ExcelDna的Excel插件项目进行了解

Visual Studio 中显示代码行号

  • 点击菜单栏中的 工具 (Tools) -> 选项 (Options)

  • 在弹出的选项窗口中,导航到 文本编辑器 (Text Editor) -> 所有语言 (All Languages) -> 常规 (General)

  • 勾选 “行号 (Line Numbers)” 选项。

  • 点击 确定 按钮保存设置。

修改代码字体

  • 点击菜单栏中的 工具 (Tools) -> 选项 (Options)

  • 在选项窗口中,导航到 环境 (Environment) -> 字体和颜色 (Fonts and Colors)

  • “显示项 (Show settings for)” 下拉列表中,选择 “文本编辑器 (Text Editor)”

  • “字体 (Font)” 中选择你想要的字体(例如 ConsolasCourier New 等)。

  • “大小 (Size)” 中输入或选择合适的字号(推荐 10-14 之间,视个人喜好)。

  • 点击 确定 保存并应用更改。

Cursor操作

使用Cursor打开刚刚创建的项目,比如路径P:\exceladdin\Exceladdin\Exceladdin,确保这个路径下的目录文件与Visual Studio 右侧的项目文件结构一致。

  • 以下展示部分需求求提问。

部分提问

等它写完后点击接受,回到Visual Studio

  • 编译生成xll文件

右键项目点击重新生成,运行结果没有报错,点击执行

编译执行

之后会自动运行Excel

excel的菜单栏会增加一个自定义功能菜单,菜单里面有创建的批量处理工具模块,模块里面三个工具,点击后出现对应ctp面板,面板里面有添加的功能按钮。

运行Excel

在前期,添加功能的时候可能会出现各种报错,但是在cursor熟悉需求后续添加功能按钮就会很快。

需求提问模式如下:

  1. 在批量处理模块下再添加xxx工具按钮,点击这个按钮会出现ctp面板,面板里面有xxx按钮,按钮功能如下。。。。
  2. 在单元格工具ctp面板下再添加xxx按钮,鼠标滑动到按钮提示xxx,按钮功能 如下。。。。

使用编译好的xll文件

  • 编译好的xll文件在项目名\source\repos\ExcelAddin\ExcelAddin\bin\Debug\net462\publish位置

xll文件位置

  • xll文件的使用方法可以是双击,也可以放到C:\Users\你的电脑用户名\AppData\Roaming\Microsoft\AddIns目录下

xll放到office对应位置

  • 打开excel后加载xll文件

加载xll

后续每次打开excel就会多出一个菜单功能

自定义的菜单

相比较vba,这样打包编译好的就能在使用功能的时候避免打开vbe窗口再执行的步骤了。

功能展示

工作表工具

  • 合并工作表

功能:将一个工作簿下所有工作表合并到一张表中

使用前提:所有表的表头一致

合并工作表

  • 拆分工作表

功能:按照某列进行拆分

拆分工作表

  • 新建表

功能:按照A列的值新建表格并命名

批量建表

工作簿工具

  • 合并工作簿

功能:合并选定工作簿文件中的所有表到一个工作簿中的一个sheet

前提:数据结构一致

合并工作簿到一张表

  • 合并工作簿2

功能:合并选定工作簿文件中的所有表到一个工作簿中的多个sheet,sheet命名格式:工作簿名字_工作表名字

前提:数据结构一致

合并工作簿到多张表

  • 拆分工作簿

功能:将一个工作簿下的所有表另存为工作簿,工作簿命名格式:工作表名字

拆分工作簿

单元格工具

  • 删除行

功能:删除单元格值符号条件的行

删除行

结语

目前只有这七个功能,后期可能还会添加

相关文件下载地址:https://wwqg.lanzoub.com/iFMAN2i74b0d