当前位置: 首页 > news >正文

.NET-10. 其他-VSTO+VBA


VSTO+VBA

  • 前言
  • VSTO 外接程序介绍:
    • VSTO参考链接:
    • VSTO 例子:
  • VBA:
    • 参考链接:


前言

主要用于Excel插件。


VSTO 外接程序介绍:

Excel、Word、PowerPoint、Project、Visio等等Office应用程序
相对简单

VSTO参考链接:

知乎教程、官网参考、Api

VSTO 例子:

1. 下标从1开始
public static int GenerateRandomSeed() => Math.Abs((int)DateTime.Now.Ticks);//根据时间生成序列号
public Excel.Application excelApp;//Excel应用程序变量
excelApp = Globals.ThisAddIn.Application;//构造函数里面
Excel.Workbook wbk = excelApp.ActiveWorkbook;//wbk为活动工作簿
wbk.Path//当前路径
Excel.Sheets sheets = excelApp.ActiveWorkbook.Worksheets;//wbk为活动工作表
TaFirstList = ((dynamic[,])sheet.Range["A1", "N1"].Value).OfType<string>().ToList();
TaFirstList = ((dynamic[,])sheet.Range["A1", "N1"].Value).OfType<dynamic>().ToList();//为null的也算一个
//赋值:
var firstlist = new string[]{1,2,3,4,5,6};
Excel.Workbook Nowbook = excelApp.Application.Workbooks.Add();//新增一个工作薄
Nowbook.Sheets[1].Name = "";
Nowbook.Sheets[1].Range["A1"].Resize[1, firstlistTPlm.Length] = firstlistTPlm;
var str = wbk.Path + "\\" + wbk.Name.Split('.').First() + "test.xlsx";
Nowbook.Sheets[1].Cells[1, 2].Value = flag;
if (File.Exists(str)) File.Delete(str);
Nowbook.SaveAs(str);//询问框
//添加一个询问框:public partial class InputDialog : Form
{public InputDialog(){InitializeComponent();}public delegate void TextEventHandler(string strText);public TextEventHandler TextHandler;private void btnOk_Click(object sender, EventArgs e){if (null != TextHandler){TextHandler.Invoke(name.Text);DialogResult = DialogResult.OK;}}private void txtString_KeyPress(object sender, KeyPressEventArgs e){if (Keys.Enter == (Keys)e.KeyChar){if (null != TextHandler){TextHandler.Invoke(name.Text);DialogResult = DialogResult.OK;}}}}
//调用类
public static class InputDialogWin
{public static DialogResult Show(out string strText){string strTemp = string.Empty;InputDialog inputDialog = new InputDialog();inputDialog.TextHandler = (str) => { strTemp = str; };DialogResult result = inputDialog.ShowDialog();strText = strTemp;return result;}
}
//使用:
DialogResult dialogResult= InputDialogWin.Show(out currentName);
if (dialogResult == DialogResult.Cancel) return;

VBA:

参考链接:

语言基础
教程一

1. 开发工具=>VBA编辑器=>视图 - 立即窗口:
? 1+1 ? len("qiou.eu") //问号是一定的
VB 基本语法部分
Sub/Function/Class/Module 【1】
数据类型 【3】
String, Number, Date以及常用方法
Array
流程控制 【2】
If While Foreach Fori Switch
Goto, With
异常处理 【1】
On Error xx
抛出及捕获异常
Excel对象模型
Range 【2】
Worksheet, Workbook, Application 【2】
不同Office产品之间的交互 (*视反响决定)2】
MS Office 常用内置库
FileSystemObject 以及基本IO 【2】
Dictionary 以及容器操作 【2】
RegExp 以及 高阶字符串处理技巧 【2】
JavaScript-Engine (*视反响决定)2】
Excel事件模型以及用户表单
Workbook, Worksheet事件模型 【1】
Excel用户表单 【2】
面向对向编程,定义自己的Class文件
简单的OOP(Object Oriented Programming)介绍 【2】
实例 (*安利我自己的 Excel Dicts/Lists库, 视反响决定)5//变量强制申明, VBA版的"use strict;"
//此段VBA人代码中的程序入口main
Option Explicit 
Public Sub main()   helloWorld   
End Sub
' pop out the message
Private Function helloWorld() MsgBox "Hello World!" 
End Function
---
Option Explicit
Public Sub main()  Debug.Print getLongerStringLen("qiou.eu", "sgfxq") 
End Sub
' return the length of the longer string
Private Function getLongerStringLen(str1 As String, str2 As String) As StringgetLongerStringLen = IIf(Len(str1) > Len(str2), str1, str2)
End Function//变量类型定义
Dim productName As String
Dim length As Integer
Dim reg As RegExp

