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,一经查实,立即删除!

相关文章

GPT对话知识库——C、C++,还有Java,他们之间有什么区别

目录 1,问: 1,答: 1. 语言特性与设计理念 C 语言: C 语言: Java 语言: 2. 内存管理 3. 运行效率 C 和 C: Java: 4. 程序的执行方式 C 和 C: Jav…

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

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

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

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

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

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

vim(1) -- 环境配置

1. 配置文件 编辑~/.vim/vimrc文件,内容如下。 " 开启语法高亮 syntax on " 显示行号 set number " 显示行下划线 set cursorline set scrolloff5 " 智能缩进 set smartindent " 行太长时换行显示 set wrap" 高亮搜索内容 set hlse…

CSS全解析

文章目录 CSS全解析一、CSS是什么二、基本语法规范三、引入方式(一)内部样式表(二)行内样式表(三)外部样式 四、代码风格(一)样式格式(二)样式大小写&#xf…

(k8s)kubernetes中ConfigMap和Secret

转载:ConfigMap 一、ConfigMap介绍 ConfigMap是一种API对象,用来将非机密性的数据保存到键值对中。使用时,Pod可以将其用作环境变量、命令行参数或存储卷中的配置文件。 ConfigMap将你的环境配置信息和容器镜像解耦,便于应用配置…

[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就是一…

iOS--RunLoop原理

前言 曾经在写项目的时候遇到过这么一个问题。&#xff1a; 项目中添加了一个tableview&#xff0c;然后还有一个计时器&#xff0c;当滑动tableview的时候会阻塞计时器&#xff0c;你得执行这么一段代码后&#xff0c;计时器才能正常运行。 RunLoop.current.add(timer, for…

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

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

DNS查询工具简介

DNS查询工具简介 域名服务器查询工具&#xff08;DNS 查询工具&#xff09;是用于查询域名系统&#xff08;DNS&#xff09;信息的应用程序或命令行工具。这些工具能够帮助用户获取与特定域名相关的信息&#xff0c;比如 IP 地址、域名解析记录、邮件交换记录&#xff08;MX&a…

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 代码…

华为杯”第十二届中国研究生数学建模竞赛-D题:单/多列车优化决策问题的研究

目录 摘 要: 一、问题叙述 1.1 研究背景 1.2 要解决的问题 二、基本假设、名词约定及符号说明 2.1 模型假设 2.2 名词约定 2.3 符号说明 三、问题分析与模型准备 3.1 问题分析 3.2 数据处理 3.3 模型准备 3.3.1 列车运行动力学模型 3.3.2 列车运行耗能模型 四、问题一模型建立…

解决方案:GBDT、LightGBM 跟 XGBoost ,这三者有什么区别

文章目录 一、现象二、解决方案 一、现象 在工作中&#xff0c;在机器学习中&#xff0c;时而会听到梯度提升树&#xff08;Gradient Boosting Trees&#xff09;跟GBDT&#xff08;Gradient Boosting Decision Trees&#xff0c;GBDT&#xff09;&#xff0c;会容易混淆&…

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

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

《探索 C++泛型编程的实现之道》

在 C编程的广阔领域中&#xff0c;泛型编程是一种强大而灵活的技术&#xff0c;它允许程序员编写可以适用于不同数据类型的代码&#xff0c;提高了代码的可重用性和可维护性。那么&#xff0c;泛型编程究竟是如何实现的呢&#xff1f;让我们深入探讨这个引人入胜的主题。 一、…

React 组件命名规范

在 React 项目中&#xff0c;如果希望保持组件命名的一致性&#xff0c;并防止在引入时出现不同名称的问题&#xff0c;可以遵循以下的组件规范&#xff1a; 1、默认导出组件&#xff1a; 所有特殊要求的组件&#xff08;如页面组件或根组件&#xff09;应该使用 export defau…

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

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

爬虫设计思考之一

爬虫设计思考之一 经常做爬虫的人对于技术比较的执着&#xff0c;尤其是本身从事的擅长的技术领域&#xff0c;从而容易忽视与之相近或者相似的技术。因此我建议大家在遇到此类问题的时候&#xff0c;可以采用对比分析的方式来理解。 本次的思考是基于国内最大的中文搜索引擎百…