C#案例 | 基于C#语言在Excel中进行二次开发(一):简单系统搭建:打印输出“Hello Excel C#”

基于C#语言在Excel中进行二次开发(一):简单系统搭建:打印输出”Hello Excel & C#”

    • 实现效果
    • 第一步:前期准备
    • 第二步:打开VS 2022,创建项目
    • 第三步:程序界面设计

实现效果

在Excel表格的工具栏中生成自定义的“TabToolkits”工具选项,点击“Hello Excel”选项,即可弹出“Hello Excel & C#”,并在表格第一行生成“欢迎使用C#对Excel进行二次开发”。
在这里插入图片描述

第一步:前期准备

  1. 新建Excel文件,如果没有“开发工具”一栏,进行后续操作。
    在这里插入图片描述
  2. 以此点击“文件”——>“选项”——>“自定义功能区”——>勾选“开发工具”,即可。
    在这里插入图片描述
    在这里插入图片描述
  3. 以此点击“文件”——>“选项”——>“加载项”——>在管左下角管理中选择“COM加载项”,即可。
    在这里插入图片描述

第二步:打开VS 2022,创建项目

  1. 打开VS 2022,点击“创建新项目(N)”
    在这里插入图片描述
  2. 选择“Excel VSTO外接程序”,点击“下一步”。
    在这里插入图片描述
  3. 修改“项目名称”,“位置”和“解决方案名称”,点击“创建”即可。
    在这里插入图片描述
  4. 鼠标右击“ExcelHello”,选择“添加”——>“新建项”。
    在这里插入图片描述
    5.选择“Office/SharePoint”——>“功能区(可视化设计器)”——>修改“名称”——>“创建”。
    在这里插入图片描述

注1:如果如下图所示左侧没有“工具箱”
在这里插入图片描述
解决方法:按快捷键“Ctrl+Alt+X”,或者在“视图”选项卡下,选择“工具箱”,即可调出。
在这里插入图片描述
在这里插入图片描述
注2:如果在VS 2022右下角没有“属性选项卡”
在这里插入图片描述
解决方法:在VS 2022右下角鼠标右击选择“属性”,即可调出
在这里插入图片描述

注3:如果“解决方案资源管理器”误关的话
在这里插入图片描述
解决方法:在“视图”选项卡下,点击“解决方案资源管理器”,即可在软件界面右侧显示。
在这里插入图片描述
在这里插入图片描述

第三步:程序界面设计

  1. 鼠标点击“TabAddIns”,在属性设置框中的Label里修改名称为“TabToolkits”。
    在这里插入图片描述
  2. 鼠标单击“button1”,进入“button1”的属性设置。(Name)表示软件内部的名字,修改为:btnHello,Label表示显示的名字,修改为:Hello Excel。(Image)表示“button1”前的图标。
    在这里插入图片描述
  3. 设置小图标
    打开阿里巴巴矢量图标库网站:https://www.iconfont.cn/。没有注册的话,可以使用手机号注册登录,即可免费下载图标图片。选择合适的图片,设置喜欢的颜色后,点击下载png格式图片。

在“button1”的属性设置中,点击“Image”后的“无”,点击“本地资源”——>”导入“——>选择图片——>”打开“。
在这里插入图片描述
在这里插入图片描述

  1. 鼠标点击“group1”,进入“group1”的属性设置。修改Label为:General Toolkits。
    在这里插入图片描述

  2. 修改完成之后在界面中显示如下
    在这里插入图片描述

  3. 双击“Hello Excel”,进入到程序编辑界面,在”RibbonDemo.cs“文件内,输入如下命令:

System.Windows.Forms.MessageBox.Show("Hello Excel & C#");

在这里插入图片描述
点击运行,即可打开Excel。
在这里插入图片描述
点击创建“空白工作簿”,在“空白工作簿”中可以看到我们前面创建的“TabToolkits”选项卡,在选项卡下点击“Hello Excel”即可运行弹出窗口“Hello Excel & C#”,即:我们设置想要输出的内容。
在这里插入图片描述

  1. 切换到“ThisAddin.cs”文件中,添加如下命令:
        #region GetActiveApplication Workbook Worksheet// 获得Applicationpublic Excel.Application GetActiveApplication(){return (Excel.Application)Application.Application;}// 获得Workbookpublic Excel.Workbook GetActiveWorkbook(){return (Excel.Workbook)Application.ActiveWorkbook;}// 获得Worksheetpublic Excel.Worksheet GetActiveWorkSheet(){return (Excel.Worksheet)Application.ActiveSheet;}#endregion