相关文章:

.NET-10. 其他-VSTO+VBA

VSTOVBA 前言VSTO 外接程序介绍&#xff1a;VSTO参考链接&#xff1a;VSTO 例子&#xff1a; VBA:参考链接&#xff1a; 前言 主要用于Excel插件。 VSTO 外接程序介绍&#xff1a; Excel、Word、PowerPoint、Project、Visio等等Office应用程序 相对简单 VSTO参考链接&#x…...

相机传感器格式与镜头光圈参数

相机靶面大小 CCD/CMOS图像传感器尺寸&#xff08;sensor format&#xff09;1/2’‘、1/3’‘、1/4’实际是多大 1英寸——靶面尺寸为宽12.7mm*高9.6mm&#xff0c;对角线16mm。 2/3英寸——靶面尺寸为宽8.8mm*高6.6mm&#xff0c;对角线11mm。 1/2英寸——靶面尺寸为宽6.…...

Android 设置头像(拍照获取、相册获取、裁剪照片)

在Android原生态开发过程中&#xff0c;往往会设计到用户头像的设置问题&#xff0c;一般来讲设置头像需要用到拍照、获取照片、存储照片、裁剪照片、显示照片等问题&#xff0c;本文将一步一步的进行说明讲解。 首先需要强调几点我在开发过程中遇到的问题。 权限问题&#xf…...

android开发之Android 自定义滑动解锁View

自定义滑动解锁View 需求如下&#xff1a; 近期需要做一个类似屏幕滑动解锁的功能&#xff0c;右划开始&#xff0c;左划暂停。 需求效果图如下 实现效果展示 自定义view如下 /** Desc 自定义滑动解锁View Author ZY Mail sunnyfor98gmail.com Date 2021/5/17 11:52 *…...

CAD绘制法兰、添加光源、材质并渲染

首先绘制两个圆柱体&#xff0c;相互嵌套 在顶部继续绘制圆柱体&#xff0c;这是之后要挖掉的部分 在中央位置绘制正方形 用圆角工具&#xff1a; 将矩形的四个角分别处理&#xff0c;效果&#xff1a; 用拉伸工具 向上拉伸到和之前绘制的圆柱体高度齐平 绘制一个圆柱体&#…...

ChatGPT访问流量下降的原因分析

​自从OpenAI的ChatGPT于11月问世以来&#xff0c;这款聪明的人工智能聊天机器人就席卷了全世界&#xff0c;人们在试用该工具的同时也好奇该技术到底将如何改变我们的工作和生活。 但近期Similarweb表示&#xff0c;自去ChatGPT上线以来&#xff0c;该网站的访问量首次出现下…...

干货 | 详述 Elasticsearch 向量检索发展史

1. 引言 向量检索已经成为现代搜索和推荐系统的核心组件。 通过将复杂的对象&#xff08;例如文本、图像或声音&#xff09;转换为数值向量&#xff0c;并在多维空间中进行相似性搜索&#xff0c;它能够实现高效的查询匹配和推荐。 图片来自&#xff1a;向量数据库技术鉴赏【上…...

mysql常见面试题,高频题目放送

互联网的产品架构是包含这接入层&#xff0c;逻辑处理以及储存层的&#xff0c;其中储存层承载着较多的数据以及持久化的任务&#xff0c;而说到储存层&#xff0c;避免不了说到数据库&#xff0c;在我们面试的时候&#xff0c;数据库的知识题目占比是非常多的&#xff1a; 1.…...

使用 PowerShell 将 Excel 中的每个工作表单独另存为独立的文件