在这里插入图片描述

  1. 切换“RibbonDemo.cs”文件,输入如下命令:
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;
using System.Reflection;......Worksheet sheet = Globals.ThisAddIn.GetActiveWorkSheet();// 修改单元格值sheet.Range["A1"].Value = "欢迎使用C#对Excel进行二次开发";  // 在A1单元格内写入内容sheet.Columns.AutoFit();   // 根据填写的内容,自动调整单元格的大小

在这里插入图片描述
点击“运行”,在打开的Excel文件中,在选项卡下点击“Hello Excel”即可运行弹出窗口“Hello Excel & C#”,并在A1表格中输入内容:“欢迎使用C#对Excel进行二次开发”,即:我们设置想要输出的内容。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《蓝桥杯算法入门》(C/C++、Java、Python三个版本)24年10月出版

推荐:《算法竞赛》,算法竞赛大全书,网购:京东 天猫  当当 文章目录 《蓝桥杯算法入门》内容简介本书读者对象作者简介联系与交流《蓝桥杯算法入门 C/C》版目录 《蓝桥杯算法入门 Java》版目录 《蓝桥杯算法入门 Python》版目录 …

STM32器件支持包安装,STLINK/JLINK驱动安装

一、支持包安装 1、离线安装 先下载支持包之后,再进行安装。如下图要安装STM32F1系列,双击 出现如下,会自动锁定安装路径,然后点击下一步,直接安装。 2、在线安装 首先需要电脑联网。如下。先点击第一个红框绿色按钮…

【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换。使用…

[uni-app]小兔鲜-04推荐+分类+详情

热门推荐 新建热门推荐组件, 动态设置组件的标题 <template><!-- 推荐专区 --><view class"panel hot"><view class"item" v-for"item in list" :key"item.id">... ...<navigator hover-class"none&…

Pikachu-Cross-Site Scripting-DOM型xss

DOM型xss DOM型XSS漏洞是一种特殊类型的XSS,是基于文档对象模型 Document Object Model (DOM)的一种漏洞。是一个与平台、编程语言无关的接口&#xff0c;它允许程序或脚本动态地访问和更新文档内容、结构和样式&#xff0c;处理后的结果能够成为显示页面的一部分。 dom就是一…

物联网将如何影响全球商业?

互联网使人们能够交流&#xff0c;企业能够全天候不间断地跨洋跨洲持续运营。它重塑、颠覆并催生了新的产业&#xff0c;改变了人类与世界互动的方式。互联网曾经仅仅是一种方便、快捷、廉价的向世界各地发送信息的方式&#xff0c;而现在&#xff0c;只需打开或关闭任何连接到…

thinkphp6入门(25)-- 分组查询 GROUP_CONCAT

假设表名为 user_courses&#xff0c;字段为 user_id 和 course_name&#xff0c;存储每个用户选修的课程&#xff0c;想查询每个学生选修的所有课程 SQL 原生查询 SELECT user_id, GROUP_CONCAT(course_name) as courses FROM user_courses GROUP BY user_id; ThinkPHP 代码…

汇编语言知识(王爽第四版)

汇编语言&#xff0c;当然&#xff0c;我们学习是在c语言的基础上&#xff0c;那么&#xff0c;我们就先复习一下c语言的知识 C语言的基础&#xff0c;进制转换必不可少 数组&#xff0c;函数…… 接下来&#xff0c;我们学习了数据结构&#xff1a;顺序表&#xff0c;链表&…

Ubuntu/Debian网络配置(补充篇)

Ubuntu/Debian网络配置补充 在《Ubuntu/Debian网络配置 & Ubuntu禁用自动更新_ubuntu nmtui-CSDN博客》上总结的“配置网络”章节&#xff0c;对于新版本或者“最小化安装”场景&#xff0c;可能不适应&#xff0c;故此本文做一下补充&#xff0c;就不在原有文章上做更新了…