导语&#xff1a;在日常工作中&#xff0c;我们经常需要处理 Excel 文件。本文介绍了如何使用 PowerShell 脚本将一个 Excel 文件中的每个工作表单独另存为独立的 Excel 文件&#xff0c;以提高工作效率。 1. 准备工作 在开始之前&#xff0c;请确保已经安装了 Microsoft Exc…...

python提取pdf图片

import fitz import re import osdef save_pdf_img(path, save_path):path: pdf的路径save_path : 图片存储的路径# 使用正则表达式来查找图片checkXO r"/Type(? */XObject)"checkIM r"/Subtype(? */Image)"# 打开pdfdoc fitz.open(path)# 图片计数im…...

Vue3 表单输入绑定简单应用

去官网学习→表单输入绑定 | Vue.js 运行示例&#xff1a; 代码&#xff1a;HelloWorld.vue <template><div class"hello"><h1>Vue 表单输入绑定</h1><input type"text" placeholder"输入框" v-model"msg"…...

如何解决 Elasticsearch 查询缓慢的问题以获得更好的用户体验

作者&#xff1a;Philipp Kahr Elasticsearch Service 用户的重要注意事项&#xff1a;目前&#xff0c;本文中描述的 Kibana 设置更改仅限于 Cloud 控制台&#xff0c;如果没有我们支持团队的手动干预&#xff0c;则无法进行配置。 我们的工程团队正在努力消除对这些设置的限制…...

近期学习练习

练习&#xff1a; 或&#xff1a; //sqrt是数学库函数&#xff0c;开平方 //头文件为math.h 或...

平台安全之中间件安全

理解中间件 一次web访问的顺序&#xff0c;web浏览器->web服务器&#xff08;狭义&#xff09;->web容器->应用服务器->数据库服务器 web服务器 广义&#xff1a;提供广义web服务的软件或主机 狭义&#xff1a;提供w3服务的软件或主机&#xff0c;即Web服务器软件…...

芒果 TV 基于 Flink 的实时数仓建设实践

公司简介&#xff1a;芒果 TV 作为湖南广电旗下互联网视频平台&#xff0c;在“一云多屏&#xff0c;多元一体”的战略指导下&#xff0c;通过内容自制&#xff0c;培植核心竞争力&#xff0c;从独播、独特走向独创&#xff0c;并通过市场化运作完成 A 轮、B 轮融资&#xff0c…...

尚硅谷大数据项目《在线教育之采集系统》笔记004

视频地址&#xff1a;尚硅谷大数据项目《在线教育之采集系统》_哔哩哔哩_bilibili 目录 P047 P048 P049 P050 P051 P052 P053 P054 P055 P056 P047 /opt/module/datax/job/base_province.json [atguigunode001 ~]$ hadoop fs -mkdir /base_province/2022-02-22 [atgu…...

R语言4_安装BayesSpace

环境Ubuntu22/20, R4.1 你可能会报错说你的R语言版本没有这个库&#xff0c;但其实不然。这是一个在Bioconductor上的库。 同时我也碰到了这个问题&#xff0c;ERROR: configuration failed for package systemfonts’等诸多类似问题&#xff0c;下面的方法可以一并解决。 第…...

TSINGSEE青犀视频安防监控视频平台EasyCVR设备在线,视频无法播放的原因排查

可支持国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等多种协议接入的安防监控视频平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、…...

【算法篇C++实现】算法的时间、空间复杂度

文章目录 &#x1f680;一、算法的概念&#x1f680;二、算法的特征1.可行性2.确定性3.有穷性4.输入5.输出 &#x1f680;三、算法的评价1.正确性2.可读性3.健壮性 &#x1f680;四、算法的复杂度⛳&#xff08;一&#xff09;时间复杂度1、时间复杂度的概念2、大O的渐进表示法…...

On Evaluation of Embodied Navigation Agents 论文阅读

论文信息 题目&#xff1a;On Evaluation of Embodied Navigation Agents 作者&#xff1a;Peter Anderson&#xff0c;Angel Chang 来源&#xff1a;arXiv 时间&#xff1a;2018 Abstract 过去两年&#xff0c;导航方面的创造性工作激增。这种创造性的输出产生了大量有时不…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...