【数据结构】什么是平衡二叉搜索树(AVL Tree)?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;AVL树的概念 &#x1f4cc;AVL树的操作 &#x1f38f;AVL树的插入操作 ↩️右单旋 ↩️↪️右左双旋 ↪️↩️左右双旋 ↪️左单旋 &#x1f38f;AVL树的删…

平面电磁波(解麦克斯韦方程)

注意无源代表你立方程那个点xyzt处没有源&#xff0c;电场磁场也是这个点的。 j电流面密度&#xff0c;电流除以单位面积&#xff0c;ρ电荷体密度&#xff0c;电荷除以单位体积。 j方程组有16个未知数&#xff0c;每个矢量有三个xyz分量&#xff0c;即三个未知数&#xff0c;…

在idea使用nacos微服务

一.安装nacos 、依赖记得别放<dependencyManagement></dependencyManagement>这个标签去了 1.在linux拉取镜像安装 docker pull nacos/nacos-server:1.3.1 2.创建挂载目录 mkdir -p /usr/local/docker/nacos/init.d /usr/local/docker/nacos/logs 3.安装nacos…

GGHead:基于3D高斯的快速可泛化3D数字人生成技术

随着虚拟现实(VR)、增强现实(AR)和数字人技术的发展,对高质量、实时生成的3D头部模型的需求日益增长。传统的3D生成方法往往依赖于复杂的2D超分辨率网络或大量的3D数据,这不仅增加了计算成本,还限制了生成速度和灵活性。为了解决这些问题,研究人员开发了一种名为GGHead…

加密与安全_TOTP 一次性密码生成算法

文章目录 PreTOTP是什么TOTP 算法工作原理TOTP 生成公式TOTP 与 HOTP 的对比Code生成TOTP验证 TOTP使用场景小结 TOTP 与 HOTP 的主要区别TOTP 与 HOTP应用场景比较TOTP 与 HOTP安全性分析 Pre 加密与安全_HTOP 一次性密码生成算法 https://github.com/samdjstevens/java-tot…

gdb 调试 linux 应用程序的技巧介绍

使用 gdb 来调试 Linux 应用程序时&#xff0c;可以显著提高开发和调试的效率。gdb&#xff08;GNU 调试器&#xff09;是一款功能强大的调试工具&#xff0c;适用于调试各类 C、C 程序。它允许我们在运行程序时检查其状态&#xff0c;设置断点&#xff0c;跟踪变量值的变化&am…

指针 (5)

目录 1. 字符指针变量 2. 数组指针变量 3. ⼆维数组传参的本质 4. 函数指针变量 5.typedef 关键字 6 函数指针数组 7.转移表 计算器的⼀般实现 1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* #include <stdio.h> int main() {char* ch …

VB.net读写NDEF标签URI智能海报WIFI蓝牙连接

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 Public Class Form1Dim oldpicckey(0 To 5) As Byte 卡片旧密码Dim newpicckey(0 To 5) As Byte 卡片新密码Function GetTagUID() As StringDim status As ByteDim myctrlword As …

矩阵系统源码搭建的具体步骤,支持oem,源码搭建

一、前期准备 明确需求 确定矩阵系统的具体用途&#xff0c;例如是用于社交媒体管理、电商营销还是其他领域。梳理所需的功能模块&#xff0c;如多账号管理、内容发布、数据分析等。 技术选型 选择适合的编程语言&#xff0c;如 Python、Java、Node.js 等。确定数据库类型&…

Activiti7 工作流引擎学习

目录 一. 什么是 Activiti 工作流引擎 二. Activiti 流程创建步骤 三. Activiti 数据库表含义 四. BPMN 建模语言 五. Activiti 使用步骤 六. 流程定义与流程实例 一. 什么是 Activiti 工作流引擎 Activiti 是一个开源的工作流引擎&#xff0c;用于业务流程管理&#xf…

Linux开发讲课45--- 链表

Linux内核代码中广泛使用了数据结构和算法,其中最常用的有链表、队列kfifo、红黑树、基数树和位图。 链表 Linux内核代码大量使用了链表这种数据结构。链表是在解决数组不能动态扩展这个缺陷而产生的一种数据结构。 链表所包含的元素可以动态创建并插入和删除。链表的每个元素…